- (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25.

This commit is contained in:
Darren Tucker 2005-11-10 17:02:21 +11:00
parent d76b4c74f8
commit 6524d4f161
2 changed files with 35 additions and 86 deletions

View File

@ -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 $

View File

@ -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++)