From ed96d79a14f3078a291bc569c6c5f8926eacdbb3 Mon Sep 17 00:00:00 2001
From: markt <markt>
Date: Thu, 22 Feb 2007 16:51:35 +0000
Subject: command -v seems to cause problems for some distros, despite being
 POSIX and built into sh

---
 ChangeLog                     |  2 --
 util/fbsetbg                  | 27 ++++++++++++++++++++++----
 util/fluxbox-generate_menu.in | 45 +++++++++++++++++++++++++++++++++++--------
 3 files changed, 60 insertions(+), 14 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ca2c7f0..dfc029d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -216,8 +216,6 @@ Changes for 1.0rc3:
    * Don't run [startup] items in apps file on fluxbox restart (Mark)
      Remember.cc fluxbox.cc
 *07/01/02:
-   * Replace `which' in fbsetbg and fbgm with `command -v' (Mark)
-     util/fbsetbg fluxbox-generate_menu.in
    * Don't escape regular expression metacharacters in apps file, bug
      #1595497 (Mark)
      Remember.cc ClientPattern.cc
diff --git a/util/fbsetbg b/util/fbsetbg
index 917f89a..60118e5 100644
--- a/util/fbsetbg
+++ b/util/fbsetbg
@@ -131,9 +131,28 @@ Common tips to use with $command:
 EOF
 }
 
-find_it() {
-    command -v $1 > /dev/null 2>&1 && shift && $*
-}
+# some which's have a reliable return code, some don't
+# Lets figure out which which we have.
+if which this_program_does_not_exist-no_really-aA1zZ9 >/dev/null 2>/dev/null; then
+    # can't rely on return value
+    find_it() {
+        file=`which $1 2> /dev/null`
+        if [ -x "$file" ]; then
+            if [ $# -gt 1 ]; then
+                shift
+                $*
+            fi
+            return 0
+        else
+            return 1
+        fi
+    }
+else
+    # can rely on return value
+    find_it() {
+        which $1 > /dev/null 2>&1 && shift && $*
+    }
+fi
 
 message() {
 
@@ -330,7 +349,7 @@ if [ "$setterfromcommandline" != true ]; then
             if [ ! "$wpsetter" = Esetroot ]; then
                 WPSETTER=$wpsetter
                 break
-            elif ldd `command -v Esetroot`|grep libImlib 2>&1 > /dev/null; then
+            elif ldd `which Esetroot`|grep libImlib 2>&1 > /dev/null; then
                 WPSETTER=$wpsetter
                 break
             else
diff --git a/util/fluxbox-generate_menu.in b/util/fluxbox-generate_menu.in
index cd168fc..80a2af2 100755
--- a/util/fluxbox-generate_menu.in
+++ b/util/fluxbox-generate_menu.in
@@ -124,13 +124,42 @@ fluxbox-generate_menu was brought to you by:
 EOF
 }
 
-find_it() {
-    command -v $1 > /dev/null 2>&1 && shift && "$@"
-}
+# some which's have a reliable return code, some don't
+# Lets figure out which which we have.
+if which this_program_does_not_exist-no_really-aA1zZ9 2> /dev/null 1> /dev/null; then
+    # can't rely on return value
+    find_it() {
+        file=`which $1 2> /dev/null`
+        if [ -x "$file" ]; then
+            if [ $# -gt 1 ]; then
+                shift
+                "$@"
+            fi
+            return 0
+        else
+            return 1
+        fi
+    }
 
-find_it_options() {
-    command -v $1 > /dev/null 2>&1
-}
+    find_it_options() {
+        file=`which $1 2> /dev/null`
+        if [ -x "$file" ]; then
+            return 0
+        else
+            return 1
+        fi
+    }
+
+else
+    # can rely on return value
+    find_it() {
+        which $1 > /dev/null 2>&1 && shift && "$@"
+    }
+
+    find_it_options() {
+        which $1 > /dev/null 2>&1
+    }
+fi
 
 #echo "replaceWithinString: $1, $2, $3" >&2
 #echo ${1//$2/$3} # causes error in BSD even though not used
@@ -182,7 +211,7 @@ convertIcon(){
     if [ -f "${entry_icon}" ]; then
         : echo "File exists. To overwrite, type: convert \"$1\" \"$entry_icon\"" >&2
     else
-        if command -v convert &> /dev/null; then
+        if which convert &> /dev/null; then
             convert "$1" "$entry_icon"
             # echo convert "$1" , "$entry_icon" >> $ICONMAPPING
         else
@@ -1349,7 +1378,7 @@ fi
 # prefix
 PREFIX="${PREFIX:=@PREFIX@}"
 if [  -z "${PREFIX}" -o ! -d "${PREFIX}" ]; then
-    PREFIX=`command -v fluxbox | sed 's,/bin/fluxbox$,,'`
+    PREFIX=`which fluxbox | sed 's,/bin/fluxbox$,,'`
 fi
 
 
-- 
cgit v0.11.2