1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* process.c (rb_exec_fillarg): treat '=' character as an meta

character to detect assignments preceding command name.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2012-06-12 12:41:08 +00:00
parent 0dcc1f0dfe
commit 640e0a33b7
3 changed files with 13 additions and 1 deletions

View file

@ -1,3 +1,8 @@
Tue Jun 12 21:40:13 2012 Tanaka Akira <akr@fsij.org>
* process.c (rb_exec_fillarg): treat '=' character as an meta
character to detect assignments preceding command name.
Tue Jun 12 20:29:19 2012 Tanaka Akira <akr@fsij.org> Tue Jun 12 20:29:19 2012 Tanaka Akira <akr@fsij.org>
* include/ruby/intern.h (rb_exec_arg_init): deprecated. * include/ruby/intern.h (rb_exec_arg_init): deprecated.

View file

@ -1880,7 +1880,7 @@ rb_exec_fillarg(VALUE prog, int argc, VALUE *argv, VALUE env, VALUE opthash, str
for (p = RSTRING_PTR(prog); *p; p++) { for (p = RSTRING_PTR(prog); *p; p++) {
if (!has_nonspace && *p != ' ' && *p != '\t') if (!has_nonspace && *p != ' ' && *p != '\t')
has_nonspace = 1; has_nonspace = 1;
if (!has_meta && strchr("*?{}[]<>()~&|\\$;'`\"\n#", *p)) if (!has_meta && strchr("*?{}[]<>()~&|\\$;'`\"\n#=", *p))
has_meta = 1; has_meta = 1;
if (has_nonspace && has_meta) if (has_nonspace && has_meta)
break; break;

View file

@ -1433,4 +1433,11 @@ class TestProcess < Test::Unit::TestCase
} }
end end
def test_sh_env
IO.popen("foofoo=barbar env") {|f|
lines = f.readlines
assert_operator(lines, :include?, "foofoo=barbar\n")
}
end if File.executable?("/bin/sh")
end end