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

ruby-changes:16197

From: nobu <ko1@a...>
Date: Sat, 5 Jun 2010 09:57:43 +0900 (JST)
Subject: [ruby-changes:16197] Ruby:r28161 (trunk, ruby_1_9_2): * ruby.c (process_options): revert r25330, so that $0 can be seen

nobu	2010-06-05 09:57:02 +0900 (Sat, 05 Jun 2010)

  New Revision: 28161

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28161

  Log:
    * ruby.c (process_options): revert r25330, so that $0 can be seen
      from required libraries by -r option.  [ruby-core:23717]

  Modified files:
    branches/ruby_1_9_2/ChangeLog
    branches/ruby_1_9_2/ruby.c
    branches/ruby_1_9_2/test/ruby/test_rubyoptions.rb
    branches/ruby_1_9_2/vm.c
    trunk/ChangeLog
    trunk/ruby.c
    trunk/test/ruby/test_rubyoptions.rb
    trunk/vm.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 28160)
+++ ChangeLog	(revision 28161)
@@ -1,3 +1,8 @@
+Sat Jun  5 09:56:57 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* ruby.c (process_options): revert r25330, so that $0 can be seen
+	  from required libraries by -r option.  [ruby-core:23717]
+
 Sat Jun  5 08:30:42 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* file.c (rb_f_test): 'W' should test writable by real uid/git,
Index: vm.c
===================================================================
--- vm.c	(revision 28160)
+++ vm.c	(revision 28161)
@@ -761,8 +761,14 @@
     VALUE *aryp = arg;
     VALUE bt;
 
-    bt = rb_enc_sprintf(rb_enc_compatible(file, name), "%s:%d:in `%s'",
-			RSTRING_PTR(file), line_no, RSTRING_PTR(name));
+    if (line_no) {
+	bt = rb_enc_sprintf(rb_enc_compatible(file, name), "%s:%d:in `%s'",
+			    RSTRING_PTR(file), line_no, RSTRING_PTR(name));
+    }
+    else {
+	bt = rb_enc_sprintf(rb_enc_compatible(file, name), "%s:in `%s'",
+			    RSTRING_PTR(file), RSTRING_PTR(name));
+    }
     rb_ary_push(*aryp, bt);
     return 0;
 }
Index: ruby.c
===================================================================
--- ruby.c	(revision 28160)
+++ ruby.c	(revision 28161)
@@ -1356,6 +1356,8 @@
 	}
     }
     ruby_init_gems(!(opt->disable & DISABLE_BIT(gems)));
+    rb_progname = opt->script_name;
+    rb_vm_set_progname(rb_progname);
     ruby_set_argv(argc, argv);
     process_sflag(&opt->sflag);
 
@@ -1400,8 +1402,6 @@
 	    tree = load_file(parser, opt->script, 1, opt);
 	});
     }
