summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-12-24 15:44:41 +0000
committerdave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-12-24 15:44:41 +0000
commit060f19e92c9b8978b36435f73ca45eefa48b2cbc (patch)
tree89e6c21f419725bac3fd10ef611c6775ce79ca8d
parent65d37c6cc5713fc51dff454e52d188bc691418e1 (diff)
Fix bug where two adjacent =begin/=end blocks causes the parser to get out of step.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--lib/rdoc/parsers/parse_rb.rb17
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/rdoc/parsers/parse_rb.rb b/lib/rdoc/parsers/parse_rb.rb
index a0e4044b6c..08d906c00d 100644
--- a/lib/rdoc/parsers/parse_rb.rb
+++ b/lib/rdoc/parsers/parse_rb.rb
@@ -611,20 +611,17 @@ class RubyLex
str = op
@ltype = "="
+
begin
- ch = getc
- str << ch
- end until ch == "\n"
-
- until peek_equal?("=end") && peek(4) =~ /\s/
- begin
+ line = ""
+ begin
ch = getc
- str << ch
+ line << ch
end until ch == "\n"
- end
+ str << line
+ end until line =~ /^=end/
- str << "=end"
- gets
+ ungetc
@ltype = nil
Token(TkRD_COMMENT).set_text(str)