diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2001-09-09 16:41:34 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2001-09-09 16:41:34 +0000 |
commit | c8a4e438f9cf12da68fbba3eb959836cbcfc60ec (patch) | |
tree | 4754bfd1f4dd0056cf219b4c34a27f1ca7297458 /gnu/libexec/uucp/libunix/wldcrd.c | |
parent | 5a8be4d0389edca96e00abdbfbc4a4b6f3140468 (diff) |
uucp goes away
Diffstat (limited to 'gnu/libexec/uucp/libunix/wldcrd.c')
-rw-r--r-- | gnu/libexec/uucp/libunix/wldcrd.c | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/gnu/libexec/uucp/libunix/wldcrd.c b/gnu/libexec/uucp/libunix/wldcrd.c deleted file mode 100644 index 1aa17fa1ab6..00000000000 --- a/gnu/libexec/uucp/libunix/wldcrd.c +++ /dev/null @@ -1,213 +0,0 @@ -/* wldcrd.c - Expand wildcards. - - Copyright (C) 1991, 1992, 1993 Ian Lance Taylor - - This file is part of the Taylor UUCP package. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - The author of the program may be contacted at ian@airs.com or - c/o Cygnus Support, 48 Grove Street, Somerville, MA 02144. - */ - -#include "uucp.h" - -#include "uudefs.h" -#include "sysdep.h" -#include "system.h" - -#include <ctype.h> -#include <errno.h> - -#if HAVE_GLOB && ! HAVE_GLOB_H -#undef HAVE_GLOB -#define HAVE_GLOB 0 -#endif - -#if HAVE_GLOB -#include <glob.h> -#endif - -/* Local variables to hold the wildcard in progress. */ - -#if HAVE_GLOB -static glob_t sSglob; -static int iSglob; -#else -static char *zSwildcard_alloc; -static char *zSwildcard; -#endif - -/* Start getting a wildcarded file spec. Use the glob function if it - is available, and otherwise use the shell. */ - -boolean -fsysdep_wildcard_start (zfile) - const char *zfile; -{ -#if HAVE_GLOB - -#if DEBUG > 0 - if (*zfile != '/') - ulog (LOG_FATAL, "fsysdep_wildcard: %s: Can't happen", zfile); -#endif - - if (glob (zfile, 0, (int (*) ()) NULL, &sSglob) != 0) - sSglob.gl_pathc = 0; - iSglob = 0; - return TRUE; - -#else /* ! HAVE_GLOB */ - - char *zcmd, *zto; - const char *zfrom; - size_t c; - const char *azargs[4]; - FILE *e; - pid_t ipid; - -#if DEBUG > 0 - if (*zfile != '/') - ulog (LOG_FATAL, "fsysdep_wildcard: %s: Can't happen", zfile); -#endif - - zSwildcard_alloc = NULL; - zSwildcard = NULL; - - zcmd = zbufalc (sizeof ECHO_PROGRAM + sizeof " " + 2 * strlen (zfile)); - memcpy (zcmd, ECHO_PROGRAM, sizeof ECHO_PROGRAM - 1); - zto = zcmd + sizeof ECHO_PROGRAM - 1; - *zto++ = ' '; - zfrom = zfile; - while (*zfrom != '\0') - { - /* To avoid shell trickery, we quote all characters except - letters, digits, and wildcard specifiers. We don't quote '/' - to avoid an Ultrix sh bug. */ - if (! isalnum (*zfrom) - && *zfrom != '*' - && *zfrom != '?' - && *zfrom != '[' - && *zfrom != ']' - && *zfrom != '/') - *zto++ = '\\'; - *zto++ = *zfrom++; - } - *zto = '\0'; - - azargs[0] = "/bin/sh"; - azargs[1] = "-c"; - azargs[2] = zcmd; - azargs[3] = NULL; - - e = espopen (azargs, TRUE, &ipid); - - ubuffree (zcmd); - - if (e == NULL) - { - ulog (LOG_ERROR, "espopen: %s", strerror (errno)); - return FALSE; - } - - zSwildcard_alloc = NULL; - c = 0; - if (getline (&zSwildcard_alloc, &c, e) <= 0) - { - xfree ((pointer) zSwildcard_alloc); - zSwildcard_alloc = NULL; - } - - if (ixswait ((unsigned long) ipid, ECHO_PROGRAM) != 0) - { - xfree ((pointer) zSwildcard_alloc); - return FALSE; - } - - if (zSwildcard_alloc == NULL) - return FALSE; - - DEBUG_MESSAGE1 (DEBUG_EXECUTE, - "fsysdep_wildcard_start: got \"%s\"", - zSwildcard_alloc); - - zSwildcard = zSwildcard_alloc; - - return TRUE; - -#endif /* ! HAVE_GLOB */ -} - -/* Get the next wildcard spec. */ - -/*ARGSUSED*/ -char * -zsysdep_wildcard (zfile) - const char *zfile; -{ -#if HAVE_GLOB - - char *zret; - - if (iSglob >= sSglob.gl_pathc) - return NULL; - zret = zbufcpy (sSglob.gl_pathv[iSglob]); - ++iSglob; - return zret; - -#else /* ! HAVE_GLOB */ - - char *zret; - - if (zSwildcard_alloc == NULL || zSwildcard == NULL) - return NULL; - - zret = zSwildcard; - - while (*zSwildcard != '\0' && ! isspace (BUCHAR (*zSwildcard))) - ++zSwildcard; - - if (*zSwildcard != '\0') - { - *zSwildcard = '\0'; - ++zSwildcard; - while (*zSwildcard != '\0' && isspace (BUCHAR (*zSwildcard))) - ++zSwildcard; - } - - if (*zSwildcard == '\0') - zSwildcard = NULL; - - return zbufcpy (zret); - -#endif /* ! HAVE_GLOB */ -} - -/* Finish up getting wildcard specs. */ - -boolean -fsysdep_wildcard_end () -{ -#if HAVE_GLOB - globfree (&sSglob); - return TRUE; -#else /* ! HAVE_GLOB */ - xfree ((pointer) zSwildcard_alloc); - zSwildcard_alloc = NULL; - zSwildcard = NULL; - return TRUE; -#endif /* ! HAVE_GLOB */ -} |