fix fbsetbg in combination with picky shells in *BSD, /bin/sh is Almquist Shell(ash). the 'hash' built-in command of ash returns 0, always. 'hash' is not usable for find_it() function in util/fbsetbg and util/fluxbox-generate_menu.in. this patch changes the behavior of find_it(): when 'hash' is detected to not work correctly, switch back to 'which'. this patch is the work of Yamashiro, Jun and appeared first as patch-160 on sourceforge: https://sourceforge.net/p/fluxbox/patches/160/. i submit it on behalf of the author.
Mathias Gumz akira@fluxbox.org
2 files changed,
36 insertions(+),
10 deletions(-)
M
util/fbsetbg
→
util/fbsetbg
@@ -133,9 +133,20 @@
EOF } -find_it() { - [ -n "$1" ] && hash $1 2> /dev/null -} +# some shell's hash returns 0 always +if hash this_program_does_not_exist-no_really-aA1zZ9 > /dev/null 2>&1; then + # can't rely on return value + # ash / ksh + find_it() { + which "$1" > /dev/null 2>&1 + } +else + # can rely on return value + # bash / dash / zsh / sh on Solaris + find_it() { + [ -n "$1" ] && hash "$1" 2> /dev/null + } +fi message() {