about summary refs log tree commit diff stats
path: root/main.c
diff options
context:
space:
mode:
authorarg@10ksloc.org <unknown>2006-07-21 14:11:38 +0200
committerarg@10ksloc.org <unknown>2006-07-21 14:11:38 +0200
commit4970ef938eca10d9af3ef058d15d2ffeb6dfbe18 (patch)
tree54366283a3d033db79332b5bd6cc7c1e6a735dfc /main.c
parentf85b163899a743d29ebdf1d4969e729b3f2cb79c (diff)
downloaddwm-4970ef938eca10d9af3ef058d15d2ffeb6dfbe18.tar.gz
simplified main.c, switching back to single urxvt usage
Diffstat (limited to 'main.c')
-rw-r--r--main.c40
1 files changed, 13 insertions, 27 deletions
diff --git a/main.c b/main.c
index dc8a6e7..db36536 100644
--- a/main.c
+++ b/main.c
@@ -166,22 +166,17 @@ main(int argc, char *argv[])
 	int i, n;
 	unsigned int mask;
 	fd_set rd;
-	Bool readstdin = True;
+	Bool readin = True;
 	Window w;
 	XEvent ev;
 	XSetWindowAttributes wa;
 
-	for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
-		switch (argv[i][1]) {
-		default:
-			eprint("usage: dwm [-v]\n");
-			break;
-		case 'v':
-			fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
-			exit(EXIT_SUCCESS);
-			break;
-		}
+	if(argc == 2 && !strncmp("-v", argv[1], 3)) {
+		fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
+		exit(EXIT_SUCCESS);
 	}
+	else if(argc != 1)
+		eprint("usage: dwm [-v]\n");
 
 	dpy = XOpenDisplay(0);
 	if(!dpy)
@@ -256,10 +251,9 @@ main(int argc, char *argv[])
 	scan();
 
 	/* main event loop, reads status text from stdin as well */
-Mainloop:
 	while(running) {
 		FD_ZERO(&rd);
-		if(readstdin)
+		if(readin)
 			FD_SET(STDIN_FILENO, &rd);
 		FD_SET(ConnectionNumber(dpy), &rd);
 
@@ -276,20 +270,12 @@ Mainloop:
 						(handler[ev.type])(&ev); /* call handler */
 				}
 			}
-			if(readstdin && FD_ISSET(STDIN_FILENO, &rd)) {
-				i = n = 0;
-				for(;;) {
-					if((i = getchar()) == EOF) {
-						/* broken pipe/end of producer */
-						readstdin = False;
-						strcpy(stext, "broken pipe");
-						goto Mainloop;
-					}
-					if(i == '\n' || n >= sizeof(stext) - 1)
-						break;
-					stext[n++] = i;
-				}
-				stext[n] = 0;
+			if(readin && FD_ISSET(STDIN_FILENO, &rd)) {
+				readin = NULL != fgets(stext, sizeof(stext), stdin);
+				if(readin)
+					stext[strlen(stext) - 1] = 0;
+				else 
+					strcpy(stext, "broken pipe");
 				drawstatus();
 			}
 		}