commit:     214d027f0d92d1d042451765e875f0a84c3fa37d
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 21 05:28:35 2014 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Mar 21 05:28:35 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/portage-utils.git;a=commit;h=214d027f

which: punt!

This code is only used by --install, and only when /proc/self/exe does
not work.  We rarely utilize --install, and it's rare for /proc to be
broken in a way we can't rely on.  So having this func just for that
does not make much sense.

Even then, the code was not correct.  It walked $PATH in reverse order
(when it should have been forward order), and it would abort scanning
beofre it checked the first element.  It also doesn't support empty
path elements (which is supposed to be $PWD).

If we want a which() in the future, we can grab the updated version
from Gentoo's pax-utils project.

---
 .depend      |  2 +-
 Makefile.am  |  1 -
 libq/libq.c  |  1 -
 libq/which.c | 25 -------------------------
 q.c          | 13 ++++---------
 5 files changed, 5 insertions(+), 37 deletions(-)

diff --git a/.depend b/.depend
index 259c95c..3b63d1f 100644
--- a/.depend
+++ b/.depend
@@ -1,7 +1,7 @@
 main.o: main.c porting.h main.h libq/libq.c libq/busybox.h libq/i18n.h \
  libq/libq.h libq/colors.c libq/xmalloc.c libq/xstrdup.c libq/xasprintf.c \
  libq/hash_fd.c libq/md5_sha1_sum.c libq/human_readable.c libq/rmspace.c \
- libq/which.c libq/compat.c libq/copy_file.c libq/safe_io.c libq/xchdir.c \
+ libq/compat.c libq/copy_file.c libq/safe_io.c libq/xchdir.c \
  libq/xgetcwd.c libq/xmkdir.c libq/xreadlink.c libq/xregex.c \
  libq/xsystem.c libq/xarray.c libq/atom_explode.c libq/atom_compare.c \
  libq/basename.c libq/scandirat.c libq/prelink.c libq/profile.c \

diff --git a/Makefile.am b/Makefile.am
index ed5c184..14bc649 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -112,7 +112,6 @@ EXTRA_DIST += \
        libq/vdb.c \
        libq/vdb_get_next_dir.c \
        libq/virtuals.c \
-       libq/which.c \
        libq/xarray.c \
        libq/xasprintf.c \
        libq/xchdir.c \

diff --git a/libq/libq.c b/libq/libq.c
index 528db75..5c6eb5c 100644
--- a/libq/libq.c
+++ b/libq/libq.c
@@ -17,7 +17,6 @@
 #include "md5_sha1_sum.c"
 #include "human_readable.c"
 #include "rmspace.c"
-#include "which.c"
 #include "compat.c"
 
 #include "copy_file.c"

diff --git a/libq/which.c b/libq/which.c
deleted file mode 100644
index ce33121..0000000
--- a/libq/which.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* find the path to a file by name */
-static char *which(const char *fname)
-{
-       static char fullpath[BUFSIZ];
-       char *ret, *path, *p;
-
-       ret = NULL;
-
-       path = getenv("PATH");
-       if (!path)
-               return ret;
-
-       path = xstrdup(path);
-       while ((p = strrchr(path, ':')) != NULL) {
-               snprintf(fullpath, sizeof(fullpath), "%s/%s", p + 1, fname);
-               *p = 0;
-               if (access(fullpath, R_OK) != -1) {
-                       ret = fullpath;
-                       break;
-               }
-       }
-       free(path);
-
-       return ret;
-}

diff --git a/q.c b/q.c
index 394a035..443ce4b 100644
--- a/q.c
+++ b/q.c
@@ -104,15 +104,10 @@ int q_main(int argc, char **argv)
 
                rret = readlink("/proc/self/exe", buf, sizeof(buf) - 1);
                if (rret == -1) {
-                       char *ptr = which("q");
-                       if (ptr == NULL) {
-                               warnfp("haha no symlink love for you");
-                               return 1;
-                       }
-                       strncpy(buf, ptr, sizeof(buf));
-                       buf[sizeof(buf) - 1] = '\0';
-               } else
-                       buf[rret] = '\0';
+                       warnfp("haha no symlink love for you");
+                       return 1;
+               }
+               buf[rret] = '\0';
 
                prog = basename(buf);
                dir = dirname(buf);

Reply via email to