[PATCH 3/3] Drop popt usage and remove unused popt sources

Dan Nicholson dbn.lists at gmail.com
Thu Mar 22 10:36:52 PDT 2012


With the conversion to GOption and g_shell_parse_argv, pkg-config has no
remaining usage of popt. Stop linking to libpopt and removed the bundled
sources.
---
 Makefile.am       |   17 +--
 configure.ac      |   17 --
 popt/COPYING      |   22 --
 popt/Makefile.am  |   12 -
 popt/findme.c     |   90 --------
 popt/findme.h     |   31 ---
 popt/popt.c       |  588 -----------------------------------------------------
 popt/popt.h       |  131 ------------
 popt/poptconfig.c |  188 -----------------
 popt/popthelp.c   |  306 ----------------------------
 popt/poptint.h    |   85 --------
 popt/poptparse.c  |  126 ------------
 12 files changed, 3 insertions(+), 1610 deletions(-)
 delete mode 100644 popt/COPYING
 delete mode 100644 popt/Makefile.am
 delete mode 100644 popt/findme.c
 delete mode 100644 popt/findme.h
 delete mode 100644 popt/popt.c
 delete mode 100644 popt/popt.h
 delete mode 100644 popt/poptconfig.c
 delete mode 100644 popt/popthelp.c
 delete mode 100644 popt/poptint.h
 delete mode 100644 popt/poptparse.c

diff --git a/Makefile.am b/Makefile.am
index 49c047b..10350b8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,14 +1,6 @@
 pkg_config_LDADD=@GLIB_LIBS@
 
-if USE_INSTALLED_POPT
-pkg_config_LDADD += $(POPT_LIBS)
-else
-pkg_config_LDADD += popt/libpopt.la
-popt_includes = -I$(top_srcdir)/popt
-POPT_SUBDIR = popt
-endif
-
-SUBDIRS = $(GLIB_SUBDIR) $(POPT_SUBDIR) . check
+SUBDIRS = $(GLIB_SUBDIR) . check
 
 m4dir = $(datadir)/aclocal
 m4_DATA = pkg.m4
@@ -26,15 +18,13 @@ INCLUDES= \
 	-DPKG_CONFIG_PC_PATH="\"$(subst /,\/,$(pc_path))\"" \
 	-DPKG_CONFIG_SYSTEM_INCLUDE_PATH="\"$(subst /,\/,$(system_include_path))\"" \
 	-DPKG_CONFIG_SYSTEM_LIBRARY_PATH="\"$(subst /,\/,$(system_library_path))\"" \
-	@GLIB_CFLAGS@ \
-	$(popt_includes)
+	@GLIB_CFLAGS@
 else
 INCLUDES= \
 	-DPKG_CONFIG_PC_PATH="\"$(pc_path)\"" \
 	-DPKG_CONFIG_SYSTEM_INCLUDE_PATH="\"$(system_include_path)\"" \
 	-DPKG_CONFIG_SYSTEM_LIBRARY_PATH="\"$(system_library_path)\"" \
-	@GLIB_CFLAGS@ \
-	$(popt_includes)
+	@GLIB_CFLAGS@
 endif
 
 pkg_config_SOURCES= \
@@ -43,4 +33,3 @@ pkg_config_SOURCES= \
 	parse.h \
 	parse.c \
 	main.c
-DISTCHECK_CONFIGURE_FLAGS = --with-installed-popt
\ No newline at end of file
diff --git a/configure.ac b/configure.ac
index b0faf63..201ae4b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -129,28 +129,11 @@ fi
 AC_SUBST(GLIB_LIBS)
 AC_SUBST(GLIB_CFLAGS)
 
-AC_ARG_WITH([installed-popt],
-  [AS_HELP_STRING([--with-installed-popt], [use installed popt library])],
-  [with_installed_popt="$withval"],
-  [with_installed_popt=no])
-if test "x$with_installed_popt" = xyes; then
-  _save_libs="$LIBS"
-  AC_CHECK_LIB([popt], [poptGetContext], [:],
-    [AC_MSG_ERROR([could not link to installed popt library])])
-  LIBS="$_save_libs"
-  POPT_LIBS=-lpopt
-else
-  POPT_LIBS=""
-fi
-AC_SUBST([POPT_LIBS])
-AM_CONDITIONAL([USE_INSTALLED_POPT], [test "x$with_installed_popt" = xyes])
-
 AC_FUNC_ALLOCA
 
 AC_CHECK_FUNCS(setresuid setreuid,break)
 AC_CHECK_HEADERS([dirent.h unistd.h sys/wait.h malloc.h])
 
 AC_OUTPUT([Makefile
-	   popt/Makefile
 	   check/Makefile
 	   check/config.sh])
