ruby-changes:12349
From: yugui <ko1@a...>
Date: Sun, 12 Jul 2009 23:44:42 +0900 (JST)
Subject: [ruby-changes:12349] Ruby:r24044 (ruby_1_9_1): merges r23862 from trunk into ruby_1_9_1.
yugui 2009-07-12 23:44:21 +0900 (Sun, 12 Jul 2009) New Revision: 24044 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24044 Log: merges r23862 from trunk into ruby_1_9_1. -- * io.c (argf_rewind): need to rewind $. and ARGF.lineno. [ruby-core:24046] * io.c (struct argf): refactoring on $. and ARGF.lineno behavior. Modified files: branches/ruby_1_9_1/ChangeLog branches/ruby_1_9_1/io.c branches/ruby_1_9_1/version.h Index: ruby_1_9_1/ChangeLog =================================================================== --- ruby_1_9_1/ChangeLog (revision 24043) +++ ruby_1_9_1/ChangeLog (revision 24044) @@ -1,3 +1,10 @@ +Sat Jun 27 03:09:04 2009 Yukihiro Matsumoto <matz@r...> + + * io.c (argf_rewind): need to rewind $. and ARGF.lineno. + [ruby-core:24046] + + * io.c (struct argf): refactoring on $. and ARGF.lineno behavior. + Fri Jun 26 21:48:30 2009 Tanaka Akira <akr@f...> * ext/pty/pty.c (pty_getpty): check dup failure. Index: ruby_1_9_1/io.c =================================================================== --- ruby_1_9_1/io.c (revision 24043) +++ ruby_1_9_1/io.c (revision 24044) @@ -130,9 +130,9 @@ struct argf { VALUE filename, current_file; - int gets_lineno; + int last_lineno; /* $. */ + int lineno; int init_p, next_p; - VALUE lineno; VALUE argv; char *inplace; int binmode; @@ -1134,7 +1134,7 @@ GetOpenFile(io, fptr); if (io_seek(fptr, 0L, 0) < 0) rb_sys_fail_path(fptr->pathv); if (io == ARGF.current_file) { - ARGF.gets_lineno -= fptr->lineno; + ARGF.lineno -= fptr->lineno; } fptr->lineno = 0; if (fptr->readconv) { @@ -2156,7 +2156,8 @@ str = io_enc_str(str, fptr); ENC_CODERANGE_SET(str, cr); fptr->lineno++; - ARGF.lineno = INT2FIX(fptr->lineno); + ARGF.last_lineno = fptr->lineno; + return str; } @@ -2293,7 +2294,7 @@ if (!NIL_P(str)) { if (!nolimit) { fptr->lineno++; - ARGF.lineno = INT2FIX(fptr->lineno); + ARGF.last_lineno = fptr->lineno; } } @@ -6041,7 +6042,6 @@ struct argf *p = ptr; rb_gc_mark(p->filename); rb_gc_mark(p->current_file); - rb_gc_mark(p->lineno); rb_gc_mark(p->argv); rb_gc_mark(p->encs.ecopts); } @@ -6058,7 +6058,7 @@ { p->filename = Qnil; p->current_file = Qnil; - p->lineno = INT2FIX(0); + p->lineno = 0; p->argv = v; } @@ -6099,15 +6099,15 @@ static VALUE argf_set_lineno(VALUE argf, VALUE val) { - ARGF.gets_lineno = NUM2INT(val); - ARGF.lineno = INT2FIX(ARGF.gets_lineno); + ARGF.lineno = NUM2INT(val); + ARGF.last_lineno = ARGF.lineno; return Qnil; } static VALUE argf_lineno(VALUE argf) { - return ARGF.lineno; + return INT2FIX(ARGF.lineno); } static VALUE @@ -6155,7 +6155,6 @@ ARGF.next_p = -1; } ARGF.init_p = 1; - ARGF.gets_lineno = 0; } if (ARGF.next_p == 1) { @@ -6285,8 +6284,8 @@ } } if (!NIL_P(line)) { - ARGF.gets_lineno++; - ARGF.lineno = INT2FIX(ARGF.gets_lineno); + ARGF.lineno++; + ARGF.last_lineno = ARGF.lineno; } return line; } @@ -6295,7 +6294,7 @@ argf_lineno_getter(ID id, VALUE *var) { VALUE argf = *var; - return ARGF.lineno; + return INT2FIX(ARGF.last_lineno); } static void @@ -6303,8 +6302,7 @@ { VALUE argf = *var; int n = NUM2INT(val); - ARGF.gets_lineno = n; - ARGF.lineno = INT2FIX(n); + ARGF.last_lineno = ARGF.lineno = n; } static VALUE argf_gets(int, VALUE *, VALUE); @@ -6358,6 +6356,7 @@ line = argf_getline(argc, argv, argf); rb_lastline_set(line); + return line; } @@ -6380,8 +6379,8 @@ } rb_lastline_set(line); if (!NIL_P(line)) { - ARGF.gets_lineno++; - ARGF.lineno = INT2FIX(ARGF.gets_lineno); + ARGF.lineno++; + ARGF.last_lineno = ARGF.lineno; } return line; @@ -8308,7 +8307,7 @@ if (ARGF.next_p != -1) { ARGF.next_p = 1; } - ARGF.gets_lineno = 0; + ARGF.lineno = 0; return argf; } Index: ruby_1_9_1/version.h =================================================================== --- ruby_1_9_1/version.h (revision 24043) +++ ruby_1_9_1/version.h (revision 24044) @@ -1,6 +1,6 @@ #define RUBY_VERSION "1.9.1" #define RUBY_RELEASE_DATE "2009-07-12" -#define RUBY_PATCHLEVEL 207 +#define RUBY_PATCHLEVEL 208 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/