- (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25.
This commit is contained in:
parent
d76b4c74f8
commit
6524d4f161
|
@ -27,6 +27,7 @@
|
|||
- (dtucker) [openbsd-compat/strtoul.c] Update from OpenBSD 1.5 -> 1.7.
|
||||
- (dtucker) [openbsd-compat/readpassphrase.c] Update from OpenBSD 1.16 -> 1.18.
|
||||
- (dtucker) [openbsd-compat/readpassphrase.h] Update from OpenBSD 1.3 -> 1.5.
|
||||
- (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25.
|
||||
|
||||
20051105
|
||||
- (djm) OpenBSD CVS Sync
|
||||
|
@ -3269,4 +3270,4 @@
|
|||
- (djm) Trim deprecated options from INSTALL. Mention UsePAM
|
||||
- (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu
|
||||
|
||||
$Id: ChangeLog,v 1.3970 2005/11/10 05:58:47 dtucker Exp $
|
||||
$Id: ChangeLog,v 1.3971 2005/11/10 06:02:21 dtucker Exp $
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
/* $OpenBSD: glob.c,v 1.25 2005/08/08 08:05:34 espie Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
|
@ -50,14 +51,6 @@ get_arg_max(void)
|
|||
#if !defined(HAVE_GLOB) || !defined(GLOB_HAS_ALTDIRFUNC) || \
|
||||
!defined(GLOB_HAS_GL_MATCHC)
|
||||
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)glob.c 8.3 (Berkeley) 10/13/93";
|
||||
#else
|
||||
static char rcsid[] = "$OpenBSD: glob.c,v 1.22 2003/06/25 21:16:47 deraadt Exp $";
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* glob(3) -- a superset of the one defined in POSIX 1003.2.
|
||||
*
|
||||
|
@ -158,10 +151,8 @@ static void qprintf(const char *, Char *);
|
|||
#endif
|
||||
|
||||
int
|
||||
glob(pattern, flags, errfunc, pglob)
|
||||
const char *pattern;
|
||||
int flags, (*errfunc)(const char *, int);
|
||||
glob_t *pglob;
|
||||
glob(const char *pattern, int flags, int (*errfunc)(const char *, int),
|
||||
glob_t *pglob)
|
||||
{
|
||||
const u_char *patnext;
|
||||
int c;
|
||||
|
@ -209,9 +200,7 @@ glob(pattern, flags, errfunc, pglob)
|
|||
* characters
|
||||
*/
|
||||
static int
|
||||
globexp1(pattern, pglob)
|
||||
const Char *pattern;
|
||||
glob_t *pglob;
|
||||
globexp1(const Char *pattern, glob_t *pglob)
|
||||
{
|
||||
const Char* ptr = pattern;
|
||||
int rv;
|
||||
|
@ -234,10 +223,7 @@ globexp1(pattern, pglob)
|
|||
* If it fails then it tries to glob the rest of the pattern and returns.
|
||||
*/
|
||||
static int
|
||||
globexp2(ptr, pattern, pglob, rv)
|
||||
const Char *ptr, *pattern;
|
||||
glob_t *pglob;
|
||||
int *rv;
|
||||
globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, int *rv)
|
||||
{
|
||||
int i;
|
||||
Char *lm, *ls;
|
||||
|
@ -342,11 +328,7 @@ globexp2(ptr, pattern, pglob, rv)
|
|||
* expand tilde from the passwd file.
|
||||
*/
|
||||
static const Char *
|
||||
globtilde(pattern, patbuf, patbuf_len, pglob)
|
||||
const Char *pattern;
|
||||
Char *patbuf;
|
||||
size_t patbuf_len;
|
||||
glob_t *pglob;
|
||||
globtilde(const Char *pattern, Char *patbuf, size_t patbuf_len, glob_t *pglob)
|
||||
{
|
||||
struct passwd *pwd;
|
||||
char *h;
|
||||
|
@ -414,9 +396,7 @@ globtilde(pattern, patbuf, patbuf_len, pglob)
|
|||
* to find no matches.
|
||||
*/
|
||||
static int
|
||||
glob0(pattern, pglob)
|
||||
const Char *pattern;
|
||||
glob_t *pglob;
|
||||
glob0(const Char *pattern, glob_t *pglob)
|
||||
{
|
||||
const Char *qpatnext;
|
||||
int c, err, oldpathc;
|
||||
|
@ -503,17 +483,13 @@ glob0(pattern, pglob)
|
|||
}
|
||||
|
||||
static int
|
||||
compare(p, q)
|
||||
const void *p, *q;
|
||||
compare(const void *p, const void *q)
|
||||
{
|
||||
return(strcmp(*(char **)p, *(char **)q));
|
||||
}
|
||||
|
||||
static int
|
||||
glob1(pattern, pattern_last, pglob, limitp)
|
||||
Char *pattern, *pattern_last;
|
||||
glob_t *pglob;
|
||||
size_t *limitp;
|
||||
glob1(Char *pattern, Char *pattern_last, glob_t *pglob, size_t *limitp)
|
||||
{
|
||||
Char pathbuf[MAXPATHLEN];
|
||||
|
||||
|
@ -531,12 +507,8 @@ glob1(pattern, pattern_last, pglob, limitp)
|
|||
* meta characters.
|
||||
*/
|
||||
static int
|
||||
glob2(pathbuf, pathbuf_last, pathend, pathend_last, pattern,
|
||||
pattern_last, pglob, limitp)
|
||||
Char *pathbuf, *pathbuf_last, *pathend, *pathend_last;
|
||||
Char *pattern, *pattern_last;
|
||||
glob_t *pglob;
|
||||
size_t *limitp;
|
||||
glob2(Char *pathbuf, Char *pathbuf_last, Char *pathend, Char *pathend_last,
|
||||
Char *pattern, Char *pattern_last, glob_t *pglob, size_t *limitp)
|
||||
{
|
||||
struct stat sb;
|
||||
Char *p, *q;
|
||||
|
@ -595,14 +567,11 @@ glob2(pathbuf, pathbuf_last, pathend, pathend_last, pattern,
|
|||
}
|
||||
|
||||
static int
|
||||
glob3(pathbuf, pathbuf_last, pathend, pathend_last, pattern, pattern_last,
|
||||
restpattern, restpattern_last, pglob, limitp)
|
||||
Char *pathbuf, *pathbuf_last, *pathend, *pathend_last;
|
||||
Char *pattern, *pattern_last, *restpattern, *restpattern_last;
|
||||
glob_t *pglob;
|
||||
size_t *limitp;
|
||||
glob3(Char *pathbuf, Char *pathbuf_last, Char *pathend, Char *pathend_last,
|
||||
Char *pattern, Char *pattern_last, Char *restpattern,
|
||||
Char *restpattern_last, glob_t *pglob, size_t *limitp)
|
||||
{
|
||||
register struct dirent *dp;
|
||||
struct dirent *dp;
|
||||
DIR *dirp;
|
||||
int err;
|
||||
char buf[MAXPATHLEN];
|
||||
|
@ -640,8 +609,8 @@ glob3(pathbuf, pathbuf_last, pathend, pathend_last, pattern, pattern_last,
|
|||
else
|
||||
readdirfunc = (struct dirent *(*)(void *))readdir;
|
||||
while ((dp = (*readdirfunc)(dirp))) {
|
||||
register u_char *sc;
|
||||
register Char *dc;
|
||||
u_char *sc;
|
||||
Char *dc;
|
||||
|
||||
/* Initial DOT must be matched literally. */
|
||||
if (dp->d_name[0] == DOT && *pattern != DOT)
|
||||
|
@ -689,13 +658,10 @@ glob3(pathbuf, pathbuf_last, pathend, pathend_last, pattern, pattern_last,
|
|||
* gl_pathv points to (gl_offs + gl_pathc + 1) items.
|
||||
*/
|
||||
static int
|
||||
globextend(path, pglob, limitp)
|
||||
const Char *path;
|
||||
glob_t *pglob;
|
||||
size_t *limitp;
|
||||
globextend(const Char *path, glob_t *pglob, size_t *limitp)
|
||||
{
|
||||
register char **pathv;
|
||||
register int i;
|
||||
char **pathv;
|
||||
int i;
|
||||
u_int newsize, len;
|
||||
char *copy;
|
||||
const Char *p;
|
||||
|
@ -747,8 +713,7 @@ globextend(path, pglob, limitp)
|
|||
* pattern causes a recursion level.
|
||||
*/
|
||||
static int
|
||||
match(name, pat, patend)
|
||||
register Char *name, *pat, *patend;
|
||||
match(Char *name, Char *pat, Char *patend)
|
||||
{
|
||||
int ok, negate_range;
|
||||
Char c, k;
|
||||
|
@ -759,11 +724,10 @@ match(name, pat, patend)
|
|||
case M_ALL:
|
||||
if (pat == patend)
|
||||
return(1);
|
||||
do
|
||||
do {
|
||||
if (match(name, pat, patend))
|
||||
return(1);
|
||||
while (*name++ != EOS)
|
||||
;
|
||||
} while (*name++ != EOS);
|
||||
return(0);
|
||||
case M_ONE:
|
||||
if (*name++ == EOS)
|
||||
|
@ -796,11 +760,10 @@ match(name, pat, patend)
|
|||
|
||||
/* Free allocated data belonging to a glob_t structure. */
|
||||
void
|
||||
globfree(pglob)
|
||||
glob_t *pglob;
|
||||
globfree(glob_t *pglob)
|
||||
{
|
||||
register int i;
|
||||
register char **pp;
|
||||
int i;
|
||||
char **pp;
|
||||
|
||||
if (pglob->gl_pathv != NULL) {
|
||||
pp = pglob->gl_pathv + pglob->gl_offs;
|
||||
|
@ -813,9 +776,7 @@ globfree(pglob)
|
|||
}
|
||||
|
||||
static DIR *
|
||||
g_opendir(str, pglob)
|
||||
register Char *str;
|
||||
glob_t *pglob;
|
||||
g_opendir(Char *str, glob_t *pglob)
|
||||
{
|
||||
char buf[MAXPATHLEN];
|
||||
|
||||
|
@ -833,10 +794,7 @@ g_opendir(str, pglob)
|
|||
}
|
||||
|
||||
static int
|
||||
g_lstat(fn, sb, pglob)
|
||||
register Char *fn;
|
||||
struct stat *sb;
|
||||
glob_t *pglob;
|
||||
g_lstat(Char *fn, struct stat *sb, glob_t *pglob)
|
||||
{
|
||||
char buf[MAXPATHLEN];
|
||||
|
||||
|
@ -848,10 +806,7 @@ g_lstat(fn, sb, pglob)
|
|||
}
|
||||
|
||||
static int
|
||||
g_stat(fn, sb, pglob)
|
||||
register Char *fn;
|
||||
struct stat *sb;
|
||||
glob_t *pglob;
|
||||
g_stat(Char *fn, struct stat *sb, glob_t *pglob)
|
||||
{
|
||||
char buf[MAXPATHLEN];
|
||||
|
||||
|
@ -863,9 +818,7 @@ g_stat(fn, sb, pglob)
|
|||
}
|
||||
|
||||
static Char *
|
||||
g_strchr(str, ch)
|
||||
Char *str;
|
||||
int ch;
|
||||
g_strchr(Char *str, int ch)
|
||||
{
|
||||
do {
|
||||
if (*str == ch)
|
||||
|
@ -875,10 +828,7 @@ g_strchr(str, ch)
|
|||
}
|
||||
|
||||
static int
|
||||
g_Ctoc(str, buf, len)
|
||||
register const Char *str;
|
||||
char *buf;
|
||||
u_int len;
|
||||
g_Ctoc(const Char *str, char *buf, u_int len)
|
||||
{
|
||||
|
||||
while (len--) {
|
||||
|
@ -890,11 +840,9 @@ g_Ctoc(str, buf, len)
|
|||
|
||||
#ifdef DEBUG
|
||||
static void
|
||||
qprintf(str, s)
|
||||
const char *str;
|
||||
register Char *s;
|
||||
qprintf(const char *str, Char *s)
|
||||
{
|
||||
register Char *p;
|
||||
Char *p;
|
||||
|
||||
(void)printf("%s:\n", str);
|
||||
for (p = s; *p; p++)
|
||||
|
|
Loading…
Reference in New Issue