2007-10-07 Ulrich Drepper <drepper@redhat.com>
+ [BZ #5103]
+ * posix/glob.c (glob): Recognize patterns starting \/.
+ * posix/tst-gnuglob.c (find_file): Handle absolute path names.
+ (main): Add test for pattern starting \/.
+
* misc/error.h: Use __const instead of const.
* misc/bits/error.h: Likewise.
dirlen = 0;
}
}
- else if (filename == pattern)
+ else if (filename == pattern
+ || (filename == pattern + 1 && pattern[0] == '\\'))
{
- /* "/pattern". */
+ /* "/pattern" or "\\/pattern". */
dirname = "/";
dirlen = 1;
++filename;
/* Test the GNU extensions in glob which allow the user to provide callbacks
for the filesystem access functions.
- Copyright (C) 2001-2002 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
int level = 1;
long int idx = 0;
+ while (s[0] == '/')
+ {
+ if (s[1] == '\0')
+ {
+ s = ".";
+ break;
+ }
+ ++s;
+ }
+
if (strcmp (s, ".") == 0)
return 0;
"dir2lev1/dir1lev2/.dir",
"dir2lev1/dir1lev2/.foo");
+ test ("\\/*", GLOB_ALTDIRFUNC,
+ "/dir1lev1",
+ "/dir2lev1",
+ "/file1lev1",
+ "/file2lev1");
+
globfree (&gl);
return result;