[#105544] [Ruby master Feature#18239] Variable Width Allocation: Strings — "peterzhu2118 (Peter Zhu)" <noreply@...>

Issue #18239 has been reported by peterzhu2118 (Peter Zhu).

18 messages 2021/10/04

[#105566] [Ruby master Bug#18242] Parser makes multiple assignment sad in confusing way — "danh337 (Dan Higgins)" <noreply@...>

Issue #18242 has been reported by danh337 (Dan Higgins).

9 messages 2021/10/06

[#105573] [Ruby master Bug#18243] Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18243 has been reported by Eregon (Benoit Daloze).

11 messages 2021/10/06

[#105618] [Ruby master Bug#18249] The ABI version of dev builds of CRuby does not correspond to the ABI — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18249 has been reported by Eregon (Benoit Daloze).

23 messages 2021/10/11

[#105626] [Ruby master Bug#18250] Anonymous variables seem to break `Ractor.make_shareable` — "tenderlovemaking (Aaron Patterson)" <noreply@...>

Issue #18250 has been reported by tenderlovemaking (Aaron Patterson).

14 messages 2021/10/12

[#105660] [Ruby master Feature#18254] Add an `offset` parameter to String#unpack and String#unpack1 — "byroot (Jean Boussier)" <noreply@...>

Issue #18254 has been reported by byroot (Jean Boussier).

13 messages 2021/10/18

[#105672] [Ruby master Feature#18256] Change the canonical name of Thread::Mutex, Thread::Queue, Thread::SizedQueue and Thread::ConditionVariable to just Mutex, Queue, SizedQueue and ConditionVariable — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18256 has been reported by Eregon (Benoit Daloze).

6 messages 2021/10/19

[#105692] [Ruby master Bug#18257] SystemTap/DTrace coredump on ppc64le/s390x — "vo.x (Vit Ondruch)" <noreply@...>

Issue #18257 has been reported by vo.x (Vit Ondruch).

22 messages 2021/10/20

[#105781] [Ruby master Misc#18266] DevelopersMeeting20211118Japan — "mame (Yusuke Endoh)" <noreply@...>

Issue #18266 has been reported by mame (Yusuke Endoh).

13 messages 2021/10/25

[#105805] [Ruby master Bug#18270] Refinement#{extend_object, append_features, prepend_features} should be removed — "shugo (Shugo Maeda)" <noreply@...>

Issue #18270 has been reported by shugo (Shugo Maeda).

8 messages 2021/10/26

[#105826] [Ruby master Feature#18273] Class.subclasses — "byroot (Jean Boussier)" <noreply@...>

Issue #18273 has been reported by byroot (Jean Boussier).

35 messages 2021/10/27

[#105833] [Ruby master Feature#18275] Add an option to define_method to not capture the surrounding environment — "vinistock (Vinicius Stock)" <noreply@...>

Issue #18275 has been reported by vinistock (Vinicius Stock).

11 messages 2021/10/27

[#105853] [Ruby master Feature#18276] `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)` — "ko1 (Koichi Sasada)" <noreply@...>

Issue #18276 has been reported by ko1 (Koichi Sasada).

15 messages 2021/10/28

[ruby-core:105625] [Ruby master Bug#15204] globbing should be prevented when wildcard is surrounded by double quotes in the ruby's command line

From: "jeremyevans0 (Jeremy Evans)" <noreply@...>
Date: 2021-10-12 18:47:28 UTC
List: ruby-core #105625
Issue #15204 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Rejected

The history indicates the current behavior is expected, and I agree.  Globbing inside double quotes is not done by Linux/Unix shells, but is done on Windows:

```
C:\Users\jeremye>dir /b D*
Desktop
Documents
Downloads

C:\Users\jeremye>dir /b "D*"
Desktop
Documents
Downloads

C:\Users\jeremye>dir /b 'D*'
File Not Found
```

It's better for Ruby to be consistent with the behavior of the shell on the same operating system, instead of being consistent with the shell of other operating systems. If you would like your users to have consistent behavior between Windows and Linux, you'll need to inform users to always use single quotes if they do not want globbing.

----------------------------------------
Bug #15204: globbing should be prevented when wildcard is surrounded by double quotes in the ruby's command line
https://bugs.ruby-lang.org/issues/15204#change-94114

* Author: LeiYuhou (Yuhou Lei)
* Status: Rejected
* Priority: Normal
* ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mswin64_140]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
script tt like following:

~~~ ruby
#!/usr/bin/ruby
p ARGV
~~~

if a command line argument contains wildcard such as * or ? is surrounded by double quotes , the script's results are different between Linux and Windows.
when run tt in Linux's bash :
$ ./tt "*.txt"
it's output is : ["*.txt"]

but when run tt in Windows 10(x64)'s Command Prompter cmd.exe :
c:\> ruby tt.rb "*.exe"
it's output is ["a.txt" , "b.txt" , "c.txt"]

I know , If enclosed with single quote, the behavior are same in Linux and Windows.
I think it's behavior should be exactly same whenever any OS or Shell . otherwise it will bring many trouble to developers , think of the following scene:
users maybe pass asterisk(*) in the command line arguments to my script , to prevent bash to expand it , I will request users to enclose this parameter with double quotes, this will work fine in Linux . but when it 's run in windows , it will fail .

Bash will expand wildcard with globbing before passing the arguments to ruby process , the function w32_cmdvector in win32/win32.c does the same thing like Bash, Just add a condition , the bug will be fixed.

Index: win32/win32.c
===================================================================
--- win32/win32.c       (revision 64922)
+++ win32/win32.c       (working copy)
@@ -1733,7 +1733,7 @@
                // N.B. Don't glob if inside a single quoted string
                //

-               if (quote != L'\'')
+               if (quote != L'\'' && quote != L'"')
                    globbing++;
                slashes = 0;
                break;



---Files--------------------------------
ruby-changes.patch (350 Bytes)


-- 
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

Prev Next