diff options
| -rw-r--r-- | dmenu.c | 2 | ||||
| -rwxr-xr-x | dmenu_run | 17 | 
2 files changed, 11 insertions, 8 deletions
| @@ -117,7 +117,7 @@ main(int argc, char *argv[]) {  	setup();  	run(); -	return EXIT_FAILURE; /* unreachable */ +	return 1; /* unreachable */  }  void @@ -1,12 +1,15 @@  #!/bin/sh -CACHE=${XDG_CACHE_HOME:-"$HOME/.cache"}/dmenu_run -if [ ! -d "`dirname "$CACHE"`" ]; then -	CACHE=$HOME/.dmenu_cache +cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"} +if [ -d "$cachedir" ]; then +	cache=$cachedir/dmenu_run +else +	cache=$HOME/.dmenu_cache  fi  (  	IFS=: -	if [ "`ls -dt $PATH "$CACHE" | head -n 1`" != "$CACHE" ]; then -		lsx $PATH | sort -u > "$CACHE" +	if [ "`ls -dt $PATH "$cache" | head -n 1`" != "$cache" ]; then +		lsx $PATH | sort -u | tee "$cache" | dmenu "$@" +	else +		dmenu "$@" < "$cache"  	fi -) -cmd=`dmenu "$@" < "$CACHE"` && exec sh -c "$cmd" +) | read cmd && exec sh -c "$cmd" | 
