summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-04 03:19:57 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-04 03:19:57 +0000
commit859ae7764c69e6418945c96c596e55924d5dd8b8 (patch)
treeb96bb28629f16c308f7a052e74e244cd51353c56
parent4f431224965e4c986525309c7bbc298b9ae3d95f (diff)
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] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--dir.c22
-rw-r--r--test/ruby/test_dir.rb21
3 files changed, 2 insertions, 47 deletions
diff --git a/ChangeLog b/ChangeLog
index b2a76623e0..a571b56d58 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,12 +8,6 @@ Mon Feb 3 12:04:47 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
* error.c: [DOC] Exception#cause may return nil. [ci skip]
-Mon Feb 3 10:49:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * 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@80x24.org>
* io.c (rb_io_syswrite): add RB_GC_GUARD
diff --git a/dir.c b/dir.c
index d28037a2d0..4fe2c8832f 100644
--- a/dir.c
+++ b/dir.c
@@ -1397,29 +1397,14 @@ glob_helper(
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(
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)
diff --git a/test/ruby/test_dir.rb b/test/ruby/test_dir.rb
index b0d848c83f..6054b8f7fe 100644
--- a/test/ruby/test_dir.rb
+++ b/test/ruby/test_dir.rb
@@ -228,27 +228,6 @@ class TestDir < Test::Unit::TestCase
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"]