[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]