static void cleanup(void);
static void drawmenu(void);
static void drawtext(const char *text, ulong col[ColLast]);
-static void *emalloc(uint size);
static void eprint(const char *errstr, ...);
static ulong getcolor(const char *colstr);
static Bool grabkeyboard(void);
#include "config.h"
/* variables */
-static char *font = FONT;
static char *maxname = NULL;
-static char *normbg = NORMBGCOLOR;
-static char *normfg = NORMFGCOLOR;
static char *prompt = NULL;
-static char *selbg = SELBGCOLOR;
-static char *selfg = SELFGCOLOR;
static char text[4096];
static int cmdw = 0;
static int promptw = 0;
XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
}
-void *
-emalloc(uint size) {
- void *res = malloc(size);
-
- if(!res)
- eprint("fatal: could not malloc() %u bytes\n", size);
- return res;
-}
-
void
eprint(const char *errstr, ...) {
va_list ap;
calcoffsets();
break;
case XK_Return:
- if((e->state & ShiftMask) && text)
+ if((e->state & ShiftMask) && *text)
fprintf(stdout, "%s", text);
else if(sel)
fprintf(stdout, "%s", sel->text);
- else if(text)
+ else if(*text)
fprintf(stdout, "%s", text);
fflush(stdout);
running = False;
maxname = p;
max = len;
}
- new = emalloc(sizeof(Item));
+ if((new = (Item *)malloc(sizeof(Item))) == NULL)
+ eprint("fatal: could not malloc() %u bytes\n", sizeof(Item));
new->next = new->left = new->right = NULL;
new->text = p;
if(!i)
XFreeModifiermap(modmap);
/* style */
- dc.norm[ColBG] = getcolor(normbg);
- dc.norm[ColFG] = getcolor(normfg);
- dc.sel[ColBG] = getcolor(selbg);
- dc.sel[ColFG] = getcolor(selfg);
+ dc.norm[ColBG] = getcolor(normbgcolor);
+ dc.norm[ColFG] = getcolor(normfgcolor);
+ dc.sel[ColBG] = getcolor(selbgcolor);
+ dc.sel[ColFG] = getcolor(selfgcolor);
initfont(font);
/* menu window */
if(++i < argc) font = argv[i];
}
else if(!strcmp(argv[i], "-nb")) {
- if(++i < argc) normbg = argv[i];
+ if(++i < argc) normbgcolor = argv[i];
}
else if(!strcmp(argv[i], "-nf")) {
- if(++i < argc) normfg = argv[i];
+ if(++i < argc) normfgcolor = argv[i];
}
else if(!strcmp(argv[i], "-p")) {
if(++i < argc) prompt = argv[i];
}
else if(!strcmp(argv[i], "-sb")) {
- if(++i < argc) selbg = argv[i];
+ if(++i < argc) selbgcolor = argv[i];
}
else if(!strcmp(argv[i], "-sf")) {
- if(++i < argc) selfg = argv[i];
+ if(++i < argc) selfgcolor = argv[i];
}
else if(!strcmp(argv[i], "-v"))
eprint("dmenu-"VERSION", © 2006-2008 dmenu engineers, see LICENSE for details\n");