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

ruby-changes:16207

From: nobu <ko1@a...>
Date: Sat, 5 Jun 2010 16:00:27 +0900 (JST)
Subject: [ruby-changes:16207] Ruby:r28172 (trunk, ruby_1_9_2): * ruby.c (process_options, load_file_internal): $0 seen from

nobu	2010-06-05 15:59:12 +0900 (Sat, 05 Jun 2010)

  New Revision: 28172

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

  Log:
    * ruby.c (process_options, load_file_internal): $0 seen from
      required libraries by -r option should be the main script.
      [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
    trunk/ChangeLog
    trunk/ruby.c
    trunk/test/ruby/test_rubyoptions.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 28171)
+++ ChangeLog	(revision 28172)
@@ -1,3 +1,9 @@
+Sat Jun  5 15:59:08 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* ruby.c (process_options, load_file_internal): $0 seen from
+	  required libraries by -r option should be the main script.
+	  [ruby-core:23717]
+
 Sat Jun  5 15:15:52 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* test/ruby/envutil.rb (EnvUtil#invoke_ruby): support for child
@@ -22,11 +28,6 @@
 
 	* .gdbinit (rp): detect and show RTypedData.
 
-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.c
===================================================================
--- ruby.c	(revision 28171)
+++ ruby.c	(revision 28172)
@@ -1356,8 +1356,6 @@
 	}
     }
     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);
 
@@ -1379,6 +1377,7 @@
 } while (0)
 
     if (opt->e_script) {
+	VALUE progname = rb_progname;
 	rb_encoding *eenc;
 	if (opt->src.enc.index >= 0) {
 	    eenc = rb_enc_from_index(opt->src.enc.index);
@@ -1387,7 +1386,9 @@
 	    eenc = lenc;
 	}
 	rb_enc_associate(opt->e_script, eenc);
+	rb_vm_set_progname(rb_progname = opt->script_name);
 	require_libraries(&opt->req_list);
+	rb_vm_set_progname(rb_progname = progname);
 
 	PREPARE_PARSE_MAIN({
 	    tree = rb_parser_compile_string(parser, opt->script, opt->e_script, 1);
@@ -1402,6 +1403,8 @@
 	    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) {
@@ -1593,6 +1596,7 @@
 	else if (!NIL_P(c)) {
 	    rb_io_ungetbyte(f, c);
 	}
+	rb_vm_set_progname(rb_progname = opt->script_name);
 	require_libraries(&opt->req_list);	/* Why here? unnatural */
     }
     if (opt->src.enc.index >= 0) {
Index: test/ruby/test_rubyoptions.rb
===================================================================
--- test/ruby/test_rubyoptions.rb	(revision 28171)
+++ test/ruby/test_rubyoptions.rb	(revision 28172)
@@ -323,7 +323,7 @@
     bug1573 = '[ruby-core:23717]'
     assert_equal(false, File.exist?(notexist))
     assert_in_out_err(["-r", notexist, "-ep"], "", [], /\A-e:.* -- #{pat} \(LoadError\)\Z/, bug1573)
-    assert_in_out_err([notexist], "", [], /\A#{pat}:.* -- #{pat} \(LoadError\)\Z/, bug1573)
+    assert_in_out_err([notexist], "", [], /\A#{rubybin}:.* -- #{pat} \(LoadError\)\Z/, bug1573)
   end
 
   def test_program_name
Index: ruby_1_9_2/ChangeLog
===================================================================
--- ruby_1_9_2/ChangeLog	(revision 28171)
+++ ruby_1_9_2/ChangeLog	(revision 28172)
@@ -1,3 +1,9 @@
+Sat Jun  5 15:59:08 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* ruby.c (process_options, load_file_internal): $0 seen from
+	  required libraries by -r option should be the main script.
+	  [ruby-core:23717]
+
 Sat Jun  5 15:15:52 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* test/ruby/envutil.rb (EnvUtil#invoke_ruby): support for child
@@ -18,11 +24,6 @@
 	* error.c (rb_name_err_mesg_new): guard mesg, recv and method.
 	  The problem in [ruby-dev:41464] is caused because mesg is collected.
 
-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/ruby.c
===================================================================
--- ruby_1_9_2/ruby.c	(revision 28171)
+++ ruby_1_9_2/ruby.c	(revision 28172)
@@ -1353,8 +1353,6 @@
 	}
     }
     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);
 
@@ -1376,6 +1374,7 @@
 } while (0)
 
     if (opt->e_script) {
+	VALUE progname = rb_progname;
 	rb_encoding *eenc;
 	if (opt->src.enc.index >= 0) {
 	    eenc = rb_enc_from_index(opt->src.enc.index);
@@ -1384,7 +1383,9 @@
 	    eenc = lenc;
 	}
 	rb_enc_associate(opt->e_script, eenc);
+	rb_vm_set_progname(rb_progname = opt->script_name);
 	require_libraries(&opt->req_list);
+	rb_vm_set_progname(rb_progname = progname);
 
 	PREPARE_PARSE_MAIN({
 	    tree = rb_parser_compile_string(parser, opt->script, opt->e_script, 1);
@@ -1399,6 +1400,8 @@
 	    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) {
@@ -1590,6 +1593,7 @@
 	else if (!NIL_P(c)) {
 	    rb_io_ungetbyte(f, c);
 	}
+	rb_vm_set_progname(rb_progname = opt->script_name);
 	require_libraries(&opt->req_list);	/* Why here? unnatural */
     }
     if (opt->src.enc.index >= 0) {
Index: ruby_1_9_2/test/ruby/test_rubyoptions.rb
===================================================================
--- ruby_1_9_2/test/ruby/test_rubyoptions.rb	(revision 28171)
+++ ruby_1_9_2/test/ruby/test_rubyoptions.rb	(revision 28172)
@@ -323,7 +323,7 @@
     bug1573 = '[ruby-core:23717]'
     assert_equal(false, File.exist?(notexist))
     assert_in_out_err(["-r", notexist, "-ep"], "", [], /\A-e:.* -- #{pat} \(LoadError\)\Z/, bug1573)
-    assert_in_out_err([notexist], "", [], /\A#{pat}:.* -- #{pat} \(LoadError\)\Z/, bug1573)
+    assert_in_out_err([notexist], "", [], /\A#{rubybin}:.* -- #{pat} \(LoadError\)\Z/, bug1573)
   end
 
   def test_program_name

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

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