diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rwxr-xr-x | posix/globtest.sh | 13 | ||||
-rw-r--r-- | sysdeps/generic/glob.c | 5 |
3 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index f3e302abcc..026ef2f66a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2002-04-28 Ulrich Drepper <drepper@redhat.com> + * sysdeps/generic/glob.c (glob): Don't pass GLOB_NOMAGIC flag to + glob_in_dir [PR libc/3385]. + * posix/globtest.sh: Add test case. + * intl/loadmsgcat.c [!_LIBC] (_nl_init_domain_conv): Don't add //TRANSLIT twice. diff --git a/posix/globtest.sh b/posix/globtest.sh index a57c49f872..d5032562ea 100755 --- a/posix/globtest.sh +++ b/posix/globtest.sh @@ -211,6 +211,19 @@ if test $failed -ne 0; then result=1 fi +# Test NOMAGIC for subdirs +failed=0 +${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \ +${common_objpfx}posix/globtest -g "$testdir" "*/does-not-exist" | +sort > $testout +cat <<"EOF" | cmp - $testout >> $logfile || failed=1 +GLOB_NOMATCH +EOF +if test $failed -ne 0; then + echo "No magic in subdir test failed" >> $logfile + result=1 +fi + # Test subdirs correctly failed=0 ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \ diff --git a/sysdeps/generic/glob.c b/sysdeps/generic/glob.c index af409c54b2..4a56f90f63 100644 --- a/sysdeps/generic/glob.c +++ b/sysdeps/generic/glob.c @@ -494,7 +494,7 @@ glob (pattern, flags, errfunc, pglob) #endif result = glob (onealt, - ((flags & ~(GLOB_NOCHECK|GLOB_NOMAGIC)) + ((flags & ~(GLOB_NOCHECK | GLOB_NOMAGIC)) | GLOB_APPEND), errfunc, pglob); /* If we got an error, return it. */ @@ -929,7 +929,8 @@ glob (pattern, flags, errfunc, pglob) old_pathc = pglob->gl_pathc; status = glob_in_dir (filename, dirs.gl_pathv[i], - ((flags | GLOB_APPEND) & ~GLOB_NOCHECK), + ((flags | GLOB_APPEND) + & ~(GLOB_NOCHECK | GLOB_NOMAGIC)), errfunc, pglob); if (status == GLOB_NOMATCH) /* No matches in this directory. Try the next. */ |