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/