@@ -66,7 +66,6 @@ main(int argc, char *argv[]) { | |||||
Bool fast = False; | Bool fast = False; | ||||
int i; | int i; | ||||
progname = "dmenu"; | |||||
for(i = 1; i < argc; i++) | for(i = 1; i < argc; i++) | ||||
/* single flags */ | /* single flags */ | ||||
if(!strcmp(argv[i], "-v")) { | if(!strcmp(argv[i], "-v")) { | ||||
@@ -383,10 +382,9 @@ keypress(XKeyEvent *ev) { | |||||
void | void | ||||
match(void) { | match(void) { | ||||
size_t len; | |||||
size_t len = strlen(text); | |||||
Item *item, *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend; | Item *item, *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend; | ||||
len = strlen(text); | |||||
matches = lexact = lprefix = lsubstr = matchend = exactend = prefixend = substrend = NULL; | matches = lexact = lprefix = lsubstr = matchend = exactend = prefixend = substrend = NULL; | ||||
for(item = items; item && item->text; item++) | for(item = items; item && item->text; item++) | ||||
if(!fstrncmp(text, item->text, len + 1)) | if(!fstrncmp(text, item->text, len + 1)) | ||||
@@ -424,9 +422,8 @@ match(void) { | |||||
size_t | size_t | ||||
nextrune(int incr) { | nextrune(int incr) { | ||||
size_t n, len; | |||||
size_t n, len = strlen(text); | |||||
len = strlen(text); | |||||
for(n = cursor + incr; n >= 0 && n < len && (text[n] & 0xc0) == 0x80; n += incr); | for(n = cursor + incr; n >= 0 && n < len && (text[n] & 0xc0) == 0x80; n += incr); | ||||
return n; | return n; | ||||
} | } | ||||
@@ -29,10 +29,9 @@ drawrect(DC *dc, int x, int y, unsigned int w, unsigned int h, Bool fill, unsign | |||||
void | void | ||||
drawtext(DC *dc, const char *text, unsigned long col[ColLast]) { | drawtext(DC *dc, const char *text, unsigned long col[ColLast]) { | ||||
char buf[256]; | char buf[256]; | ||||
size_t n, mn; | |||||
size_t mn, n = strlen(text); | |||||
/* shorten text if necessary */ | /* shorten text if necessary */ | ||||
n = strlen(text); | |||||
for(mn = MIN(n, sizeof buf); textnw(dc, text, mn) > dc->w - dc->font.height/2; mn--) | for(mn = MIN(n, sizeof buf); textnw(dc, text, mn) > dc->w - dc->font.height/2; mn--) | ||||
if(mn == 0) | if(mn == 0) | ||||
return; | return; | ||||
@@ -46,10 +45,8 @@ drawtext(DC *dc, const char *text, unsigned long col[ColLast]) { | |||||
void | void | ||||
drawtextn(DC *dc, const char *text, size_t n, unsigned long col[ColLast]) { | drawtextn(DC *dc, const char *text, size_t n, unsigned long col[ColLast]) { | ||||
int x, y; | |||||
x = dc->x + dc->font.height/2; | |||||
y = dc->y + dc->font.ascent+1; | |||||
int x = dc->x + dc->font.height/2; | |||||
int y = dc->y + dc->font.ascent+1; | |||||
XSetForeground(dc->dpy, dc->gc, FG(dc, col)); | XSetForeground(dc->dpy, dc->gc, FG(dc, col)); | ||||
if(dc->font.set) | if(dc->font.set) | ||||
@@ -64,7 +61,6 @@ void | |||||
eprintf(const char *fmt, ...) { | eprintf(const char *fmt, ...) { | ||||
va_list ap; | va_list ap; | ||||
fprintf(stderr, "%s: ", progname); | |||||
va_start(ap, fmt); | va_start(ap, fmt); | ||||
vfprintf(stderr, fmt, ap); | vfprintf(stderr, fmt, ap); | ||||
va_end(ap); | va_end(ap); | ||||
@@ -104,7 +100,7 @@ initdc(void) { | |||||
DC *dc; | DC *dc; | ||||
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale()) | if(!setlocale(LC_CTYPE, "") || !XSupportsLocale()) | ||||
weprintf("no locale support\n"); | |||||
fprintf(stderr, "no locale support\n"); | |||||
if(!(dc = calloc(1, sizeof *dc))) | if(!(dc = calloc(1, sizeof *dc))) | ||||
eprintf("cannot malloc %u bytes:", sizeof *dc); | eprintf("cannot malloc %u bytes:", sizeof *dc); | ||||
if(!(dc->dpy = XOpenDisplay(NULL))) | if(!(dc->dpy = XOpenDisplay(NULL))) | ||||
@@ -119,7 +115,7 @@ void | |||||
initfont(DC *dc, const char *fontstr) { | initfont(DC *dc, const char *fontstr) { | ||||
if(!loadfont(dc, fontstr ? fontstr : DEFFONT)) { | if(!loadfont(dc, fontstr ? fontstr : DEFFONT)) { | ||||
if(fontstr != NULL) | if(fontstr != NULL) | ||||
weprintf("cannot load font '%s'\n", fontstr); | |||||
fprintf(stderr, "cannot load font '%s'\n", fontstr); | |||||
if(fontstr == NULL || !loadfont(dc, DEFFONT)) | if(fontstr == NULL || !loadfont(dc, DEFFONT)) | ||||
eprintf("cannot load font '%s'\n", DEFFONT); | eprintf("cannot load font '%s'\n", DEFFONT); | ||||
} | } | ||||
@@ -184,13 +180,3 @@ int | |||||
textw(DC *dc, const char *text) { | textw(DC *dc, const char *text) { | ||||
return textnw(dc, text, strlen(text)) + dc->font.height; | return textnw(dc, text, strlen(text)) + dc->font.height; | ||||
} | } | ||||
void | |||||
weprintf(const char *fmt, ...) { | |||||
va_list ap; | |||||
fprintf(stderr, "%s: ", progname); | |||||
va_start(ap, fmt); | |||||
vfprintf(stderr, fmt, ap); | |||||
va_end(ap); | |||||
} |
@@ -20,18 +20,15 @@ typedef struct { | |||||
} font; | } font; | ||||
} DC; /* draw context */ | } DC; /* draw context */ | ||||
unsigned long getcolor(DC *dc, const char *colstr); | |||||
void drawrect(DC *dc, int x, int y, unsigned int w, unsigned int h, Bool fill, unsigned long color); | void drawrect(DC *dc, int x, int y, unsigned int w, unsigned int h, Bool fill, unsigned long color); | ||||
void drawtext(DC *dc, const char *text, unsigned long col[ColLast]); | void drawtext(DC *dc, const char *text, unsigned long col[ColLast]); | ||||
void drawtextn(DC *dc, const char *text, size_t n, unsigned long col[ColLast]); | void drawtextn(DC *dc, const char *text, size_t n, unsigned long col[ColLast]); | ||||
void initfont(DC *dc, const char *fontstr); | |||||
void eprintf(const char *fmt, ...); | |||||
void freedc(DC *dc); | void freedc(DC *dc); | ||||
unsigned long getcolor(DC *dc, const char *colstr); | |||||
DC *initdc(void); | DC *initdc(void); | ||||
void initfont(DC *dc, const char *fontstr); | |||||
void mapdc(DC *dc, Window win, unsigned int w, unsigned int h); | void mapdc(DC *dc, Window win, unsigned int w, unsigned int h); | ||||
void resizedc(DC *dc, unsigned int w, unsigned int h); | void resizedc(DC *dc, unsigned int w, unsigned int h); | ||||
int textnw(DC *dc, const char *text, size_t len); | int textnw(DC *dc, const char *text, size_t len); | ||||
int textw(DC *dc, const char *text); | int textw(DC *dc, const char *text); | ||||
void eprintf(const char *fmt, ...); | |||||
void weprintf(const char *fmt, ...); | |||||
const char *progname; |