Forum: Ruby-dev [Closed] '?' is not match to multibyte character at commandline globbing on Windows

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
F1d6cc2b735bfd82c8773172da2aeab9?d=identicon&s=25 Nobuyoshi Nakada (nobu)
on 2014-11-29 08:54
(Received via mailing list)
Issue #10555 has been updated by Nobuyoshi Nakada.

Status changed from Assigned to Closed
% Done changed from 0 to 100

Applied in changeset r48648.

----------
win32.c: use UTF-8 for argv

* ruby.c (ruby_set_argv): convert argv from UTF-8.
* win32/win32.c (rb_w32_sysinit, cmdglob, w32_cmdvector): convert
  wide char command line to UTF-8 argv, and glob in UTF-8 so that
  metacharacters would match multibyte characters.
  [ruby-dev:48752] [Bug #10555]

----------------------------------------
Bug #10555: '?' is not match to multibyte character at commandline
globbing on Windows
https://bugs.ruby-lang.org/issues/10555#change-50179

* Author: Usaku NAKAMURA
* Status: Closed
* Priority: Normal
* Assignee: cruby-windows
* Category: M17N
* Target version: current: 2.2.0
* ruby -v: -
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
以下のような現象です。

~~~
D:\test> dir ?.txt
(snip)
2014/11/29  05:46                 0 あ.txt
               1 個のファイル                   0 バイト
               0 個のディレクトリ  114,140,901,376 バイトの空き領域

D:\test> ruby -e "p ARGV" ?.txt
["?.txt"]

~~~

原因は、glob処理として`ruby_brace_glob()`を呼んでいるためにencoding情報が渡されないためで、`ruby_blace_glob_with_enc()`を呼ばないといけません。
1.9以降の全ての版が該当します。

直し方はなかださんのパッチ袋に入ってるので省略。
This topic is locked and can not be replied to.