diff --git a/ChangeLog b/ChangeLog index 6f441b1571..d64a092b43 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +Mon Jan 12 12:07:22 2004 Dave Thomas + + * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): + Someone changed the "// in eval.c" comments to "/*...*/" style, + so the parsing of the source file name broke. + + * object.c: Remove spurious space in TrueClass documentation. + + * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Fix + bad regexp: if the code before a documented method contained + a comment that wasn't terminated by whitespace, that comment + and all intervening code was included in the following + method's documentation. + + * lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter::break_to_newline): + HTML formats need explicit line breaks. + Mon Jan 12 11:46:30 2004 Nobuyoshi Nakada * configure.in (LIBPATHFLAG, RPATHFLAG): enclose paths with single diff --git a/lib/rdoc/parsers/parse_c.rb b/lib/rdoc/parsers/parse_c.rb index 904aeb9417..b1b752222b 100644 --- a/lib/rdoc/parsers/parse_c.rb +++ b/lib/rdoc/parsers/parse_c.rb @@ -261,11 +261,10 @@ module RDoc \s*"([^"]+)", \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\()?(\w+)\)?, \s*(-?\w+)\s*\) - (?:;\s*//\s+in\s+(\w+?\.[cy]))? + (?:;\s*/[*/]\s+in\s+(\w+?\.[cy]))? }xm) do |type, var_name, meth_name, meth_body, param_count, source_file| #" - next if meth_name == "initialize_copy" # Ignore top-object and weird struct.c dynamic stuff next if var_name == "ruby_top_self" @@ -282,10 +281,9 @@ module RDoc \s*"([^"]+)", \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\()?(\w+)\)?, \s*(-?\w+)\s*\) - (?:;\s*//\s+in\s+(\w+?\.[cy]))? + (?:;\s*/[*/]\s+in\s+(\w+?\.[cy]))? }xm) do #" |meth_name, meth_body, param_count, source_file| - handle_method("method", "rb_mKernel", meth_name, meth_body, param_count, source_file) end @@ -346,7 +344,7 @@ module RDoc # Find the C code corresponding to a Ruby method def find_body(meth_name, meth_obj, body) - if body =~ %r{((?>/\*.*?\*/\s+))(static\s+)?VALUE\s+#{meth_name} + if body =~ %r{((?>/\*.*?\*/\s*))(static\s+)?VALUE\s+#{meth_name} \s*(\(.*?\)).*?^}xm comment, params = $1, $3 body_text = $& diff --git a/lib/rdoc/ri/ri_display.rb b/lib/rdoc/ri/ri_display.rb index 6899fe165a..8533aba822 100644 --- a/lib/rdoc/ri/ri_display.rb +++ b/lib/rdoc/ri/ri_display.rb @@ -237,7 +237,10 @@ class DefaultDisplay params = method.name + params end end - params.split(/\n/).each {|p| @formatter.wrap(p) } + params.split(/\n/).each do |p| + @formatter.wrap(p) + @formatter.break_to_newline + end end ###################################################################### diff --git a/lib/rdoc/ri/ri_formatter.rb b/lib/rdoc/ri/ri_formatter.rb index f4ea7cb049..07439b93f7 100644 --- a/lib/rdoc/ri/ri_formatter.rb +++ b/lib/rdoc/ri/ri_formatter.rb @@ -68,6 +68,15 @@ module RI ###################################################################### + # called when we want to ensure a nbew 'wrap' starts on a newline + # Only needed for HtmlFormatter, because the rest do their + # own line breaking + + def break_to_newline + end + + ###################################################################### + def bold_print(txt) print txt end @@ -459,14 +468,13 @@ module RI print(escape(achar.char)) end update_attributes(curr_attr, 0) unless curr_attr.zero? - puts end def draw_line(label=nil) if label != nil bold_print(label) end - puts("

") + puts("


") end def bold_print(txt) @@ -477,6 +485,10 @@ module RI puts("

") end + def break_to_newline + puts("
") + end + def display_heading(text, level, indent) level = 4 if level > 4 tag("h#{level}") { text } diff --git a/object.c b/object.c index 691a8958d0..c76b27f16e 100644 --- a/object.c +++ b/object.c @@ -844,7 +844,7 @@ main_to_s(obj) /*********************************************************************** - * Document-class: TrueClass + * Document-class: TrueClass * * The global value true is the only instance of class * TrueClass and represents a logically true value in