chiark / gitweb /
ubuntu-paste: convert to python3/argparse/requests
[bin.git] / pwhich
diff --git a/pwhich b/pwhich
old mode 100644 (file)
new mode 100755 (executable)
index 47aa80c..262dc83
--- 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