зеркало из https://github.com/github/ruby.git
[Bug #19887] RUBYOPT should work without leading `-`
This commit is contained in:
Родитель
5c6e00b090
Коммит
c87f2a4f15
7
ruby.c
7
ruby.c
|
@ -904,12 +904,13 @@ moreswitches(const char *s, ruby_cmdline_options_t *opt, int envopt)
|
|||
|
||||
opt->src.enc.name = opt->ext.enc.name = opt->intern.enc.name = 0;
|
||||
|
||||
argstr = rb_str_tmp_new((len = strlen(s)) + (envopt!=0));
|
||||
const int hyphen = *s != '-';
|
||||
argstr = rb_str_tmp_new((len = strlen(s)) + hyphen);
|
||||
argary = rb_str_tmp_new(0);
|
||||
|
||||
p = RSTRING_PTR(argstr);
|
||||
if (envopt) *p++ = ' ';
|
||||
memcpy(p, s, len + 1);
|
||||
if (hyphen) *p = '-';
|
||||
memcpy(p + hyphen, s, len + 1);
|
||||
ap = 0;
|
||||
rb_str_cat(argary, (char *)&ap, sizeof(ap));
|
||||
while (*p) {
|
||||
|
|
|
@ -416,6 +416,9 @@ class TestRubyOptions < Test::Unit::TestCase
|
|||
assert_in_out_err(%w(), "p Warning[:experimental]", ["false"])
|
||||
ENV['RUBYOPT'] = '-W:qux'
|
||||
assert_in_out_err(%w(), "", [], /unknown warning category: `qux'/)
|
||||
|
||||
ENV['RUBYOPT'] = 'w'
|
||||
assert_in_out_err(%w(), "p $VERBOSE", ["true"])
|
||||
ensure
|
||||
ENV['RUBYOPT'] = rubyopt_orig
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче