|
|
@ -1,5 +1,4 @@ |
|
|
|
/* See LICENSE file for copyright and license details. */ |
|
|
|
/* See LICENSE file for copyright and license details. */ |
|
|
|
#define _BSD_SOURCE |
|
|
|
|
|
|
|
#include <ctype.h> |
|
|
|
#include <ctype.h> |
|
|
|
#include <locale.h> |
|
|
|
#include <locale.h> |
|
|
|
#include <stdarg.h> |
|
|
|
#include <stdarg.h> |
|
|
@ -141,7 +140,7 @@ cistrstr(const char *s, const char *sub) { |
|
|
|
do { |
|
|
|
do { |
|
|
|
do { |
|
|
|
do { |
|
|
|
if((csub = *s++) == 0) |
|
|
|
if((csub = *s++) == 0) |
|
|
|
return (NULL); |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
while(tolower(csub) != c); |
|
|
|
while(tolower(csub) != c); |
|
|
|
} |
|
|
|
} |
|
|
@ -318,7 +317,7 @@ kpress(XKeyEvent * e) { |
|
|
|
|
|
|
|
|
|
|
|
len = strlen(text); |
|
|
|
len = strlen(text); |
|
|
|
buf[0] = 0; |
|
|
|
buf[0] = 0; |
|
|
|
num = XLookupString(e, buf, sizeof buf, &ksym, 0); |
|
|
|
num = XLookupString(e, buf, sizeof buf, &ksym, NULL); |
|
|
|
if(IsKeypadKey(ksym)) { |
|
|
|
if(IsKeypadKey(ksym)) { |
|
|
|
if(ksym == XK_KP_Enter) |
|
|
|
if(ksym == XK_KP_Enter) |
|
|
|
ksym = XK_Return; |
|
|
|
ksym = XK_Return; |
|
|
@ -534,7 +533,7 @@ readstdin(void) { |
|
|
|
maxname = p; |
|
|
|
maxname = p; |
|
|
|
max = len; |
|
|
|
max = len; |
|
|
|
} |
|
|
|
} |
|
|
|
if((new = (Item *)malloc(sizeof(Item))) == NULL) |
|
|
|
if(!(new = (Item *)malloc(sizeof(Item)))) |
|
|
|
eprint("fatal: could not malloc() %u bytes\n", sizeof(Item)); |
|
|
|
eprint("fatal: could not malloc() %u bytes\n", sizeof(Item)); |
|
|
|
new->next = new->left = new->right = NULL; |
|
|
|
new->next = new->left = new->right = NULL; |
|
|
|
new->text = p; |
|
|
|
new->text = p; |
|
|
@ -593,7 +592,7 @@ setup(Bool topbar) { |
|
|
|
initfont(font); |
|
|
|
initfont(font); |
|
|
|
|
|
|
|
|
|
|
|
/* menu window */ |
|
|
|
/* menu window */ |
|
|
|
wa.override_redirect = 1; |
|
|
|
wa.override_redirect = True; |
|
|
|
wa.background_pixmap = ParentRelative; |
|
|
|
wa.background_pixmap = ParentRelative; |
|
|
|
wa.event_mask = ExposureMask | ButtonPressMask | KeyPressMask; |
|
|
|
wa.event_mask = ExposureMask | ButtonPressMask | KeyPressMask; |
|
|
|
|
|
|
|
|
|
|
@ -631,7 +630,7 @@ setup(Bool topbar) { |
|
|
|
|
|
|
|
|
|
|
|
/* pixmap */ |
|
|
|
/* pixmap */ |
|
|
|
dc.drawable = XCreatePixmap(dpy, root, mw, mh, DefaultDepth(dpy, screen)); |
|
|
|
dc.drawable = XCreatePixmap(dpy, root, mw, mh, DefaultDepth(dpy, screen)); |
|
|
|
dc.gc = XCreateGC(dpy, root, 0, 0); |
|
|
|
dc.gc = XCreateGC(dpy, root, 0, NULL); |
|
|
|
XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); |
|
|
|
XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); |
|
|
|
if(!dc.font.set) |
|
|
|
if(!dc.font.set) |
|
|
|
XSetFont(dpy, dc.gc, dc.font.xfont->fid); |
|
|
|
XSetFont(dpy, dc.gc, dc.font.xfont->fid); |
|
|
@ -702,7 +701,7 @@ main(int argc, char *argv[]) { |
|
|
|
" [-p <prompt>] [-sb <color>] [-sf <color>] [-v]\n"); |
|
|
|
" [-p <prompt>] [-sb <color>] [-sf <color>] [-v]\n"); |
|
|
|
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale()) |
|
|
|
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale()) |
|
|
|
fprintf(stderr, "warning: no locale support\n"); |
|
|
|
fprintf(stderr, "warning: no locale support\n"); |
|
|
|
if(!(dpy = XOpenDisplay(0))) |
|
|
|
if(!(dpy = XOpenDisplay(NULL))) |
|
|
|
eprint("dmenu: cannot open display\n"); |
|
|
|
eprint("dmenu: cannot open display\n"); |
|
|
|
screen = DefaultScreen(dpy); |
|
|
|
screen = DefaultScreen(dpy); |
|
|
|
root = RootWindow(dpy, screen); |
|
|
|
root = RootWindow(dpy, screen); |
|
|
|