chiark / gitweb /
xterm-title: Not all printf implementations (e.g. HP-UX) support \e.
[bin.git] / pwhich
diff --git a/pwhich b/pwhich
index 47aa80cbad326c2c5d404769188de1d5c873aded..30d4c67cc8c724a9e483235b5b0e77c90390f087 100755 (executable)
--- a/pwhich
+++ b/pwhich
@@ -1,16 +1,27 @@
-#! /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 [ -x "$PROGRAM" ]; then
+    printf '%s\n' "$PROGRAM"
+    RET=0
+   fi
+   ;;
+  *)
+   for ELEMENT in $PATH; do
+    if [ -x "$ELEMENT/$PROGRAM" ]; then
+     printf '%s\n' "$ELEMENT/$PROGRAM"
+     RET=0
+     break
+    fi
+   done
+   ;;
+ esac
  IFS="$IFS_SAVE"
 done