diff options
author | dave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-24 15:44:41 +0000 |
---|---|---|
committer | dave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-24 15:44:41 +0000 |
commit | 060f19e92c9b8978b36435f73ca45eefa48b2cbc (patch) | |
tree | 89e6c21f419725bac3fd10ef611c6775ce79ca8d /lib | |
parent | 65d37c6cc5713fc51dff454e52d188bc691418e1 (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
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rdoc/parsers/parse_rb.rb | 17 |
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) |