X-Git-Url: https://git.xinqibao.xyz/dmenu.git/blobdiff_plain/a7aee433ccfd2590e0785a7b93a89d8d0593a234..f7cbe710a266448122d89a02b8ba8c70423fc750:/dmenu_path?ds=inline

diff --git a/dmenu_path b/dmenu_path
index a9ddd47..1b1b241 100755
--- a/dmenu_path
+++ b/dmenu_path
@@ -2,25 +2,8 @@
 CACHE=$HOME/.dmenu_cache
 IFS=:
 
-uptodate() {
-	test -f "$CACHE" &&
-	for dir in $PATH
-	do
-		test ! $dir -nt "$CACHE" || return 1
-	done
-}
-
-if ! uptodate
-then
-	for dir in $PATH
-	do
-		cd "$dir" &&
-		for file in *
-		do
-			test -x "$file" && echo "$file"
-		done
-	done | sort -u > "$CACHE".$$ &&
-	mv "$CACHE".$$ "$CACHE"
+if ! test -f "$CACHE" || find $PATH -type d -newer "$CACHE" | grep -q .; then
+	find $PATH ! -type d \( -perm -1 -o -perm -10 -o -perm -100 \) | sed 's/.*\///' | sort -u > "$CACHE"
 fi
 
 cat "$CACHE"