[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]