[ruby-core:90858] [Ruby trunk Bug#8028] Shellwords.escape works incorrect under windows

From: justin@...
Date: 2019-01-02 17:00:45 UTC
List: ruby-core #90858
Issue #8028 has been updated by jsc (Justin Collins).


Shagabutdinov (Leonid Shagabutdinov) wrote:
> Shellwords.escape works incorrect under windows (tested for Windows 7

I don't believe `Shellwords` is intended to work on Windows at all. According to the comments (https://github.com/ruby/ruby/blob/ee2ddf5411f51ea89a1569ea5d70b41cd4c6c7f2/lib/shellwords.rb#L3-L6):

~~~
# == Manipulates strings like the UNIX Bourne shell
#
# This module manipulates strings according to the word parsing rules
# of the UNIX Bourne shell.
~~~



----------------------------------------
Bug #8028: Shellwords.escape works incorrect under windows
https://bugs.ruby-lang.org/issues/8028#change-76044

* Author: Shagabutdinov (Leonid Shagabutdinov)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.0.0p0 (2013-02-24) [i386-mingw32]
* Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
Shellwords.escape works incorrect under windows (tested for Windows 7
x64), here is example:


Actual result:

irb(main):001:0> require 'shellwords'
=> true

irb(main):002:0> `echo #{Shellwords.escape( '123>' )} test` # should
echo "123> test", but echo nothing
=> ""

irb(main):003:0> File.read( 'test' ) # but writes file "test"
=> "123\\\n"


Expected result:

irb(main):001:0> `echo 132^> test` # the correct escape sequence, echoed
"123> test"
=> "132> test\n"


Tested for "ruby 2.0.0p0 (2013-02-24) [i386-mingw32]", ruby 1.9.3, but this bug can be found in earlier ruby versions as well.





-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread