Instead of changing the code to match the documentation, change the documentation

to match the code. NOCHECK is used only by csh(1) and csh(1) is too broken for
words (histchars quoting is "special").
This commit is contained in:
christos 2012-12-27 21:17:47 +00:00
parent 5e4c896995
commit 7c894664c7
2 changed files with 20 additions and 29 deletions

View File

@ -1,4 +1,4 @@
.\" $NetBSD: glob.3,v 1.41 2012/08/12 13:31:41 christos Exp $
.\" $NetBSD: glob.3,v 1.42 2012/12/27 21:17:47 christos Exp $
.\"
.\" Copyright (c) 1989, 1991, 1993, 1994
.\" The Regents of the University of California. All rights reserved.
@ -31,7 +31,7 @@
.\"
.\" @(#)glob.3 8.3 (Berkeley) 4/16/94
.\"
.Dd August 12, 2012
.Dd December 27, 2012
.Dt GLOB 3
.Os
.Sh NAME
@ -185,7 +185,8 @@ does not match any pathname, then
returns a list
consisting of only
.Fa pattern ,
with the number of total pathnames set to 1, and the number of matched
with one level of backslash escapes removed,
the number of total pathnames set to 1, and the number of matched
pathnames set to 0.
.It Dv GLOB_NOSORT
By default, the pathnames are sorted in ascending

View File

@ -1,4 +1,4 @@
/* $NetBSD: glob.c,v 1.32 2012/12/18 01:39:56 christos Exp $ */
/* $NetBSD: glob.c,v 1.33 2012/12/27 21:17:47 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("$NetBSD: glob.c,v 1.32 2012/12/18 01:39:56 christos Exp $");
__RCSID("$NetBSD: glob.c,v 1.33 2012/12/27 21:17:47 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@ -163,7 +163,7 @@ static int g_lstat(Char *, __gl_stat_t *, glob_t *);
static DIR *g_opendir(Char *, glob_t *);
static Char *g_strchr(const Char *, int);
static int g_stat(Char *, __gl_stat_t *, glob_t *);
static int glob0(const char *, const Char *, glob_t *, struct glob_limit *);
static int glob0(const Char *, glob_t *, struct glob_limit *);
static int glob1(Char *, glob_t *, struct glob_limit *);
static int glob2(Char *, Char *, Char *, const Char *, glob_t *,
struct glob_limit *);
@ -171,8 +171,8 @@ static int glob3(Char *, Char *, Char *, const Char *, const Char *,
const Char *, glob_t *, struct glob_limit *);
static int globextend(const Char *, glob_t *, struct glob_limit *);
static const Char *globtilde(const Char *, Char *, size_t, glob_t *);
static int globexp1(const char *, const Char *, glob_t *, struct glob_limit *);
static int globexp2(const char *, const Char *, const Char *, glob_t *, int *,
static int globexp1(const Char *, glob_t *, struct glob_limit *);
static int globexp2(const Char *, const Char *, glob_t *, int *,
struct glob_limit *);
static int match(const Char *, const Char *, const Char *);
#ifdef DEBUG
@ -222,9 +222,9 @@ glob(const char * __restrict pattern, int flags, int (*errfunc)(const char *,
*bufnext = EOS;
if (flags & GLOB_BRACE)
return globexp1(pattern, patbuf, pglob, &limit);
return globexp1(patbuf, pglob, &limit);
else
return glob0(pattern, patbuf, pglob, &limit);
return glob0(patbuf, pglob, &limit);
}
/*
@ -233,7 +233,7 @@ glob(const char * __restrict pattern, int flags, int (*errfunc)(const char *,
* characters
*/
static int
globexp1(const char *orig, const Char *pattern, glob_t *pglob, struct glob_limit *limit)
globexp1(const Char *pattern, glob_t *pglob, struct glob_limit *limit)
{
const Char* ptr = pattern;
int rv;
@ -249,13 +249,13 @@ globexp1(const char *orig, const Char *pattern, glob_t *pglob, struct glob_limit
/* Protect a single {}, for find(1), like csh */
if (pattern[0] == LBRACE && pattern[1] == RBRACE && pattern[2] == EOS)
return glob0(orig, pattern, pglob, limit);
return glob0(pattern, pglob, limit);
while ((ptr = (const Char *) g_strchr(ptr, LBRACE)) != NULL)
if (!globexp2(orig, ptr, pattern, pglob, &rv, limit))
if (!globexp2(ptr, pattern, pglob, &rv, limit))
return rv;
return glob0(orig, pattern, pglob, limit);
return glob0(pattern, pglob, limit);
}
@ -265,7 +265,7 @@ globexp1(const char *orig, const Char *pattern, glob_t *pglob, struct glob_limit
* If it fails then it tries to glob the rest of the pattern and returns.
*/
static int
globexp2(const char *orig, const Char *ptr, const Char *pattern, glob_t *pglob, int *rv,
globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, int *rv,
struct glob_limit *limit)
{
int i;
@ -311,7 +311,7 @@ globexp2(const char *orig, const Char *ptr, const Char *pattern, glob_t *pglob,
* we use `pattern', not `patbuf' here so that that
* unbalanced braces are passed to the match
*/
*rv = glob0(orig, pattern, pglob, limit);
*rv = glob0(pattern, pglob, limit);
return 0;
}
@ -358,7 +358,7 @@ globexp2(const char *orig, const Char *ptr, const Char *pattern, glob_t *pglob,
#ifdef DEBUG
qprintf("globexp2", patbuf);
#endif
*rv = globexp1(orig, patbuf, pglob, limit);
*rv = globexp1(patbuf, pglob, limit);
/* move after the comma, to the next string */
pl = pm + 1;
@ -471,7 +471,7 @@ globtilde(const Char *pattern, Char *patbuf, size_t patsize, glob_t *pglob)
* to find no matches.
*/
static int
glob0(const char *orig, const Char *pattern, glob_t *pglob, struct glob_limit *limit)
glob0(const Char *pattern, glob_t *pglob, struct glob_limit *limit)
{
const Char *qpatnext;
int c, error;
@ -556,17 +556,7 @@ glob0(const char *orig, const Char *pattern, glob_t *pglob, struct glob_limit *l
if ((pglob->gl_flags & GLOB_NOCHECK) ||
((pglob->gl_flags & (GLOB_NOMAGIC|GLOB_MAGCHAR))
== GLOB_NOMAGIC)) {
const u_char *patnext;
Char *bufend;
bufend = patbuf + MAXPATHLEN;
patnext = (const unsigned char *)orig;
bufnext = patbuf;
while (bufnext < bufend && (c = *patnext++) != EOS)
*bufnext++ = c;
*bufnext = EOS;
return globextend(patbuf, pglob, limit);
return globextend(pattern, pglob, limit);
} else {
return GLOB_NOMATCH;
}