new lsx branch
							parent
							
								
									723cbabc12
								
							
						
					
					
						commit
						ab3bcac0bf
					
				
							
								
								
									
										21
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										21
									
								
								Makefile
								
								
								
								
							|  | @ -3,10 +3,10 @@ | |||
| 
 | ||||
| include config.mk | ||||
| 
 | ||||
| SRC = dmenu.c draw.c | ||||
| SRC = dmenu.c draw.c lsx.c | ||||
| OBJ = ${SRC:.c=.o} | ||||
| 
 | ||||
| all: options dmenu | ||||
| all: options dmenu lsx | ||||
| 
 | ||||
| options: | ||||
| 	@echo dmenu build options: | ||||
|  | @ -20,9 +20,13 @@ options: | |||
| 
 | ||||
| ${OBJ}: config.mk | ||||
| 
 | ||||
| dmenu: ${OBJ} | ||||
| dmenu: dmenu.o draw.o | ||||
| 	@echo CC -o $@ | ||||
| 	@${CC} -o $@ ${OBJ} ${LDFLAGS} | ||||
| 	@${CC} -o $@ dmenu.o draw.o ${LDFLAGS} | ||||
| 
 | ||||
| lsx: lsx.o | ||||
| 	@echo CC -o $@ | ||||
| 	@${CC} -o $@ lsx.o ${LDFLAGS} | ||||
| 
 | ||||
| clean: | ||||
| 	@echo cleaning | ||||
|  | @ -39,21 +43,26 @@ dist: clean | |||
| install: all | ||||
| 	@echo installing executables to ${DESTDIR}${PREFIX}/bin | ||||
| 	@mkdir -p ${DESTDIR}${PREFIX}/bin | ||||
| 	@cp -f dmenu dmenu_path dmenu_run ${DESTDIR}${PREFIX}/bin | ||||
| 	@cp -f dmenu dmenu_path dmenu_run lsx ${DESTDIR}${PREFIX}/bin | ||||
| 	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu | ||||
| 	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu_path | ||||
| 	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu_run | ||||
| 	@echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 | ||||
| 	@chmod 755 ${DESTDIR}${PREFIX}/bin/lsx | ||||
| 	@echo installing manual pages to ${DESTDIR}${MANPREFIX}/man1 | ||||
| 	@mkdir -p ${DESTDIR}${MANPREFIX}/man1 | ||||
| 	@sed "s/VERSION/${VERSION}/g" < dmenu.1 > ${DESTDIR}${MANPREFIX}/man1/dmenu.1 | ||||
| 	@sed "s/VERSION/${VERSION}/g" < lsx.1 > ${DESTDIR}${MANPREFIX}/man1/lsx.1 | ||||
| 	@chmod 644 ${DESTDIR}${MANPREFIX}/man1/dmenu.1 | ||||
| 	@chmod 644 ${DESTDIR}${MANPREFIX}/man1/lsx.1 | ||||
| 
 | ||||
| uninstall: | ||||
| 	@echo removing executables from ${DESTDIR}${PREFIX}/bin | ||||
| 	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu | ||||
| 	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu_path | ||||
| 	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu_run | ||||
| 	@rm -f ${DESTDIR}${PREFIX}/bin/lsx | ||||
| 	@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1 | ||||
| 	@rm -f ${DESTDIR}${MANPREFIX}/man1/dmenu.1 | ||||
| 	@rm -f ${DESTDIR}${MANPREFIX}/man1/lsx.1 | ||||
| 
 | ||||
| .PHONY: all options clean dist install uninstall | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ CACHE=$HOME/.dmenu_cache | |||
| IFS=: | ||||
| 
 | ||||
| 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" | ||||
| 	lsx $PATH | sort -u > "$CACHE" | ||||
| fi | ||||
| 
 | ||||
| cat "$CACHE" | ||||
|  |  | |||
|  | @ -0,0 +1,43 @@ | |||
| /* See LICENSE file for copyright and license details. */ | ||||
| #include <dirent.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <unistd.h> | ||||
| #include <sys/stat.h> | ||||
| 
 | ||||
| static void lsx(const char *s); | ||||
| 
 | ||||
| int | ||||
| main(int argc, char *argv[]) { | ||||
| 	int i; | ||||
| 
 | ||||
| 	if(argc < 2) | ||||
| 		lsx("."); | ||||
| 	else if(!strcmp(argv[1], "-v")) | ||||
| 		puts("lsx-0.2, © 2006-2011 dmenu engineers, see LICENSE for details"); | ||||
| 	else for(i = 1; i < argc; i++) | ||||
| 		lsx(argv[i]); | ||||
| 	return EXIT_SUCCESS; | ||||
| } | ||||
| 
 | ||||
| void | ||||
| lsx(const char *dir) { | ||||
| 	char buf[PATH_MAX]; | ||||
| 	struct dirent *d; | ||||
| 	struct stat st; | ||||
| 	DIR *dp; | ||||
| 
 | ||||
| 	if(!(dp = opendir(dir))) { | ||||
| 		perror(dir); | ||||
| 		return; | ||||
| 	} | ||||
| 	while((d = readdir(dp))) { | ||||
| 		snprintf(buf, sizeof buf, "%s/%s", dir, d->d_name); | ||||
| 		if(stat(buf, &st) == -1) | ||||
| 			perror(buf); | ||||
| 		else if(S_ISREG(st.st_mode) && access(buf, X_OK) == 0) | ||||
| 			puts(d->d_name); | ||||
| 	} | ||||
| 	closedir(dp); | ||||
| } | ||||
		Loading…
	
		Reference in New Issue