commit - 43540746077d4fd8ef963b5939934d32d59c9417
commit + 11ea52d1709423e0f4e6702aaee2dff2a3b0107e
blob - 126bd7924e44a274640ac2ad6318c0c5d04d82e9
blob + 03f1670d5757eec4a041180a0cef061c409a9a07
--- config.mk
+++ config.mk
# flags
CPPFLAGS = -D_BSD_SOURCE -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
-CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
+CFLAGS = -ansi -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
LDFLAGS = -s ${LIBS}
# compiler and linker
blob - a8a6290c8027a893e32837351be53b85644efe9c
blob + cee73b25254c944eb4e3f8d714290c8bad2268e9
--- dmenu.c
+++ dmenu.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <strings.h>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
void
keypress(XKeyEvent *ev) {
char buf[32];
- size_t len;
KeySym ksym;
- len = strlen(text);
XLookupString(ev, buf, sizeof buf, &ksym, NULL);
- if(ev->state & ControlMask)
- switch(tolower(ksym)) {
+ if(ev->state & ControlMask) {
+ KeySym lower, upper;
+
+ XConvertCase(ksym, &lower, &upper);
+ switch(lower) {
default:
return;
case XK_a:
XConvertSelection(dc->dpy, XA_PRIMARY, utf8, utf8, win, CurrentTime);
return;
}
+ }
switch(ksym) {
default:
if(!iscntrl(*buf))
insert(buf, strlen(buf));
break;
case XK_Delete:
- if(cursor == len)
+ if(text[cursor] == '\0')
return;
cursor = nextrune(+1);
case XK_BackSpace:
insert(NULL, nextrune(-1) - cursor);
break;
case XK_End:
- if(cursor < len) {
- cursor = len;
+ if(text[cursor] != '\0') {
+ cursor = strlen(text);
break;
}
if(next) {
fputs((sel && !(ev->state & ShiftMask)) ? sel->text : text, stdout);
exit(EXIT_SUCCESS);
case XK_Right:
- if(cursor < len) {
+ if(text[cursor] != '\0') {
cursor = nextrune(+1);
break;
}
match(Bool sub) {
size_t len = strlen(text);
Item *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend;
- Item *item, *next = NULL;
+ Item *item, *next;
lexact = lprefix = lsubstr = exactend = prefixend = substrend = NULL;
for(item = sub ? matches : items; item && item->text; item = next) {
blob - 95ff072a9a0cee5329ba8066d05a11a6cd60a69e
blob + 351a43da6cf49d0cdddd947740ac157986a284d1
--- draw.c
+++ draw.c
void
drawrect(DC *dc, int x, int y, unsigned int w, unsigned int h, Bool fill, unsigned long color) {
- XRectangle r = { dc->x + x, dc->y + y, w, h };
+ XRectangle r;
- if(!fill) {
- r.width -= 1;
- r.height -= 1;
- }
+ r.x = dc->x + x;
+ r.y = dc->y + y;
+ r.width = fill ? w : w-1;
+ r.height = fill ? h : h-1;
+
XSetForeground(dc->dpy, dc->gc, color);
(fill ? XFillRectangles : XDrawRectangles)(dc->dpy, dc->canvas, dc->gc, &r, 1);
}