Issue #4396 has been updated by Motohiro KOSAKI.

Status changed from Open to Rejected

I tried to change this behavir by r30987. but it made a regression.

example, r30987 broke test_process.rb#test_popen_shell(). because
IO.popen(%[#{bat.dump} "foo 'bar'"]) pass a follwoing string to cmd.exe.

   "path with space/bat test.bat" "foo 'bar'"

But cmd.exe can't parse it. IOW, current ruby's system() has slightly different parser against cmd.exe and some tests depend on it.

So, sadly, we can't break backward compatibility. Let's reject this ticket.
----------------------------------------
Bug #4396: windows commands starting with "@" should run at all even though command string is quoted by `"'.
http://redmine.ruby-lang.org/issues/4396

Author: Motohiro KOSAKI
Status: Rejected
Priority: Normal
Assignee: 
Category: core
Target version: 1.9.3
ruby -v: ruby 1.9.3dev (2011-02-09 trunk 30831) [i386-mswin32_100]


 This issue 
 
 C test program.
 ------------------------------------------
 main()
 {
   system("\"@echo foo\"");
 }
 ------------------------------------------
 
 => foo
 
 
 Ruby test program.
 ------------------------------------------
 ruby -e 'p system("\"@echo foo\"")'
 
 => nil


-- 
http://redmine.ruby-lang.org