diff --git a/popt/COPYING b/popt/COPYING
deleted file mode 100644
index b4c7ca8..0000000
--- a/popt/COPYING
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 1998  Red Hat Software
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
diff --git a/popt/Makefile.am b/popt/Makefile.am
deleted file mode 100644
index b42c5e5..0000000
--- a/popt/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-noinst_LTLIBRARIES = libpopt.la
-libpopt_la_SOURCES = \
-	popt.c \
-	popt.h \
-	poptconfig.c \
-	popthelp.c \
-	poptint.h \
-	poptparse.c \
-	findme.c \
-	findme.h
-
-EXTRA_DIST = COPYING
diff --git a/popt/findme.c b/popt/findme.c
deleted file mode 100644
index b12e96d..0000000
--- a/popt/findme.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* 
- * Copyright (C) 1998 Red Hat Inc.
- * 
- * 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.
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#else
-# ifdef _AIX
-#  pragma alloca
-# endif
-#endif
-
-#ifdef HAVE_MALLOC_H
-# include <malloc.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef __NeXT
-/* access macros are not declared in non posix mode in unistd.h -
- don't try to use posix on NeXTstep 3.3 ! */ 
-#include <libc.h>
-#endif
-
-#include "findme.h"
-
-#if !defined(X_OK)
-#define X_OK 1
-#endif
-
-char * findProgramPath(char * argv0) {
-    char * path = getenv("PATH");
-    char * pathbuf;
-    char * start, * chptr;
-    char * buf;
-
-    /* If there is a / in the argv[0], it has to be an absolute
-       path */
-    if (strchr(argv0, '/'))
-	return strdup(argv0);
-
-    if (!path) return NULL;
-
-    start = pathbuf = alloca(strlen(path) + 1);
-    buf = malloc(strlen(path) + strlen(argv0) + 2);
-    strcpy(pathbuf, path);
-
-    chptr = NULL;
-    do {
-	if ((chptr = strchr(start, ':')))
-	    *chptr = '\0';
-	sprintf(buf, "%s/%s", start, argv0);
-
-	if (!access(buf, X_OK))
-	    return buf;
-
-	if (chptr) 
-	    start = chptr + 1;
-	else
-	    start = NULL;
-    } while (start && *start);
-
-    free(buf);
-
-    return NULL;
-}
diff --git a/popt/findme.h b/popt/findme.h
deleted file mode 100644
index 006c21c..0000000
--- a/popt/findme.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-Copyright (c) 1998  Red Hat Software
- 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
- 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-*/
-
-#ifndef H_FINDME
-#define H_FINDME
-
-char * findProgramPath(char * argv0);
-
-#endif
diff --git a/popt/popt.c b/popt/popt.c
deleted file mode 100644
index 7d0e3bb..0000000
--- a/popt/popt.c
+++ /dev/null
@@ -1,588 +0,0 @@
-/* 
- * Copyright (C) 1998 Red Hat Inc.
- * 
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#else
-# ifdef _AIX
-#  pragma alloca
-# endif
-#endif
-
-#ifdef HAVE_MALLOC_H
-# include <malloc.h>
-#endif
-
-#include <errno.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include "findme.h"
-#include "popt.h"
-#include "poptint.h"
-
-void poptSetExecPath(poptContext con, const char * path, int allowAbsolute) {
-    if (con->execPath) free(con->execPath);
-    con->execPath = strdup(path);
-    con->execAbsolute = allowAbsolute;
-}
-
-static void invokeCallbacks(poptContext con, const struct poptOption * table,
-			    int post) {
-    const struct poptOption * opt = table;
-    poptCallbackType cb;
-    
-    while (opt->longName || opt->shortName || opt->arg) {
-	if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
-	    invokeCallbacks(con, opt->arg, post);
-	} else if (((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_CALLBACK) &&
-		   ((!post && (opt->argInfo & POPT_CBFLAG_PRE)) ||
-		    ( post && (opt->argInfo & POPT_CBFLAG_POST)))) {
-	    cb = opt->arg;
-	    cb(con, post ? POPT_CALLBACK_REASON_POST : POPT_CALLBACK_REASON_PRE,
-	       NULL, NULL, opt->descrip);
-	}
-	opt++;
-    }
-}
-
-poptContext poptGetContext(char * name, int argc, char ** argv, 
-			   const struct poptOption * options, int flags) {
-    poptContext con = malloc(sizeof(*con));
-
-    memset(con, 0, sizeof(*con));
-
-    con->os = con->optionStack;
-    con->os->argc = argc;
-    con->os->argv = argv;
-
-    if (!(flags & POPT_CONTEXT_KEEP_FIRST))
-	con->os->next = 1;			/* skip argv[0] */
-
-    con->leftovers = malloc(sizeof(char *) * (argc + 1));
-    con->options = options;
-    con->finalArgv = malloc(sizeof(*con->finalArgv) * (argc * 2));
-    con->finalArgvAlloced = argc * 2;
-    con->flags = flags;
-    con->execAbsolute = 1;
-
-    if (getenv("POSIXLY_CORRECT") || getenv("POSIX_ME_HARDER"))
-	con->flags |= POPT_CONTEXT_POSIXMEHARDER;
-    
-    if (name)
-	con->appName = strcpy(malloc(strlen(name) + 1), name);
-
-    invokeCallbacks(con, con->options, 0);
-
-    return con;
-}
-
-void poptResetContext(poptContext con) {
-    con->os = con->optionStack;
-    con->os->currAlias = NULL;
-    con->os->nextCharArg = NULL;
-    con->os->nextArg = NULL;
-    con->os->next = 1;			/* skip argv[0] */
-
-    con->numLeftovers = 0;
-    con->nextLeftover = 0;
-    con->restLeftover = 0;
-    con->doExec = NULL;
-    con->finalArgvCount = 0;
-}
-
-/* Only one of longName, shortName may be set at a time */
-static int handleExec(poptContext con, char * longName, char shortName) {
-    int i;
-
-    i = con->numExecs - 1;
-    if (longName) {
-	while (i >= 0 && (!con->execs[i].longName ||
-	    strcmp(con->execs[i].longName, longName))) i--;
-    } else {
-	while (i >= 0 &&
-	    con->execs[i].shortName != shortName) i--;
-    }
-
-    if (i < 0) return 0;
-
-    if (con->flags & POPT_CONTEXT_NO_EXEC)
-	return 1;
-
-    if (!con->doExec) {
-	con->doExec = con->execs + i;
-	return 1;
-    }
-
-    /* We already have an exec to do; remember this option for next
-       time 'round */
-    if ((con->finalArgvCount + 1) >= (con->finalArgvAlloced)) {
-	con->finalArgvAlloced += 10;
-	con->finalArgv = realloc(con->finalArgv,
-			sizeof(*con->finalArgv) * con->finalArgvAlloced);
-    }
-
-    i = con->finalArgvCount++;
-    con->finalArgv[i] = malloc((longName ? strlen(longName) : 0) + 3);
-    if (longName)
-	sprintf(con->finalArgv[i], "--%s", longName);
-    else 
-	sprintf(con->finalArgv[i], "-%c", shortName);
-
-    return 1;
-}
-
-/* Only one of longName, shortName may be set at a time */
-static int handleAlias(poptContext con, char * longName, char shortName,
-		       char * nextCharArg) {
-    int i;
-
-    if (con->os->currAlias && con->os->currAlias->longName && longName &&
-	!strcmp(con->os->currAlias->longName, longName)) 
-	return 0;
-    if (con->os->currAlias && shortName == con->os->currAlias->shortName)
-	return 0;
-
-    i = con->numAliases - 1;
-    if (longName) {
-	while (i >= 0 && (!con->aliases[i].longName ||
-	    strcmp(con->aliases[i].longName, longName))) i--;
-    } else {
-	while (i >= 0 &&
-	    con->aliases[i].shortName != shortName) i--;
-    }
-
-    if (i < 0) return 0;
-
-    if ((con->os - con->optionStack + 1) 
-	    == POPT_OPTION_DEPTH)
-	return POPT_ERROR_OPTSTOODEEP;
-
-    if (nextCharArg && *nextCharArg)
-	con->os->nextCharArg = nextCharArg;
-
-    con->os++;
-    con->os->next = 0;
-    con->os->stuffed = 0;
-    con->os->nextArg = con->os->nextCharArg = NULL;
-    con->os->currAlias = con->aliases + i;
-    con->os->argc = con->os->currAlias->argc;
-    con->os->argv = con->os->currAlias->argv;
-
-    return 1;
-}
-
-#ifndef _WIN32
-
-static void execCommand(poptContext con) {
-    char ** argv;
-    int pos = 0;
-    char * script = con->doExec->script;
-
-    argv = malloc(sizeof(*argv) * 
-			(6 + con->numLeftovers + con->finalArgvCount));
-
-    if (!con->execAbsolute && strchr(script, '/')) return;
-
-    if (!strchr(script, '/') && con->execPath) {
-	argv[pos] = alloca(strlen(con->execPath) + strlen(script) + 2);
-	sprintf(argv[pos], "%s/%s", con->execPath, script);
-    } else {
-	argv[pos] = script;
-    }
-    pos++;
-
-    argv[pos] = findProgramPath(con->os->argv[0]);
-    if (argv[pos]) pos++;
-    argv[pos++] = ";";
-
-    memcpy(argv + pos, con->finalArgv, sizeof(*argv) * con->finalArgvCount);
-    pos += con->finalArgvCount;
-
-    if (con->numLeftovers) {
-	argv[pos++] = "--";
-	memcpy(argv + pos, con->leftovers, sizeof(*argv) * con->numLeftovers);
-	pos += con->numLeftovers;
-    }
-
-    argv[pos++] = NULL;
-
-    execvp(argv[0], argv);
-}
-
-#endif
-
-static const struct poptOption * findOption(const struct poptOption * table,
-					    const char * longName,
-					    const char shortName,
-					    poptCallbackType * callback,
-					    void ** callbackData,
-					    int singleDash) {
-    const struct poptOption * opt = table;
-    const struct poptOption * opt2;
-    const struct poptOption * cb = NULL;
-
-    while (opt->longName || opt->shortName || opt->arg) {
-	if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
-	    opt2 = findOption(opt->arg, longName, shortName, callback, 
-			      callbackData, singleDash);
-	    if (opt2) {
-		if (*callback && !*callbackData)
-		    *callbackData = opt->descrip;
-		return opt2;
-	    }
-	} else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_CALLBACK) {
-	    cb = opt;
-	} else if (longName && opt->longName && 
-		   (!singleDash || (opt->argInfo & POPT_ARGFLAG_ONEDASH)) &&
-		   !strcmp(longName, opt->longName)) {
-	    break;
-	} else if (shortName && shortName == opt->shortName) {
-	    break;
-	}
-	opt++;
-    }
-
-    if (!opt->longName && !opt->shortName) return NULL;
-    *callbackData = NULL;
-    *callback = NULL;
-    if (cb) {
-	*callback = cb->arg;
-	if (!(cb->argInfo & POPT_CBFLAG_INC_DATA))
-	    *callbackData = cb->descrip;
-    }
-
-    return opt;
-}
-
-/* returns 'val' element, -1 on last item, POPT_ERROR_* on error */
-int poptGetNextOpt(poptContext con) {
-    char * optString, * chptr, * localOptString;
-    char * longArg = NULL;
-    char * origOptString;
-    long aLong;
-    char * end;
-    const struct poptOption * opt = NULL;
-    int done = 0;
-    int i;
-    poptCallbackType cb;
-    void * cbData;
-    int singleDash;
-
-    while (!done) {
-	while (!con->os->nextCharArg && con->os->next == con->os->argc 
-		&& con->os > con->optionStack)
-	    con->os--;
-	if (!con->os->nextCharArg && con->os->next == con->os->argc) {
-	    invokeCallbacks(con, con->options, 1);
-#ifndef _WIN32
-	    if (con->doExec) execCommand(con);
-#endif
-	    return -1;
-	}
-
-	if (!con->os->nextCharArg) {
-		
-	    origOptString = con->os->argv[con->os->next++];
-
-	    if (con->restLeftover || *origOptString != '-') {
-		con->leftovers[con->numLeftovers++] = origOptString;
-		if (con->flags & POPT_CONTEXT_POSIXMEHARDER)
-		    con->restLeftover = 1;
-		continue;
-	    }
-
-	    /* Make a copy we can hack at */
-	    localOptString = optString = 
-			strcpy(alloca(strlen(origOptString) + 1), 
-			origOptString);
-
-	    if (!optString[0])
-		return POPT_ERROR_BADOPT;
-
-	    if (optString[1] == '-' && !optString[2]) {
-		con->restLeftover = 1;
-		continue;
-	    } else {
-		optString++;
-		if (*optString == '-')
-		    singleDash = 0, optString++;
-		else
-		    singleDash = 1;
-
-		if (handleAlias(con, optString, '\0', NULL))
-		    continue;
-		if (handleExec(con, optString, '\0'))
-		    continue;
-
-		chptr = optString;
-		while (*chptr && *chptr != '=') chptr++;
-		if (*chptr == '=') {
-		    longArg = origOptString + (chptr - localOptString) + 1;
-		    *chptr = '\0';
-		}
-
-		opt = findOption(con->options, optString, '\0', &cb, &cbData,
-				 singleDash);
-		if (!opt && !singleDash) return POPT_ERROR_BADOPT;
-	    }
-
-	    if (!opt)
-		con->os->nextCharArg = origOptString + 1;
-	}
-
-	if (con->os->nextCharArg) {
-	    origOptString = con->os->nextCharArg;
-
-	    con->os->nextCharArg = NULL;
-
-	    if (handleAlias(con, NULL, *origOptString,
-			    origOptString + 1)) {
-		origOptString++;
-		continue;
-	    }
-	    if (handleExec(con, NULL, *origOptString))
-		continue;
-
-	    opt = findOption(con->options, NULL, *origOptString, &cb, 
-			     &cbData, 0);
-	    if (!opt) return POPT_ERROR_BADOPT;
-
-	    origOptString++;
-	    if (*origOptString)
-		con->os->nextCharArg = origOptString;
-	}
-
-	if (opt->arg && (opt->argInfo & POPT_ARG_MASK) == POPT_ARG_NONE) 
-	    *((int *)opt->arg) = 1;
-	else if ((opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE) {
-	    if (longArg) {
-		con->os->nextArg = longArg;
-	    } else if (con->os->nextCharArg) {
-		con->os->nextArg = con->os->nextCharArg;
-		con->os->nextCharArg = NULL;
-	    } else { 
-		while (con->os->next == con->os->argc && 
-		       con->os > con->optionStack)
-		    con->os--;
-		if (con->os->next == con->os->argc)
-		    return POPT_ERROR_NOARG;
-
-		con->os->nextArg = con->os->argv[con->os->next++];
-	    }
-
-	    if (opt->arg) {
-		switch (opt->argInfo & POPT_ARG_MASK) {
-		  case POPT_ARG_STRING:
-		    *((char **) opt->arg) = con->os->nextArg;
-		    break;
-
-		  case POPT_ARG_INT:
-		  case POPT_ARG_LONG:
-		    aLong = strtol(con->os->nextArg, &end, 0);
-		    if (*end) 
-			return POPT_ERROR_BADNUMBER;
-
-		    if (aLong == LONG_MIN || aLong == LONG_MAX)
-			return POPT_ERROR_OVERFLOW;
-		    if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_LONG) {
-			*((long *) opt->arg) = aLong;
-		    } else {
-			if (aLong > INT_MAX || aLong < INT_MIN)
-			    return POPT_ERROR_OVERFLOW;
-			*((int *) opt->arg) =aLong;
-		    }
-		    break;
-
-		  default:
-		    fprintf(stdout, POPT_("option type (%d) not implemented in popt\n"),
-		      opt->argInfo & POPT_ARG_MASK);
-		    exit(1);
-		}
-	    }
-	}
-
-	if (cb)
-	    cb(con, POPT_CALLBACK_REASON_OPTION, opt, con->os->nextArg, cbData);
-	else if (opt->val) 
-	    done = 1;
-
-	if ((con->finalArgvCount + 2) >= (con->finalArgvAlloced)) {
-	    con->finalArgvAlloced += 10;
-	    con->finalArgv = realloc(con->finalArgv,
-			    sizeof(*con->finalArgv) * con->finalArgvAlloced);
-	}
-
-	i = con->finalArgvCount++;
-	con->finalArgv[i] = 
-		malloc((opt->longName ? strlen(opt->longName) : 0) + 3);
-	if (opt->longName)
-	    sprintf(con->finalArgv[i], "--%s", opt->longName);
-	else 
-	    sprintf(con->finalArgv[i], "-%c", opt->shortName);
-
-	if (opt->arg && (opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE) 
-	    con->finalArgv[con->finalArgvCount++] = strdup(con->os->nextArg);
-    }
-
-    return opt->val;
-}
-
-char * poptGetOptArg(poptContext con) {
-    char * ret = con->os->nextArg;
-    con->os->nextArg = NULL;
-    return ret;
-}
-
-char * poptGetArg(poptContext con) {
-    if (con->numLeftovers == con->nextLeftover) return NULL;
-    return (con->leftovers[con->nextLeftover++]);
-}
-
-char * poptPeekArg(poptContext con) {
-    if (con->numLeftovers == con->nextLeftover) return NULL;
-    return (con->leftovers[con->nextLeftover]);
-}
-
-char ** poptGetArgs(poptContext con) {
-    if (con->numLeftovers == con->nextLeftover) return NULL;
-
-    /* some apps like [like RPM ;-) ] need this NULL terminated */
-    con->leftovers[con->numLeftovers] = NULL;
-
-    return (con->leftovers + con->nextLeftover);
-}
-
-void poptFreeContext(poptContext con) {
-    int i;
-
-    for (i = 0; i < con->numAliases; i++) {
-	if (con->aliases[i].longName) free(con->aliases[i].longName);
-	free(con->aliases[i].argv);
-    }
-
-    for (i = 0; i < con->numExecs; i++) {
-	if (con->execs[i].longName) free(con->execs[i].longName);
-	free(con->execs[i].script);
-    }
-
-    for (i = 0; i < con->finalArgvCount; i++)
-	free(con->finalArgv[i]);
-
-    free(con->leftovers);
-    free(con->finalArgv);
-    if (con->appName) free(con->appName);
-    if (con->aliases) free(con->aliases);
-    if (con->otherHelp) free(con->otherHelp);
-    free(con);
-}
-
-int poptAddAlias(poptContext con, struct poptAlias newAlias, int flags) {
-    int aliasNum = con->numAliases++;
-    struct poptAlias * alias;
-
-    /* SunOS won't realloc(NULL, ...) */
-    if (!con->aliases)
-	con->aliases = malloc(sizeof(newAlias) * con->numAliases);
-    else
-	con->aliases = realloc(con->aliases, 
-			       sizeof(newAlias) * con->numAliases);
-    alias = con->aliases + aliasNum;
-    
-    *alias = newAlias;
-    if (alias->longName)
-	alias->longName = strcpy(malloc(strlen(alias->longName) + 1), 
-				    alias->longName);
-    else
-	alias->longName = NULL;
-
-    return 0;
-}
-
-char * poptBadOption(poptContext con, int flags) {
-    struct optionStackEntry * os;
-
-    if (flags & POPT_BADOPTION_NOALIAS)
-	os = con->optionStack;
-    else
-	os = con->os;
-
-    return os->argv[os->next - 1];
-}
-
-#define POPT_ERROR_NOARG	-10
-#define POPT_ERROR_BADOPT	-11
-#define POPT_ERROR_OPTSTOODEEP	-13
-#define POPT_ERROR_BADQUOTE	-15	/* only from poptParseArgString() */
-#define POPT_ERROR_ERRNO	-16	/* only from poptParseArgString() */
-
-const char * poptStrerror(const int error) {
-    switch (error) {
-      case POPT_ERROR_NOARG:
-	return POPT_("missing argument");
-      case POPT_ERROR_BADOPT:
-	return POPT_("unknown option");
-      case POPT_ERROR_OPTSTOODEEP:
-	return POPT_("aliases nested too deeply");
-      case POPT_ERROR_BADQUOTE:
-	return POPT_("error in paramter quoting");
-      case POPT_ERROR_BADNUMBER:
-	return POPT_("invalid numeric value");
-      case POPT_ERROR_OVERFLOW:
-	return POPT_("number too large or too small");
-      case POPT_ERROR_ERRNO:
-	return strerror(errno);
-      default:
-	return POPT_("unknown error");
-    }
-}
-
-int poptStuffArgs(poptContext con, char ** argv) {
-    int i;
-
-    if ((con->os - con->optionStack) == POPT_OPTION_DEPTH)
-	return POPT_ERROR_OPTSTOODEEP;
-
-    for (i = 0; argv[i]; i++);
-
-    con->os++;
-    con->os->next = 0;
-    con->os->nextArg = con->os->nextCharArg = NULL;
-    con->os->currAlias = NULL;
-    con->os->argc = i;
-    con->os->argv = argv;
-    con->os->stuffed = 1;
-
-    return 0;
-}
-
-const char * poptGetInvocationName(poptContext con) {
-    return con->os->argv[0];
-}
diff --git a/popt/popt.h b/popt/popt.h
deleted file mode 100644
index c217e1b..0000000
--- a/popt/popt.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-Copyright (c) 1998  Red Hat Software
- 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
- 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-*/
-
-#ifndef H_POPT
-#define H_POPT
-
-#include <stdio.h>			/* for FILE * */
-
-#define POPT_OPTION_DEPTH	10
-
-#define POPT_ARG_NONE		0
-#define POPT_ARG_STRING		1
-#define POPT_ARG_INT		2
-#define POPT_ARG_LONG		3
-#define POPT_ARG_INCLUDE_TABLE	4	/* arg points to table */
-#define POPT_ARG_CALLBACK	5	/* table-wide callback... must be
-					   set first in table; arg points 
-					   to callback, descrip points to 
-					   callback data to pass */
-#define POPT_ARG_MASK		0x0000FFFF
-#define POPT_ARGFLAG_ONEDASH	0x80000000  /* allow -longoption */
-#define POPT_ARGFLAG_DOC_HIDDEN 0x40000000  /* don't show in help/usage */
-#define POPT_CBFLAG_PRE		0x80000000  /* call the callback before parse */
-#define POPT_CBFLAG_POST	0x40000000  /* call the callback after parse */
-#define POPT_CBFLAG_INC_DATA	0x20000000  /* use data from the include line,
-					       not the subtable */
-
-#define POPT_ERROR_NOARG	-10
-#define POPT_ERROR_BADOPT	-11
-#define POPT_ERROR_OPTSTOODEEP	-13
-#define POPT_ERROR_BADQUOTE	-15	/* only from poptParseArgString() */
-#define POPT_ERROR_ERRNO	-16	/* only from poptParseArgString() */
-#define POPT_ERROR_BADNUMBER	-17
-#define POPT_ERROR_OVERFLOW	-18
-
-/* poptBadOption() flags */
-#define POPT_BADOPTION_NOALIAS  (1 << 0)  /* don't go into an alias */
-
-/* poptGetContext() flags */
-#define POPT_CONTEXT_NO_EXEC	(1 << 0)  /* ignore exec expansions */
-#define POPT_CONTEXT_KEEP_FIRST	(1 << 1)  /* pay attention to argv[0] */
-#define POPT_CONTEXT_POSIXMEHARDER (1 << 2) /* options can't follow args */
-
-struct poptOption {
-    const char * longName;	/* may be NULL */
-    char shortName;		/* may be '\0' */
-    int argInfo;
-    void * arg;			/* depends on argInfo */
-    int val;			/* 0 means don't return, just update flag */
-    char * descrip;		/* description for autohelp -- may be NULL */
-    char * argDescrip;		/* argument description for autohelp */
-};
-
-struct poptAlias {
-    char * longName;		/* may be NULL */
-    char shortName;		/* may be '\0' */
-    int argc;
-    char ** argv;		/* must be free()able */
-};
-
-extern struct poptOption poptHelpOptions[];
-#define POPT_AUTOHELP { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptHelpOptions, \
-			0, "Help options", NULL },
-
-typedef struct poptContext_s * poptContext;
-#ifndef __cplusplus
-typedef struct poptOption * poptOption;
-#endif
-
-enum poptCallbackReason { POPT_CALLBACK_REASON_PRE, 
-			  POPT_CALLBACK_REASON_POST,
-			  POPT_CALLBACK_REASON_OPTION };
-typedef void (*poptCallbackType)(poptContext con, 
-				 enum poptCallbackReason reason,
-			         const struct poptOption * opt,
-				 const char * arg, void * data);
-
-poptContext poptGetContext(char * name, int argc, char ** argv, 
-			   const struct poptOption * options, int flags);
-void poptResetContext(poptContext con);
-
-/* returns 'val' element, -1 on last item, POPT_ERROR_* on error */
-int poptGetNextOpt(poptContext con);
-/* returns NULL if no argument is available */
-char * poptGetOptArg(poptContext con);
-/* returns NULL if no more options are available */
-char * poptGetArg(poptContext con);
-char * poptPeekArg(poptContext con);
-char ** poptGetArgs(poptContext con);
-/* returns the option which caused the most recent error */
-char * poptBadOption(poptContext con, int flags);
-void poptFreeContext(poptContext con);
-int poptStuffArgs(poptContext con, char ** argv);
-int poptAddAlias(poptContext con, struct poptAlias alias, int flags);
-int poptReadConfigFile(poptContext con, char * fn);
-/* like above, but reads /etc/popt and $HOME/.popt along with environment 
-   vars */
-int poptReadDefaultConfig(poptContext con, int useEnv);
-/* argv should be freed -- this allows ', ", and \ quoting, but ' is treated
-   the same as " and both may include \ quotes */
-int poptParseArgvString(char * s, int * argcPtr, char *** argvPtr);
-const char * poptStrerror(const int error);
-void poptSetExecPath(poptContext con, const char * path, int allowAbsolute);
-void poptPrintHelp(poptContext con, FILE * f, int flags);
-void poptPrintUsage(poptContext con, FILE * f, int flags);
-void poptSetOtherOptionHelp(poptContext con, const char * text);
-const char * poptGetInvocationName(poptContext con);
-
-#endif
diff --git a/popt/poptconfig.c b/popt/poptconfig.c
deleted file mode 100644
index 1492dd6..0000000
--- a/popt/poptconfig.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-Copyright (c) 1998  Red Hat Software
- 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
- 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#else
-# ifdef _AIX
-#  pragma alloca
-# endif
-#endif
-
-#ifdef HAVE_MALLOC_H
-# include <malloc.h>
-#endif
-
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include "popt.h"
-#include "poptint.h"
-
-static void configLine(poptContext con, char * line) {
-    int nameLength = strlen(con->appName);
-    char * opt;
-    struct poptAlias alias;
-    char * entryType;
-    char * longName = NULL;
-    char shortName = '\0';
-    
-    if (strncmp(line, con->appName, nameLength)) return;
-    line += nameLength;
-    if (!*line || !isspace(*line)) return;
-    while (*line && isspace(*line)) line++;
-    entryType = line;
-
-    while (!*line || !isspace(*line)) line++;
-    *line++ = '\0';
-    while (*line && isspace(*line)) line++;
-    if (!*line) return;
-    opt = line;
-
-    while (!*line || !isspace(*line)) line++;
-    *line++ = '\0';
-    while (*line && isspace(*line)) line++;
-    if (!*line) return;
-
-    if (opt[0] == '-' && opt[1] == '-')
-	longName = opt + 2;
-    else if (opt[0] == '-' && !opt[2])
-	shortName = opt[1];
-
-    if (!strcmp(entryType, "alias")) {
-	if (poptParseArgvString(line, &alias.argc, &alias.argv)) return;
-	alias.longName = longName, alias.shortName = shortName;
-	poptAddAlias(con, alias, 0);
-    }
-#ifndef _WIN32 /* exec stuff too complex to be worthwhile to port */
-      else if (!strcmp(entryType, "exec")) {
-	con->execs = realloc(con->execs, 
-				sizeof(*con->execs) * (con->numExecs + 1));
-	if (longName)
-	    con->execs[con->numExecs].longName = strdup(longName);
-	else
-	    con->execs[con->numExecs].longName = NULL;
-
-	con->execs[con->numExecs].shortName = shortName;
-	con->execs[con->numExecs].script = strdup(line);
-	
-	con->numExecs++;
-    }
-#endif /* !_WIN32 */
-}
-
-int poptReadConfigFile(poptContext con, char * fn) {
-    char * file, * chptr, * end;
-    char * buf, * dst;
-    int fd, rc;
-    int fileLength;
-
-    fd = open(fn, O_RDONLY);
-    if (fd < 0) {
-	if (errno == ENOENT)
-	    return 0;
-	else 
-	    return POPT_ERROR_ERRNO;
-    }
-
-    fileLength = lseek(fd, 0, SEEK_END);
-    lseek(fd, 0, 0);
-
-    file = alloca(fileLength + 1);
-    if ((fd = read(fd, file, fileLength)) != fileLength) {
-	rc = errno;
-	close(fd);
-	errno = rc;
-	return POPT_ERROR_ERRNO;
-    }
-    close(fd);
-
-    dst = buf = alloca(fileLength + 1);
-
-    chptr = file;
-    end = (file + fileLength);
-    while (chptr < end) {
-	switch (*chptr) {
-	  case '\n':
-	    *dst = '\0';
-	    dst = buf;
-	    while (*dst && isspace(*dst)) dst++;
-	    if (*dst && *dst != '#') {
-		configLine(con, dst);
-	    }
-	    chptr++;
-	    break;
-	  case '\\':
-	    *dst++ = *chptr++;
-	    if (chptr < end) {
-		if (*chptr == '\n') 
-		    dst--, chptr++;	
-		    /* \ at the end of a line does not insert a \n */
-		else
-		    *dst++ = *chptr++;
-	    }
-	    break;
-	  default:
-	    *dst++ = *chptr++;
-	}
-    }
-
-    return 0;
-}
-
-#ifndef _WIN32
-
-int poptReadDefaultConfig(poptContext con, int useEnv) {
-    char * fn, * home;
-    int rc;
-
-    if (!con->appName) return 0;
-
-    rc = poptReadConfigFile(con, "/etc/popt");
-    if (rc) return rc;
-    if (getuid() != geteuid()) return 0;
-
-    if ((home = getenv("HOME"))) {
-	fn = alloca(strlen(home) + 20);
-	strcpy(fn, home);
-	strcat(fn, "/.popt");
-	rc = poptReadConfigFile(con, fn);
-	if (rc) return rc;
-    }
-
-    return 0;
-}
-
-#endif /* !_WIN32 */
diff --git a/popt/popthelp.c b/popt/popthelp.c
deleted file mode 100644
index 1490c78..0000000
--- a/popt/popthelp.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
-Copyright (c) 1998  Red Hat Software
- 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
- 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#else
-# ifdef _AIX
-#  pragma alloca
-# endif
-#endif
-
-#ifdef HAVE_MALLOC_H
-# include <malloc.h>
-#endif
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "popt.h"
-#include "poptint.h"
-
-#ifdef _WIN32
-#define SLASH '\\'
-#else
-#define SLASH '/'
-#endif
-
-static void displayArgs(poptContext con, enum poptCallbackReason foo, 
-			struct poptOption * key, 
-			const char * arg, void * data) {
-    if (key->shortName== '?')
-	poptPrintHelp(con, stdout, 0);
-    else
-	poptPrintUsage(con, stdout, 0);
-    exit(0);
-}
-
-struct poptOption poptHelpOptions[] = {
-    { NULL, '\0', POPT_ARG_CALLBACK, &displayArgs, '\0', NULL },
-    { "help", '?', 0, NULL, '?', N_("Show this help message") },
-    { "usage", '\0', 0, NULL, 'u', N_("Display brief usage message") },
-    { NULL, '\0', 0, NULL, 0 }
-} ;
-
-static const char * getArgDescrip(const struct poptOption * opt) {
-    if (!(opt->argInfo & POPT_ARG_MASK)) return NULL;
-
-    if (opt == (poptHelpOptions + 1) || opt == (poptHelpOptions + 2))
-	if (opt->argDescrip) return POPT_(opt->argDescrip);
-
-    if (opt->argDescrip) return _(opt->argDescrip);
-    return POPT_("ARG");
-}
-
-static void singleOptionHelp(FILE * f, int maxLeftCol, 
-			     const struct poptOption * opt) {
-    int indentLength = maxLeftCol + 5;
-    int lineLength = 79 - indentLength;
-    const char * help = _(opt->descrip);
-    int helpLength;
-    const char * ch;
-    char * left = alloca(maxLeftCol + 1);
-    const char * argDescrip = getArgDescrip(opt);
-
-    *left = '\0';
-    if (opt->longName && opt->shortName)
-	sprintf(left, "-%c, --%s", opt->shortName, opt->longName);
-    else if (opt->shortName) 
-	sprintf(left, "-%c", opt->shortName);
-    else if (opt->longName)
-	sprintf(left, "--%s", opt->longName);
-    if (!*left) return ;
-    if (argDescrip) {
-	strcat(left, "=");
-	strcat(left, argDescrip);
-    }
-
-    if (help)
-	fprintf(f,"  %-*s   ", maxLeftCol, left);
-    else {
-	fprintf(f,"  %s\n", left); 
-	return;
-    }
-
-    helpLength = strlen(help);
-    while (helpLength > lineLength) {
-	ch = help + lineLength - 1;
-	while (ch > help && !isspace(*ch)) ch--;
-	if (ch == help) break;		/* give up */
-	while (ch > (help + 1) && isspace(*ch)) ch--;
-	ch++;
-
-	fprintf(f, "%.*s\n%*s", (int) (ch - help), help, indentLength, " ");
-
-	help = ch;
-	while (isspace(*help) && *help) help++;
-	helpLength = strlen(help);
-    }
-
-    if (helpLength) fprintf(f, "%s\n", help);
-}
-
-static int maxArgWidth(const struct poptOption * opt) {
-    int max = 0;
-    int this;
-    const char * s;
-    
-    while (opt->longName || opt->shortName || opt->arg) {
-	if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
-	    this = maxArgWidth(opt->arg);
-	    if (this > max) max = this;
-	} else if (!(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) {
-	    this = opt->shortName ? 2 : 0;
-	    if (opt->longName) {
-		if (this) this += 2;
-		this += strlen(opt->longName) + 2;
-	    }
-
-	    s = getArgDescrip(opt);
-	    if (s)
-		this += strlen(s) + 1;
-	    if (this > max) max = this;
-	}
-
-	opt++;
-    }
-    
-    return max;
-}
-
-static void singleTableHelp(FILE * f, const struct poptOption * table, 
-			    int left) {
-    const struct poptOption * opt;
-
-    opt = table;
-    while (opt->longName || opt->shortName || opt->arg) {
-	if ((opt->longName || opt->shortName) && 
-	    !(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN))
-	    singleOptionHelp(f, left, opt);
-	opt++;
-    }
-
-    opt = table;
-    while (opt->longName || opt->shortName || opt->arg) {
-	if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
-	    if (opt->descrip)
-		fprintf(f, "\n%s\n", _(opt->descrip));
-	    singleTableHelp(f, opt->arg, left);
-	}
-	opt++;
-    }
-}
-
-static int showHelpIntro(poptContext con, FILE * f) {
-    int len = 6;
-    char * fn;
-
-    fprintf(f, POPT_("Usage:"));
-    if (!(con->flags & POPT_CONTEXT_KEEP_FIRST)) {
-	fn = con->optionStack->argv[0];
-	if (strchr(fn, SLASH)) fn = strchr(fn, SLASH) + 1;
-	fprintf(f, " %s", fn);
-	len += strlen(fn) + 1;
-    }
-
-    return len;
-}
-
-void poptPrintHelp(poptContext con, FILE * f, int flags) {
-    int leftColWidth;
-
-    showHelpIntro(con, f);
-    if (con->otherHelp)
-	fprintf(f, " %s", con->otherHelp);
-    else
-	fprintf(f, " %s", POPT_("[OPTION...]"));
-
-    fprintf(f, " [LIBRARIES]\n");
-    leftColWidth = maxArgWidth(con->options);
-    singleTableHelp(f, con->options, leftColWidth);
-}
-
-static int singleOptionUsage(FILE * f, int cursor, 
-			      const struct poptOption * opt) {
-    int len = 3;
-    char shortStr[2];
-    const char * item = shortStr;
-    const char * argDescrip = getArgDescrip(opt);
-
-    if (opt->shortName) {
-	if (!(opt->argInfo & POPT_ARG_MASK)) 
-	    return cursor;	/* we did these already */
-	len++;
-	*shortStr = opt->shortName;
-	shortStr[1] = '\0';
-    } else if (opt->longName) {
-	len += 1 + strlen(opt->longName);
-	item = opt->longName;
-    }
-
-    if (len == 3) return cursor;
-
-    if (argDescrip) 
-	len += strlen(argDescrip) + 1;
-
-    if ((cursor + len) > 79) {
-	fprintf(f, "\n       ");
-	cursor = 7;
-    } 
-
-    fprintf(f, " [-%s%s%s%s]", opt->shortName ? "" : "-", item,
-	    argDescrip ? (opt->shortName ? " " : "=") : "",
-	    argDescrip ? argDescrip : "");
-
-    return cursor + len + 1;
-}
-
-int singleTableUsage(FILE * f, int cursor, const struct poptOption * table) {
-    const struct poptOption * opt;
-    
-    opt = table;
-    while (opt->longName || opt->shortName || opt->arg) {
-	if ((opt->longName || opt->shortName) && 
-	    !(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN))
-	    cursor = singleOptionUsage(f, cursor, opt);
-	else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) 
-	    cursor = singleTableUsage(f, cursor, opt->arg);
-	opt++;
-    }
-
-    return cursor;
-}
-
-static int showShortOptions(const struct poptOption * opt, FILE * f, 
-			    char * str) {
-    char s[300];		/* this is larger then the ascii set, so
-				   it should do just fine */
-
-    if (!str) {
-	str = s;
-	memset(str, 0, sizeof(str));
-    }
-
-    while (opt->longName || opt->shortName || opt->arg) {
-	if (opt->shortName && !(opt->argInfo & POPT_ARG_MASK))
-	    str[strlen(str)] = opt->shortName;
-	else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE)
-	    showShortOptions(opt->arg, f, str);
-
-	opt++;
-    } 
-
-    if (s != str || !*s)
-	return 0;
-
-    fprintf(f, " [-%s]", s);
-    return strlen(s) + 4;
-}
-
-void poptPrintUsage(poptContext con, FILE * f, int flags) {
-    int cursor;
-
-    cursor = showHelpIntro(con, f);
-    cursor += showShortOptions(con->options, f, NULL);
-    singleTableUsage(f, cursor, con->options);
-
-    if (con->otherHelp) {
-	cursor += strlen(con->otherHelp) + 1;
-	if (cursor > 79) fprintf(f, "\n       ");
-	fprintf(f, " %s", con->otherHelp);
-    }
-    fprintf(f, "\n        [LIBRARIES]\n");
-}
-
-void poptSetOtherOptionHelp(poptContext con, const char * text) {
-    if (con->otherHelp) free(con->otherHelp);
-    con->otherHelp = strdup(text);
-}
diff --git a/popt/poptint.h b/popt/poptint.h
deleted file mode 100644
index 44931d4..0000000
--- a/popt/poptint.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
-Copyright (c) 1998  Red Hat Software
- 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
- 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-*/
-
-#ifndef H_POPTINT
-#define H_POPTINT
-
-struct optionStackEntry {
-    int argc;
-    char ** argv;
-    int next;
-    char * nextArg;
-    char * nextCharArg;
-    struct poptAlias * currAlias;
-    int stuffed;
-};
-
-struct execEntry {
-    char * longName;
-    char shortName;
-    char * script;
-};
-
-struct poptContext_s {
-    struct optionStackEntry optionStack[POPT_OPTION_DEPTH], * os;
-    char ** leftovers;
-    int numLeftovers;
-    int nextLeftover;
-    const struct poptOption * options;
-    int restLeftover;
-    char * appName;
-    struct poptAlias * aliases;
-    int numAliases;
-    int flags;
-    struct execEntry * execs;
-    int numExecs;
-    char ** finalArgv;
-    int finalArgvCount;
-    int finalArgvAlloced;
-    struct execEntry * doExec;
-    char * execPath;
-    int execAbsolute;
-    char * otherHelp;
-};
-
-#ifdef HAVE_LIBINTL_H
-#include <libintl.h>
-#endif
-
-#ifdef HAVE_GETTEXT
-#define _(foo) gettext(foo)
-#else
-#define _(foo) (foo)
-#endif
-
-#ifdef HAVE_DGETTEXT
-#define POPT_(foo) dgettext("popt", foo)
-#else
-#define POPT_(foo) (foo)
-#endif
-
-#define N_(foo) (foo)
-
-#endif
diff --git a/popt/poptparse.c b/popt/poptparse.c
deleted file mode 100644
index 18087fb..0000000
--- a/popt/poptparse.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
-Copyright (c) 1998  Red Hat Software
- 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
- 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#else
-# ifdef _AIX
-#  pragma alloca
-# endif
-#endif
-
-#ifdef HAVE_MALLOC_H
-# include <malloc.h>
-#endif
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "popt.h"
-
-int poptParseArgvString(char * s, int * argcPtr, char *** argvPtr) {
-    char * buf = strcpy(alloca(strlen(s) + 1), s);
-    char * bufStart = buf;
-    char * src, * dst;
-    char quote = '\0';
-    int argvAlloced = 5;
-    char ** argv = malloc(sizeof(*argv) * argvAlloced);
-    char ** argv2;
-    int argc = 0;
-    int i;
-
-    src = s;
-    dst = buf;
-    argv[argc] = buf;
-
-    memset(buf, '\0', strlen(s) + 1);
-
-    while (*src) {
-	if (quote == *src) {
-	    quote = '\0';
-	} else if (quote) {
-	    if (*src == '\\') {
-		src++;
-		if (!*src) {
-		    free(argv);
-		    return POPT_ERROR_BADQUOTE;
-		}
-		if (*src != quote) *buf++ = '\\';
-	    }
-	    *buf++ = *src;
-	} else if (isspace(*src)) {
-	    if (*argv[argc]) {
-		buf++, argc++;
-		if (argc == argvAlloced) {
-		    argvAlloced += 5;
-		    argv = realloc(argv, sizeof(*argv) * argvAlloced);
-		}
-		argv[argc] = buf;
-	    }
-	} else switch (*src) {
-	  case '"':
-	  case '\'':
-	    quote = *src;
-	    break;
-	  case '\\':
-	    src++;
-	    if (!*src) {
-		free(argv);
-		return POPT_ERROR_BADQUOTE;
-	    }
-	    /* fallthrough */
-	  default:
-	    *buf++ = *src;
-	}
-
-	src++;
-    }
-
-    if (strlen(argv[argc])) {
-	argc++, buf++;
-    }
-
-    dst = malloc(argc * sizeof(*argv) + (buf - bufStart));
-    argv2 = (void *) dst;
-    dst += argc * sizeof(*argv);
-    memcpy(argv2, argv, argc * sizeof(*argv));
-    memcpy(dst, bufStart, buf - bufStart);
-
-    for (i = 0; i < argc; i++) {
-	argv2[i] = dst + (argv[i] - bufStart);
-    }
-
-    free(argv);
-
-    *argvPtr = argv2;
-    *argcPtr = argc;
-
-    return 0;
-}
-- 
1.7.7.6



More information about the pkg-config mailing list