X-Git-Url: https://git.xinqibao.xyz/dmenu.git/blobdiff_plain/d50ff5ca11564237f4f3f4a3b2d28f282c787acf..4983707c706d399e8af8d40c60c1b8b25e4c590a:/dmenu_path?ds=sidebyside

diff --git a/dmenu_path b/dmenu_path
index 94db694..7896a9e 100755
--- a/dmenu_path
+++ b/dmenu_path
@@ -1,26 +1,26 @@
-#!/bin/sh -f
+#!/bin/sh
 CACHE=$HOME/.dmenu_cache
 IFS=:
 
-qfind() {
-	find "$@" 2>/dev/null
-}
-
-uptodate() {                                                                       
-	test -f $CACHE &&
-		test "$(echo "$PATH")" = "$(sed 1q "$CACHE")" &&
-		qfind $PATH -maxdepth 0 -newer $CACHE >/dev/null
+uptodate() {
+	test -f "$CACHE" &&
+	for dir in $PATH
+	do
+		test ! $dir -nt "$CACHE" || return 1
+	done
 }
 
 if ! uptodate
 then
-	{
-		echo "$PATH"
-		qfind $PATH -type f -maxdepth 1 '(' -perm -u+x -o -perm -g+x -o -perm -o+x ')' |
-			sed 's,.*/,,' | sort | uniq
-	} > $CACHE.$pid
-	mv $CACHE.$pid $CACHE
+	for dir in $PATH
+	do
+		cd "$dir" &&
+		for file in *
+		do
+			test -x "$file" && echo "$file"
+		done
+	done | sort | uniq > "$CACHE".$$ &&
+	mv "$CACHE".$$ "$CACHE"
 fi
 
-tail -n +2 $CACHE
-
+cat "$CACHE"