-    rb_progname = opt->script_name;
-    rb_vm_set_progname(rb_progname);
     if (opt->dump & DUMP_BIT(yydebug)) return Qtrue;
 
     if (opt->ext.enc.index >= 0) {
Index: test/ruby/test_rubyoptions.rb
===================================================================
--- test/ruby/test_rubyoptions.rb	(revision 28160)
+++ test/ruby/test_rubyoptions.rb	(revision 28161)
@@ -319,10 +319,11 @@
   def test_notfound
     notexist = "./notexist.rb"
     rubybin = Regexp.quote(EnvUtil.rubybin)
-    pat = /\A#{rubybin}:.* -- #{Regexp.quote(notexist)} \(LoadError\)\Z/
+    pat = Regexp.quote(notexist)
+    bug1573 = '[ruby-core:23717]'
     assert_equal(false, File.exist?(notexist))
-    assert_in_out_err(["-r", notexist, "-ep"], "", [], pat)
-    assert_in_out_err([notexist], "", [], pat)
+    assert_in_out_err(["-r", notexist, "-ep"], "", [], /\A-e:.* -- #{pat} \(LoadError\)\Z/, bug1573)
+    assert_in_out_err([notexist], "", [], /\A#{pat}:.* -- #{pat} \(LoadError\)\Z/, bug1573)
   end
 
   def test_program_name
Index: ruby_1_9_2/ChangeLog
===================================================================
--- ruby_1_9_2/ChangeLog	(revision 28160)
+++ ruby_1_9_2/ChangeLog	(revision 28161)
@@ -1,3 +1,8 @@
+Sat Jun  5 09:56:57 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* ruby.c (process_options): revert r25330, so that $0 can be seen
+	  from required libraries by -r option.  [ruby-core:23717]
+
 Sat Jun  5 08:30:42 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* file.c (rb_f_test): 'W' should test writable by real uid/git,
Index: ruby_1_9_2/vm.c
===================================================================
--- ruby_1_9_2/vm.c	(revision 28160)
+++ ruby_1_9_2/vm.c	(revision 28161)
@@ -761,8 +761,14 @@
     VALUE *aryp = arg;
     VALUE bt;
 
-    bt = rb_enc_sprintf(rb_enc_compatible(file, name), "%s:%d:in `%s'",
-			RSTRING_PTR(file), line_no, RSTRING_PTR(name));
+    if (line_no) {
+	bt = rb_enc_sprintf(rb_enc_compatible(file, name), "%s:%d:in `%s'",
+			    RSTRING_PTR(file), line_no, RSTRING_PTR(name));
+    }
+    else {
+	bt = rb_enc_sprintf(rb_enc_compatible(file, name), "%s:in `%s'",
+			    RSTRING_PTR(file), RSTRING_PTR(name));
+    }
     rb_ary_push(*aryp, bt);
     return 0;
 }
Index: ruby_1_9_2/ruby.c
===================================================================
--- ruby_1_9_2/ruby.c	(revision 28160)
+++ ruby_1_9_2/ruby.c	(revision 28161)
@@ -1353,6 +1353,8 @@
 	}
     }
     ruby_init_gems(!(opt->disable & DISABLE_BIT(gems)));
+    rb_progname = opt->script_name;
+    rb_vm_set_progname(rb_progname);
     ruby_set_argv(argc, argv);
     process_sflag(&opt->sflag);
 
@@ -1397,8 +1399,6 @@
 	    tree = load_file(parser, opt->script, 1, opt);
 	});
     }
-    rb_progname = opt->script_name;
-    rb_vm_set_progname(rb_progname);
     if (opt->dump & DUMP_BIT(yydebug)) return Qtrue;
 
     if (opt->ext.enc.index >= 0) {
Index: ruby_1_9_2/test/ruby/test_rubyoptions.rb
===================================================================
--- ruby_1_9_2/test/ruby/test_rubyoptions.rb	(revision 28160)
+++ ruby_1_9_2/test/ruby/test_rubyoptions.rb	(revision 28161)
@@ -319,10 +319,11 @@
   def test_notfound
     notexist = "./notexist.rb"
     rubybin = Regexp.quote(EnvUtil.rubybin)
-    pat = /\A#{rubybin}:.* -- #{Regexp.quote(notexist)} \(LoadError\)\Z/
+    pat = Regexp.quote(notexist)
+    bug1573 = '[ruby-core:23717]'
     assert_equal(false, File.exist?(notexist))
-    assert_in_out_err(["-r", notexist, "-ep"], "", [], pat)
-    assert_in_out_err([notexist], "", [], pat)
+    assert_in_out_err(["-r", notexist, "-ep"], "", [], /\A-e:.* -- #{pat} \(LoadError\)\Z/, bug1573)
+    assert_in_out_err([notexist], "", [], /\A#{pat}:.* -- #{pat} \(LoadError\)\Z/, bug1573)
   end
 
   def test_program_name

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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