dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit 4970ef938eca10d9af3ef058d15d2ffeb6dfbe18
parent f85b163899a743d29ebdf1d4969e729b3f2cb79c
Author: arg@10ksloc.org <unknown>
Date:   Fri, 21 Jul 2006 14:11:38 +0200

simplified main.c, switching back to single urxvt usage

Diffstat:
Mevent.c | 2+-
Mmain.c | 40+++++++++++++---------------------------
2 files changed, 14 insertions(+), 28 deletions(-)
diff --git a/event.c b/event.c
@@ -23,7 +23,7 @@ typedef struct {
 const char *browse[] = { "firefox", NULL };
 const char *gimp[] = { "gimp", NULL };
 const char *term[] = { 
-    "urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
+    "urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
     "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
 };
 const char *xlock[] = { "xlock", NULL };
diff --git 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();
             }
         }