Bug #16391
closedDir.pwd, Dir[] pathname case inconsistency
Description
Directory globbing case sensitivity is os-dependent
(https://ruby-doc.org/core-2.6.5/Dir.html, glob,
"Case sensitivity depends on your system");
On Windows 10, directory globbing is case insensitive,
and may return glob matches that do
not match the case of the query.
Unfortunately, File.fnmatch
seems to be case sensitive,
so this is not a workaround.
Expected:
If Dir.pwd
=> 'C:/users/dave/Documents'
(lower case for users)
then Dir[Dir.pwd+'/*']
=> ['C:/users/dave/Documents/...',...]
(lower case for users), not [C:/Users/dave/Documents/...',...]
(upper case Users)
Impact:
Rails 6.0 Activeview implementation has an assumption that
case in pwd will match that in glob
Files
Updated by nobu (Nobuyoshi Nakada) over 4 years ago
- Description updated (diff)
Dir.pwd
returns 'C:/Users/...'
, not 'C:/users/...'
for me.
Unfortunately,
File.fnmatch
seems to be case sensitive,
so this is not a workaround.
File::Constants
has two constants for File.fnmatch
-
FNM_CASEFOLD
:
MakesFile.fnmatch
patterns case insensitive (but notDir.glob
patterns). -
FNM_SYSCASE
:
System default case insensitiveness, equals toFNM_CASEFOLD
or 0.
Updated by nobu (Nobuyoshi Nakada) over 4 years ago
- Status changed from Open to Closed
Applied in changeset git|fb11e6089dbe9d995510977def038a21882bcffe.
[DOC] Added File::FNM_SYSCASE example [Bug #16391] [ci skip]