ruby-changes:32722
From: naruse <ko1@a...>
Date: Tue, 4 Feb 2014 12:20:03 +0900 (JST)
Subject: [ruby-changes:32722] naruse:r44801 (trunk): Revert "dir.c: glob cases on case-insensitive system"
naruse 2014-02-04 12:19:57 +0900 (Tue, 04 Feb 2014) New Revision: 44801 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=44801 Log: Revert "dir.c: glob cases on case-insensitive system" This reverts commit r44796. * dir.c (glob_helper): return the filename with actual cases on the filesystem if it is case-insensitive. [ruby-core:42469] [Feature #5994] Modified files: trunk/ChangeLog trunk/dir.c trunk/test/ruby/test_dir.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 44800) +++ ChangeLog (revision 44801) @@ -8,12 +8,6 @@ Mon Feb 3 12:04:47 2014 Kazuhiro NISHI https://github.com/ruby/ruby/blob/trunk/ChangeLog#L8 * error.c: [DOC] Exception#cause may return nil. [ci skip] -Mon Feb 3 10:49:48 2014 Nobuyoshi Nakada <nobu@r...> - - * dir.c (glob_helper): return the filename with actual cases on - the filesystem if it is case-insensitive. [ruby-core:42469] - [Feature #5994] - Sun Feb 2 05:48:42 2014 Eric Wong <e@8...> * io.c (rb_io_syswrite): add RB_GC_GUARD Index: dir.c =================================================================== --- dir.c (revision 44800) +++ dir.c (revision 44801) @@ -1397,29 +1397,14 @@ glob_helper( https://github.com/ruby/ruby/blob/trunk/dir.c#L1397 if (exist == NO || isdir == NO) return 0; - if (magical || recursive || ((FNM_SYSCASE || HAVE_HFS) && plain)) { + if (magical || recursive) { struct dirent *dp; DIR *dirp; IF_HAVE_HFS(int hfs_p); dirp = do_opendir(*path ? path : ".", flags, enc); - if (dirp == NULL) { -# if FNM_SYSCASE || HAVE_HFS - if (!(magical || recursive) && (errno == EACCES)) { - /* no read permission, fallback */ - goto literally; - } -# endif - return 0; - } + if (dirp == NULL) return 0; IF_HAVE_HFS(hfs_p = is_hfs(dirp)); -# if HAVE_HFS - if (!(hfs_p || magical || recursive)) { - closedir(dirp); - goto literally; - } - flags |= FNM_CASEFOLD; -# endif while ((dp = READDIR(dirp, enc)) != NULL) { char *buf; enum answer new_isdir = UNKNOWN; @@ -1501,9 +1486,6 @@ glob_helper( https://github.com/ruby/ruby/blob/trunk/dir.c#L1486 else if (plain) { struct glob_pattern **copy_beg, **copy_end, **cur2; -# if FNM_SYSCASE || HAVE_HFS - literally: -# endif copy_beg = copy_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg); if (!copy_beg) return -1; for (cur = beg; cur < end; ++cur) Index: test/ruby/test_dir.rb =================================================================== --- test/ruby/test_dir.rb (revision 44800) +++ test/ruby/test_dir.rb (revision 44801) @@ -228,27 +228,6 @@ class TestDir < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_dir.rb#L228 assert_empty(Dir.glob(File.join(@root, "<")), bug8597) end - def test_glob_cases - feature5994 = "[ruby-core:42469] [Feature #5994]" - feature5994 << "\nDir.glob should return the filename with actual cases on the filesystem" - Dir.chdir(File.join(@root, "a")) do - open("FileWithCases", "w") {} - return unless File.exist?("filewithcases") - assert_equal(%w"FileWithCases", Dir.glob("filewithcases"), feature5994) - end - Dir.chdir(File.join(@root, "c")) do - open("FileWithCases", "w") {} - mode = File.stat(".").mode - begin - File.chmod(mode & ~0444, ".") - return if mode == File.stat(".").mode - assert_equal(%w"filewithcases", Dir.glob("filewithcases"), feature5994) - ensure - File.chmod(mode, ".") - end - end - end - def test_home env_home = ENV["HOME"] env_logdir = ENV["LOGDIR"] -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/