This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[RFC][BZ #10278] glob() gives inconsistent results with trailing "/"
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: eblake at redhat dot com
- Cc: libc-alpha at sourceware dot org
- Date: Thu, 3 Oct 2013 09:59:37 +0200
- Subject: [RFC][BZ #10278] glob() gives inconsistent results with trailing "/"
- Authentication-results: sourceware.org; auth=none
Hi,
For this bug https://sourceware.org/bugzilla/show_bug.cgi?id=10278 there
is a simple fix when we have DIRENT_H defined.
For cross platform solution we would need surround this by ifdefs when
separator is not slash and handling case of no dirent.
Comments?
diff --git a/posix/glob.c b/posix/glob.c
index 4c7dce5..ab5b4cb 100644
--- a/posix/glob.c
+++ b/posix/glob.c
@@ -276,6 +276,9 @@ glob (pattern, flags, errfunc, pglob)
return -1;
}
+ if (pattern[0] && pattern[strlen (pattern) - 1] == '/')
+ flags |= GLOB_ONLYDIR;
+
if (!(flags & GLOB_DOOFFS))
/* Have to do this so `globfree' knows where to start freeing. It
also makes all the code that uses gl_offs simpler. */