summaryrefslogtreecommitdiffstats
path: root/popt/findme.c
diff options
context:
space:
mode:
Diffstat (limited to 'popt/findme.c')
-rw-r--r--popt/findme.c55
1 files changed, 0 insertions, 55 deletions
diff --git a/popt/findme.c b/popt/findme.c
deleted file mode 100644
index ac4cbae..0000000
--- a/popt/findme.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/** \ingroup popt
- * \file popt/findme.c
- */
-
-/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING
- file accompanying popt source distributions, available from
- ftp://ftp.rpm.org/pub/rpm/dist. */
-
-#include "system.h"
-#include "findme.h"
-
-const char * findProgramPath(const char * argv0)
-{
- char * path = getenv("PATH");
- char * pathbuf;
- char * start, * chptr;
- char * buf;
- size_t bufsize;
-
- if (argv0 == NULL) return NULL; /* XXX can't happen */
- /* If there is a / in the argv[0], it has to be an absolute path */
- if (strchr(argv0, '/'))
- return xstrdup(argv0);
-
- if (path == NULL) return NULL;
-
- bufsize = strlen(path) + 1;
- start = pathbuf = alloca(bufsize);
- if (pathbuf == NULL) return NULL; /* XXX can't happen */
- strlcpy(pathbuf, path, bufsize);
- bufsize += sizeof "/" - 1 + strlen(argv0);
- buf = malloc(bufsize);
- if (buf == NULL) return NULL; /* XXX can't happen */
-
- chptr = NULL;
- /*@-branchstate@*/
- do {
- if ((chptr = strchr(start, ':')))
- *chptr = '\0';
- snprintf(buf, bufsize, "%s/%s", start, argv0);
-
- if (!access(buf, X_OK))
- return buf;
-
- if (chptr)
- start = chptr + 1;
- else
- start = NULL;
- } while (start && *start);
- /*@=branchstate@*/
-
- free(buf);
-
- return NULL;
-}