[CONTACT]

[ABOUT]

[POLICY]

git clone dmenu dmenu Log gph

Found at: gopher.r-36.net:70/scm/dmenu/commit/c04b688cc0fdfdf28eec8ca0133b7a89065ce499.gph

tChanged dmenu_path (fixed race, improved speed, check that $PATH is the same as the last run). - dmenu - Dmenu fork with xft fonts.

git clone git://r-36.net/dmenu

Log

Files

Refs

README

LICENSE

---

commit c04b688cc0fdfdf28eec8ca0133b7a89065ce499

parent dfe95cb5468618b2eb3d53d41e2ec9f4d167f3f9

Author: Kris Maglione

Date:   Wed, 23 May 2007 16:42:51 -0400
Changed dmenu_path (fixed race, improved speed, check that $PATH is the same as the last run).
Diffstat:
  dmenu_path                          |      33 ++++++++++++++++---------------
1 file changed, 17 insertions(+), 16 deletions(-)
---

diff --git a/dmenu_path b/dmenu_path

t@@ -1,25 +1,26 @@
-#!/bin/sh
+#!/bin/sh -f
 CACHE=$HOME/.dmenu_cache
 IFS=:
+qfind() {
+        find "$@" 2>/dev/null
+}
+
 uptodate() {
-        test ! -f $CACHE && return 1
-        for dir in $PATH
-        do
-                test $dir -nt $CACHE && return 1
-        done
-        return 0
-}
+        test -f $CACHE &&
+                test "$(echo "$PATH")" = "$(sed 1q "$CACHE")" &&
+                qfind $PATH -maxdepth 0 -newer $CACHE
+}
 if ! uptodate
 then
-        for dir in $PATH
-        do
-                for file in "$dir"/*
-                do
-                        test -x "$file" && echo "${file##*/}"
-                done
-        done | sort | uniq > $CACHE
+        {
+                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
 fi
-cat $CACHE
+tail -n +2 $CACHE
+
.


AD: