chiark / gitweb /
add --prefix option; stop appending /debian/po to old-tree; check that target file...
[bin.git] / pwhich
diff --git a/pwhich b/pwhich
index 47aa80cbad326c2c5d404769188de1d5c873aded..262dc838553b1a370621ce1443330718f0736182 100755 (executable)
--- a/pwhich
+++ b/pwhich
@@ -1,16 +1,30 @@
-#! /bin/sh -e
+#! /bin/sh
+set -e
 
 RET=1
 for PROGRAM in "$@"; do
  IFS_SAVE="$IFS"
  IFS=:
- for ELEMENT in $PATH; do
-  if [ -f "$ELEMENT/$PROGRAM" -a -x "$ELEMENT/$PROGRAM" ]; then
-   echo "$ELEMENT/$PROGRAM"
-   RET=0
-   break
-  fi
- done
+ case $PROGRAM in
+  */*)
+   if [ -f "$PROGRAM" ] && [ -x "$PROGRAM" ]; then
+    printf '%s\n' "$PROGRAM"
+    RET=0
+   fi
+   ;;
+  *)
+   for ELEMENT in $PATH; do
+    if [ -z "$ELEMENT" ]; then
+     ELEMENT=.
+    fi
+    if [ -f "$ELEMENT/$PROGRAM" ] && [ -x "$ELEMENT/$PROGRAM" ]; then
+     printf '%s\n' "$ELEMENT/$PROGRAM"
+     RET=0
+     break
+    fi
+   done
+   ;;
+ esac
  IFS="$IFS_SAVE"
 done