removed C-[ from source and man page
[dmenu.git] / main.c
diff --git a/main.c b/main.c
index 32b08b9..3458fd5 100644 (file)
--- a/main.c
+++ b/main.c
@@ -24,13 +24,11 @@ struct Item {
 
 /* static */
 
-static char *title, text[4096];
+static char text[4096];
 static int mx, my, mw, mh;
 static int ret = 0;
 static int nitem = 0;
 static unsigned int cmdw = 0;
-static unsigned int tw = 0;
-static unsigned int cw = 0;
 static Bool done = False;
 static Item *allitems = NULL;  /* first of all items */
 static Item *item = NULL;      /* first of pattern matching items */
@@ -82,18 +80,10 @@ drawmenu()
        drawtext(NULL, False, False);
 
        /* print command */
-       if(!title || text[0]) {
-               cmdw = cw;
-               if(cmdw && item)
-                       dc.w = cmdw;
-               drawtext(text, False, False);
-       }
-       else {
-               cmdw = tw;
+       if(cmdw && item)
                dc.w = cmdw;
-               drawtext(title, False, False);
-       }
-       dc.x += dc.w;
+       drawtext(text[0] ? text : NULL, False, False);
+       dc.x += cmdw;
 
        if(curr) {
                dc.w = SPACE;
@@ -102,7 +92,6 @@ drawmenu()
 
                /* determine maximum items */
                for(i = curr; i != next; i=i->right) {
-                       dc.border = False;
                        dc.w = textw(i->text);
                        if(dc.w > mw / 3)
                                dc.w = mw / 3;
@@ -119,7 +108,7 @@ drawmenu()
 }
 
 static void
-input(char *pattern)
+match(char *pattern)
 {
        unsigned int plen;
        Item *i, *j;
@@ -127,11 +116,6 @@ input(char *pattern)
        if(!pattern)
                return;
 
-       if(!title || *pattern)
-               cmdw = cw;
-       else
-               cmdw = tw;
-
        plen = strlen(pattern);
        item = j = NULL;
        nitem = 0;
@@ -190,16 +174,12 @@ kpress(XKeyEvent * e)
                case XK_h:
                        ksym = XK_BackSpace;
                        break;
-               case XK_U:
                case XK_u:
                        text[0] = 0;
-                       input(text);
+                       match(text);
                        drawmenu();
                        return;
                        break;
-               case XK_bracketleft:
-                       ksym = XK_Escape;
-                       break;
                }
        }
        switch(ksym) {
@@ -216,7 +196,7 @@ kpress(XKeyEvent * e)
                if(!sel)
                        return;
                strncpy(text, sel->text, sizeof(text));
-               input(text);
+               match(text);
                break;
        case XK_Right:
                if(!(sel && sel->right))
@@ -248,9 +228,9 @@ kpress(XKeyEvent * e)
                        prev_nitem = nitem;
                        do {
                                text[--i] = 0;
-                               input(text);
+                               match(text);
                        } while(i && nitem && prev_nitem == nitem);
-                       input(text);
+                       match(text);
                }
                break;
        default:
@@ -260,14 +240,14 @@ kpress(XKeyEvent * e)
                                strncat(text, buf, sizeof(text));
                        else
                                strncpy(text, buf, sizeof(text));
-                       input(text);
+                       match(text);
                }
        }
        drawmenu();
 }
 
 static char *
-readinput()
+readstdin()
 {
        static char *maxname = NULL;
        char *p, buf[1024];
@@ -308,30 +288,15 @@ int
 main(int argc, char *argv[])
 {
        char *maxname;
-       int i;
        XEvent ev;
        XSetWindowAttributes wa;
 
-       /* command line args */
-       for(i = 1; i < argc; i++) {
-               if (argv[i][0] == '-')
-                       switch (argv[i][1]) {
-                       case 'v':
-                               fputs("dmenu-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
-                               exit(EXIT_SUCCESS);
-                               break;
-                       case 't':
-                               if(++i < argc) {
-                                       title = argv[i];
-                                       break;
-                               }
-                       default:
-                               eprint("usage: dmenu [-v] [-t <title>]\n");
-                               break;
-                       }
-               else
-                       eprint("usage: dmenu [-v] [-t <title>]\n");
+       if(argc == 2 && !strncmp("-v", argv[1], 3)) {
+               fputs("dmenu-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
+               exit(EXIT_SUCCESS);
        }
+       else if(argc != 1)
+               eprint("usage: dmenu [-v]\n");
 
        dpy = XOpenDisplay(0);
        if(!dpy)
@@ -339,7 +304,7 @@ main(int argc, char *argv[])
        screen = DefaultScreen(dpy);
        root = RootWindow(dpy, screen);
 
-       maxname = readinput();
+       maxname = readstdin();
 
        /* grab as early as possible, but after reading all items!!! */
        while(XGrabKeyboard(dpy, root, True, GrabModeAsync,
@@ -371,20 +336,12 @@ main(int argc, char *argv[])
        dc.gc = XCreateGC(dpy, root, 0, 0);
 
        if(maxname)
-               cw = textw(maxname);
-       if(cw > mw / 3)
-               cw = mw / 3;
-
-       if(title) {
-               tw = textw(title);
-               if(tw > mw / 3)
-                       tw = mw / 3;
-       }
-
-       cmdw = title ? tw : cw;
+               cmdw = textw(maxname);
+       if(cmdw > mw / 3)
+               cmdw = mw / 3;
 
        text[0] = 0;
-       input(text);
+       match(text);
        XMapRaised(dpy, win);
        drawmenu();
        XSync(dpy, False);