aewl

changeset 137:77922a389fa8

simplified main.c, switching back to single urxvt usage
author arg@10ksloc.org
date Fri, 21 Jul 2006 14:11:38 +0200
parents 3a9caa6d565b
children c1185dc7a36e
files event.c main.c
diffstat 2 files changed, 14 insertions(+), 28 deletions(-) [+]
line diff
     1.1 --- a/event.c	Fri Jul 21 11:54:14 2006 +0200
     1.2 +++ b/event.c	Fri Jul 21 14:11:38 2006 +0200
     1.3 @@ -23,7 +23,7 @@
     1.4  const char *browse[] = { "firefox", NULL };
     1.5  const char *gimp[] = { "gimp", NULL };
     1.6  const char *term[] = { 
     1.7 -	"urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
     1.8 +	"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
     1.9  	"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
    1.10  };
    1.11  const char *xlock[] = { "xlock", NULL };
     2.1 --- a/main.c	Fri Jul 21 11:54:14 2006 +0200
     2.2 +++ b/main.c	Fri Jul 21 14:11:38 2006 +0200
     2.3 @@ -166,22 +166,17 @@
     2.4  	int i, n;
     2.5  	unsigned int mask;
     2.6  	fd_set rd;
     2.7 -	Bool readstdin = True;
     2.8 +	Bool readin = True;
     2.9  	Window w;
    2.10  	XEvent ev;
    2.11  	XSetWindowAttributes wa;
    2.12  
    2.13 -	for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
    2.14 -		switch (argv[i][1]) {
    2.15 -		default:
    2.16 -			eprint("usage: dwm [-v]\n");
    2.17 -			break;
    2.18 -		case 'v':
    2.19 -			fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
    2.20 -			exit(EXIT_SUCCESS);
    2.21 -			break;
    2.22 -		}
    2.23 +	if(argc == 2 && !strncmp("-v", argv[1], 3)) {
    2.24 +		fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
    2.25 +		exit(EXIT_SUCCESS);
    2.26  	}
    2.27 +	else if(argc != 1)
    2.28 +		eprint("usage: dwm [-v]\n");
    2.29  
    2.30  	dpy = XOpenDisplay(0);
    2.31  	if(!dpy)
    2.32 @@ -256,10 +251,9 @@
    2.33  	scan();
    2.34  
    2.35  	/* main event loop, reads status text from stdin as well */
    2.36 -Mainloop:
    2.37  	while(running) {
    2.38  		FD_ZERO(&rd);
    2.39 -		if(readstdin)
    2.40 +		if(readin)
    2.41  			FD_SET(STDIN_FILENO, &rd);
    2.42  		FD_SET(ConnectionNumber(dpy), &rd);
    2.43  
    2.44 @@ -276,20 +270,12 @@
    2.45  						(handler[ev.type])(&ev); /* call handler */
    2.46  				}
    2.47  			}
    2.48 -			if(readstdin && FD_ISSET(STDIN_FILENO, &rd)) {
    2.49 -				i = n = 0;
    2.50 -				for(;;) {
    2.51 -					if((i = getchar()) == EOF) {
    2.52 -						/* broken pipe/end of producer */
    2.53 -						readstdin = False;
    2.54 -						strcpy(stext, "broken pipe");
    2.55 -						goto Mainloop;
    2.56 -					}
    2.57 -					if(i == '\n' || n >= sizeof(stext) - 1)
    2.58 -						break;
    2.59 -					stext[n++] = i;
    2.60 -				}
    2.61 -				stext[n] = 0;
    2.62 +			if(readin && FD_ISSET(STDIN_FILENO, &rd)) {
    2.63 +				readin = NULL != fgets(stext, sizeof(stext), stdin);
    2.64 +				if(readin)
    2.65 +					stext[strlen(stext) - 1] = 0;
    2.66 +				else 
    2.67 +					strcpy(stext, "broken pipe");
    2.68  				drawstatus();
    2.69  			}
    2.70  		}