diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/irb/ruby-lex.rb | 13 | ||||
-rw-r--r-- | string.c | 2 |
3 files changed, 15 insertions, 5 deletions
@@ -4,6 +4,11 @@ Mon Jul 24 18:52:55 2000 WATANABE Hirofumi <[email protected]> * ruby.c (rubylib_mangle): support "/hoge;/foo" +Mon Jul 24 10:28:55 2000 GOTO Kentaro <[email protected]> + + * string.c (rb_str_count): raise exception if no argument is + given. + Sun Jul 23 12:55:04 2000 Dave Thomas <[email protected]> * string.c (rb_str_rindex): Support negative end position. diff --git a/lib/irb/ruby-lex.rb b/lib/irb/ruby-lex.rb index a788b779b4..4c7a3b1002 100644 --- a/lib/irb/ruby-lex.rb +++ b/lib/irb/ruby-lex.rb @@ -368,8 +368,8 @@ class RubyLex if @lex_state != EXPR_END && @lex_state != EXPR_CLASS && (@lex_state != EXPR_ARG || @space_seen) c = peek(0) - if /\S/ =~ c && (/["'`]/ =~ c || /[\w_]/ =~ c) - tk = identify_here_document; + if /\S/ =~ c && (/["'`]/ =~ c || /[\w_]/ =~ c || c == "-") + tk = identify_here_document end else tk = Token(op) @@ -752,7 +752,12 @@ class RubyLex def identify_here_document ch = getc - if lt = PERCENT_LTYPE[ch] + if ch == "-" + ch = getc + indent = true + end + if /['"`]/ =~ ch + lt = ch quoted = "" while (c = getc) && c != lt quoted.concat c @@ -778,7 +783,7 @@ class RubyLex end @here_header = false - while (l = gets.chomp) && l != quoted + while (l = gets.chomp) && (indent ? l.strip : l) != quoted end @here_header = true @@ -2081,7 +2081,7 @@ rb_str_count(argc, argv, str) int init = 1; int i; - if (argc < 0) { + if (argc < 1) { rb_raise(rb_eArgError, "wrong # of arguments"); } for (i=0; i<argc; i++) { |