in lib/rdoc/parser/c.rb [593:673]
def find_body class_name, meth_name, meth_obj, file_content, quiet = false
if file_content
@body_table ||= {}
@body_table[file_content] ||= gen_body_table file_content
type, *args = @body_table[file_content][meth_name]
end
case type
when :func_def
comment = RDoc::Comment.new args[0], @top_level, :c
body = args[1]
offset, = args[2]
comment.remove_private if comment
body = $& if /
override_comment = find_override_comment class_name, meth_obj
comment = override_comment if override_comment
comment.normalize
find_modifiers comment, meth_obj if comment
meth_obj.start_collecting_tokens
tk = { :line_no => 1, :char_no => 1, :text => body }
meth_obj.add_token tk
meth_obj.comment = comment
meth_obj.line = file_content[0, offset].count("\n") + 1
body
when :macro_def
comment = RDoc::Comment.new args[0], @top_level, :c
body = args[1]
offset, = args[2]
find_body class_name, args[3], meth_obj, file_content, true
comment.normalize
find_modifiers comment, meth_obj
meth_obj.start_collecting_tokens
tk = { :line_no => 1, :char_no => 1, :text => body }
meth_obj.add_token tk
meth_obj.comment = comment
meth_obj.line = file_content[0, offset].count("\n") + 1
body
when :macro_alias
body = find_body(class_name, args[0], meth_obj, file_content, true)
return body if body
@options.warn "No definition for #{meth_name}"
false
else
comment = find_override_comment class_name, meth_obj
if comment then
comment.normalize
find_modifiers comment, meth_obj
meth_obj.comment = comment
''
else
@options.warn "No definition for #{meth_name}"
false
end
end
end