Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/lib/libc/gen/glob.c,v retrieving revision 1.18.8.2 retrieving revision 1.19 diff -u -p -r1.18.8.2 -r1.19 --- src/lib/libc/gen/glob.c 2008/03/23 00:40:25 1.18.8.2 +++ src/lib/libc/gen/glob.c 2007/12/05 20:25:56 1.19 @@ -1,4 +1,4 @@ -/* glob.c,v 1.18.8.1 2008/01/09 01:34:05 matt Exp */ +/* $NetBSD: glob.c,v 1.19 2007/12/05 20:25:56 christos Exp $ */ /* * Copyright (c) 1989, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)glob.c 8.3 (Berkeley) 10/13/93"; #else -__RCSID("glob.c,v 1.18.8.1 2008/01/09 01:34:05 matt Exp"); +__RCSID("$NetBSD: glob.c,v 1.19 2007/12/05 20:25:56 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -61,8 +61,6 @@ __RCSID("glob.c,v 1.18.8.1 2008/01/09 01 * expand {1,2}{a,b} to 1a 1b 2a 2b * GLOB_PERIOD: * allow metacharacters to match leading dots in filenames. - * GLOB_NO_DOTDIRS: - * . and .. are hidden from wildcards, even if GLOB_PERIOD is set. * gl_matchc: * Number of matches in the current invocation of glob. */ @@ -78,7 +76,6 @@ __RCSID("glob.c,v 1.18.8.1 2008/01/09 01 #include #include #include -#include #include #include #include @@ -587,8 +584,6 @@ glob2(Char *pathbuf, Char *pathend, Char __gl_stat_t sb; Char *p, *q; int anymeta; - Char *pend; - ptrdiff_t diff; _DIAGASSERT(pathbuf != NULL); _DIAGASSERT(pathend != NULL); @@ -630,26 +625,7 @@ glob2(Char *pathbuf, Char *pathend, Char *q++ = *p++; } - /* - * No expansion, or path ends in slash-dot shash-dot-dot, - * do next segment. - */ - if (pglob->gl_flags & GLOB_PERIOD) { - for (pend = pathend; pend > pathbuf && pend[-1] == '/'; - pend--) - continue; - diff = pend - pathbuf; - } else { - /* XXX: GCC */ - diff = 0; - pend = pathend; - } - - if ((!anymeta) || - ((pglob->gl_flags & GLOB_PERIOD) && - (diff >= 1 && pend[-1] == DOT) && - (diff >= 2 && (pend[-2] == SLASH || pend[-2] == DOT)) && - (diff < 3 || pend[-3] == SLASH))) { + if (!anymeta) { /* No expansion, do next segment. */ pathend = q; pattern = p; while (*pattern == SEP) { @@ -729,14 +705,6 @@ glob3(Char *pathbuf, Char *pathend, Char if (dp->d_name[0] == DOT && *pattern != DOT) continue; /* - * If GLOB_NO_DOTDIRS is set, . and .. vanish. - */ - if ((pglob->gl_flags & GLOB_NO_DOTDIRS) && - (dp->d_name[0] == DOT) && - ((dp->d_name[1] == EOS) || - ((dp->d_name[1] == DOT) && (dp->d_name[2] == EOS)))) - continue; - /* * The resulting string contains EOS, so we can * use the pathlim character, if it is the nul */