ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:67364] [ruby-trunk - Bug #10700] [Open] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
       [not found] <redmine.issue-10700.20150106130531@ruby-lang.org>
@ 2015-01-06 13:05 ` asari.ruby
  2015-01-06 15:28 ` [ruby-core:67367] [ruby-trunk - Bug #10700] " tom.enebo
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 6+ messages in thread
From: asari.ruby @ 2015-01-06 13:05 UTC (permalink / raw
  To: ruby-core

Issue #10700 has been reported by Hiro Asari.

----------------------------------------
Bug #10700: On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
https://bugs.ruby-lang.org/issues/10700

* Author: Hiro Asari
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
My Mac has the disk reformatted so that it is case-sensitive (HFS+):

~~~
$ touch foo.txt foo.TXT FOO.txt FOO.TXT
$ ls -li foo.* FOO.*                          
286444732 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.TXT
286444731 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.txt
286444729 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.TXT
286444728 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.txt
~~~

You notice that they are all different files.

In Ruby 2.1.5, Dir.glob("*.TxT") returns an empty array, but in 2.2.0, all of these files are returned:

~~~
$ rvm 2.1.5 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]
[]
$ rvm 2.2.0 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
["FOO.TXT", "FOO.txt", "foo.TXT", "foo.txt"]
~~~

This is unexpected and incorrect. This does not happen on Linux.



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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:67367] [ruby-trunk - Bug #10700] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
       [not found] <redmine.issue-10700.20150106130531@ruby-lang.org>
  2015-01-06 13:05 ` [ruby-core:67364] [ruby-trunk - Bug #10700] [Open] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively asari.ruby
@ 2015-01-06 15:28 ` tom.enebo
  2015-01-07  4:58 ` [ruby-core:67374] [ruby-trunk - Bug #10700] [Feedback] " nobu
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 6+ messages in thread
From: tom.enebo @ 2015-01-06 15:28 UTC (permalink / raw
  To: ruby-core

Issue #10700 has been updated by Thomas Enebo.


I just told @arsarih some of the horrific details of an environment I worked where they had case-insensitity built into a forked SVN client on a case sensitive filesystem.  When people do not expect this behavior it leads to really confusing situations.  The most obvious one is a winner is picked (in my example SVN but in this case by Ruby), like FOO.TXT, but that is the not file the user thinks is being loaded, like foo.txt.

----------------------------------------
Bug #10700: On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
https://bugs.ruby-lang.org/issues/10700#change-50815

* Author: Hiro Asari
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
My Mac has the disk reformatted so that it is case-sensitive (HFS+):

~~~
$ touch foo.txt foo.TXT FOO.txt FOO.TXT
$ ls -li foo.* FOO.*                          
286444732 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.TXT
286444731 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.txt
286444729 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.TXT
286444728 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.txt
~~~

You notice that they are all different files.

In Ruby 2.1.5, Dir.glob("*.TxT") returns an empty array, but in 2.2.0, all of these files are returned:

~~~
$ rvm 2.1.5 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]
[]
$ rvm 2.2.0 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
["FOO.TXT", "FOO.txt", "foo.TXT", "foo.txt"]
~~~

This is unexpected and incorrect. This does not happen on Linux.



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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:67374] [ruby-trunk - Bug #10700] [Feedback] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
       [not found] <redmine.issue-10700.20150106130531@ruby-lang.org>
  2015-01-06 13:05 ` [ruby-core:67364] [ruby-trunk - Bug #10700] [Open] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively asari.ruby
  2015-01-06 15:28 ` [ruby-core:67367] [ruby-trunk - Bug #10700] " tom.enebo
@ 2015-01-07  4:58 ` nobu
  2015-01-08  3:10 ` [ruby-core:67420] [ruby-trunk - Bug #10700] " asari.ruby
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 6+ messages in thread
From: nobu @ 2015-01-07  4:58 UTC (permalink / raw
  To: ruby-core

Issue #10700 has been updated by Nobuyoshi Nakada.

Category set to platform/darwin
Status changed from Open to Feedback
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED

Can you try https://github.com/nobu/ruby/compare/Bug%2310700-OSX-case-folding ?

----------------------------------------
Bug #10700: On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
https://bugs.ruby-lang.org/issues/10700#change-50818

* Author: Hiro Asari
* Status: Feedback
* Priority: Normal
* Assignee: 
* Category: platform/darwin
* Target version: 
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED
----------------------------------------
My Mac has the disk reformatted so that it is case-sensitive (HFS+):

~~~
$ touch foo.txt foo.TXT FOO.txt FOO.TXT
$ ls -li foo.* FOO.*                          
286444732 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.TXT
286444731 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.txt
286444729 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.TXT
286444728 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.txt
~~~

You notice that they are all different files.

In Ruby 2.1.5, Dir.glob("*.TxT") returns an empty array, but in 2.2.0, all of these files are returned:

~~~
$ rvm 2.1.5 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]
[]
$ rvm 2.2.0 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
["FOO.TXT", "FOO.txt", "foo.TXT", "foo.txt"]
~~~

This is unexpected and incorrect. This does not happen on Linux.



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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:67420] [ruby-trunk - Bug #10700] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
       [not found] <redmine.issue-10700.20150106130531@ruby-lang.org>
                   ` (2 preceding siblings ...)
  2015-01-07  4:58 ` [ruby-core:67374] [ruby-trunk - Bug #10700] [Feedback] " nobu
@ 2015-01-08  3:10 ` asari.ruby
  2015-01-08  3:54 ` [ruby-core:67422] [ruby-trunk - Bug #10700] [Closed] " nobu
  2015-01-17  7:17 ` [ruby-core:67647] [ruby-trunk - Bug #10700] " naruse
  5 siblings, 0 replies; 6+ messages in thread
From: asari.ruby @ 2015-01-08  3:10 UTC (permalink / raw
  To: ruby-core

Issue #10700 has been updated by Hiro Asari.


Nobuyoshi Nakada wrote:
> Can you try https://github.com/nobu/ruby/compare/Bug%2310700-OSX-case-folding ?

Confirmed that it works.

~~~
$ touch foo.txt foo.TXT FOO.txt FOO.TXT          
$ ls -l foo* FOO*                                
-rw-r--r--  1 asari  staff  0 Jan  7 22:09 FOO.TXT
-rw-r--r--  1 asari  staff  0 Jan  7 22:09 FOO.txt
-rw-r--r--  1 asari  staff  0 Jan  7 22:09 foo.TXT
-rw-r--r--  1 asari  staff  0 Jan  7 22:09 foo.txt
$ ./ruby --disable-gems -v -e 'p Dir.glob("*.TxT")'
ruby 2.3.0dev (2015-01-07 trunk 49171) [x86_64-darwin13]
[]
~~~

----------------------------------------
Bug #10700: On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
https://bugs.ruby-lang.org/issues/10700#change-50850

* Author: Hiro Asari
* Status: Feedback
* Priority: Normal
* Assignee: 
* Category: platform/darwin
* Target version: 
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED
----------------------------------------
My Mac has the disk reformatted so that it is case-sensitive (HFS+):

~~~
$ touch foo.txt foo.TXT FOO.txt FOO.TXT
$ ls -li foo.* FOO.*                          
286444732 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.TXT
286444731 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.txt
286444729 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.TXT
286444728 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.txt
~~~

You notice that they are all different files.

In Ruby 2.1.5, Dir.glob("*.TxT") returns an empty array, but in 2.2.0, all of these files are returned:

~~~
$ rvm 2.1.5 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]
[]
$ rvm 2.2.0 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
["FOO.TXT", "FOO.txt", "foo.TXT", "foo.txt"]
~~~

This is unexpected and incorrect. This does not happen on Linux.



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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:67422] [ruby-trunk - Bug #10700] [Closed] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
       [not found] <redmine.issue-10700.20150106130531@ruby-lang.org>
                   ` (3 preceding siblings ...)
  2015-01-08  3:10 ` [ruby-core:67420] [ruby-trunk - Bug #10700] " asari.ruby
@ 2015-01-08  3:54 ` nobu
  2015-01-17  7:17 ` [ruby-core:67647] [ruby-trunk - Bug #10700] " naruse
  5 siblings, 0 replies; 6+ messages in thread
From: nobu @ 2015-01-08  3:54 UTC (permalink / raw
  To: ruby-core

Issue #10700 has been updated by Nobuyoshi Nakada.

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

Applied in changeset r49178.

----------
dir.c: OSX case-folding

* dir.c (glob_helper): match in case-folding only if the directory
  resides on a case-insensitve file system, on OSX.
  [ruby-core:67364] [Bug #10700]

----------------------------------------
Bug #10700: On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
https://bugs.ruby-lang.org/issues/10700#change-50852

* Author: Hiro Asari
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: platform/darwin
* Target version: 
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED
----------------------------------------
My Mac has the disk reformatted so that it is case-sensitive (HFS+):

~~~
$ touch foo.txt foo.TXT FOO.txt FOO.TXT
$ ls -li foo.* FOO.*                          
286444732 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.TXT
286444731 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.txt
286444729 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.TXT
286444728 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.txt
~~~

You notice that they are all different files.

In Ruby 2.1.5, Dir.glob("*.TxT") returns an empty array, but in 2.2.0, all of these files are returned:

~~~
$ rvm 2.1.5 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]
[]
$ rvm 2.2.0 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
["FOO.TXT", "FOO.txt", "foo.TXT", "foo.txt"]
~~~

This is unexpected and incorrect. This does not happen on Linux.



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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:67647] [ruby-trunk - Bug #10700] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
       [not found] <redmine.issue-10700.20150106130531@ruby-lang.org>
                   ` (4 preceding siblings ...)
  2015-01-08  3:54 ` [ruby-core:67422] [ruby-trunk - Bug #10700] [Closed] " nobu
@ 2015-01-17  7:17 ` naruse
  5 siblings, 0 replies; 6+ messages in thread
From: naruse @ 2015-01-17  7:17 UTC (permalink / raw
  To: ruby-core

Issue #10700 has been updated by Yui NARUSE.

Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED to 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: DONE

ruby_2_2 r49296 merged revision(s) 49178.

----------------------------------------
Bug #10700: On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively
https://bugs.ruby-lang.org/issues/10700#change-51067

* Author: Hiro Asari
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: DONE
----------------------------------------
My Mac has the disk reformatted so that it is case-sensitive (HFS+):

~~~
$ touch foo.txt foo.TXT FOO.txt FOO.TXT
$ ls -li foo.* FOO.*                          
286444732 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.TXT
286444731 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 FOO.txt
286444729 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.TXT
286444728 -rw-r--r--  1 asari  staff  0 Jan  6 08:00 foo.txt
~~~

You notice that they are all different files.

In Ruby 2.1.5, Dir.glob("*.TxT") returns an empty array, but in 2.2.0, all of these files are returned:

~~~
$ rvm 2.1.5 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]
[]
$ rvm 2.2.0 do ruby -v -e 'p Dir.glob("*.TxT")'
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
["FOO.TXT", "FOO.txt", "foo.TXT", "foo.txt"]
~~~

This is unexpected and incorrect. This does not happen on Linux.



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

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-01-17  7:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <redmine.issue-10700.20150106130531@ruby-lang.org>
2015-01-06 13:05 ` [ruby-core:67364] [ruby-trunk - Bug #10700] [Open] On case-sensitive filesystem on OS X, Dir.glob("*.TXT") matches case-insensitively asari.ruby
2015-01-06 15:28 ` [ruby-core:67367] [ruby-trunk - Bug #10700] " tom.enebo
2015-01-07  4:58 ` [ruby-core:67374] [ruby-trunk - Bug #10700] [Feedback] " nobu
2015-01-08  3:10 ` [ruby-core:67420] [ruby-trunk - Bug #10700] " asari.ruby
2015-01-08  3:54 ` [ruby-core:67422] [ruby-trunk - Bug #10700] [Closed] " nobu
2015-01-17  7:17 ` [ruby-core:67647] [ruby-trunk - Bug #10700] " naruse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).