faster dmenu_run -f
This commit is contained in:
		
							
								
								
									
										2
									
								
								dmenu.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								dmenu.c
									
									
									
									
									
								
							@@ -117,7 +117,7 @@ main(int argc, char *argv[]) {
 | 
				
			|||||||
	setup();
 | 
						setup();
 | 
				
			||||||
	run();
 | 
						run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return EXIT_FAILURE; /* unreachable */
 | 
						return 1; /* unreachable */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								dmenu_run
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								dmenu_run
									
									
									
									
									
								
							@@ -1,12 +1,15 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
CACHE=${XDG_CACHE_HOME:-"$HOME/.cache"}/dmenu_run
 | 
					cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"}
 | 
				
			||||||
if [ ! -d "`dirname "$CACHE"`" ]; then
 | 
					if [ -d "$cachedir" ]; then
 | 
				
			||||||
	CACHE=$HOME/.dmenu_cache
 | 
						cache=$cachedir/dmenu_run
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						cache=$HOME/.dmenu_cache
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
(
 | 
					(
 | 
				
			||||||
	IFS=:
 | 
						IFS=:
 | 
				
			||||||
	if [ "`ls -dt $PATH "$CACHE" | head -n 1`" != "$CACHE" ]; then
 | 
						if [ "`ls -dt $PATH "$cache" | head -n 1`" != "$cache" ]; then
 | 
				
			||||||
		lsx $PATH | sort -u > "$CACHE"
 | 
							lsx $PATH | sort -u | tee "$cache" | dmenu "$@"
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							dmenu "$@" < "$cache"
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
)
 | 
					) | read cmd && exec sh -c "$cmd"
 | 
				
			||||||
cmd=`dmenu "$@" < "$CACHE"` && exec sh -c "$cmd"
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user