all repos — dmenu @ 11ea52d1709423e0f4e6702aaee2dff2a3b0107e

my build of dmenu

portability
Connor Lane Smith cls@lubutu.com
Sun, 15 May 2011 21:54:26 +0100
commit

11ea52d1709423e0f4e6702aaee2dff2a3b0107e

parent

43540746077d4fd8ef963b5939934d32d59c9417

3 files changed, 19 insertions(+), 15 deletions(-)

jump to
M config.mkconfig.mk

@@ -18,7 +18,7 @@ LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS}

# 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
M dmenu.cdmenu.c

@@ -3,6 +3,7 @@ #include <ctype.h>

#include <stdio.h> #include <stdlib.h> #include <string.h> +#include <strings.h> #include <unistd.h> #include <X11/Xlib.h> #include <X11/Xatom.h>

@@ -231,13 +232,14 @@

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:

@@ -290,13 +292,14 @@ case XK_y: /* paste selection */

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:

@@ -304,8 +307,8 @@ if(cursor > 0)

insert(NULL, nextrune(-1) - cursor); break; case XK_End: - if(cursor < len) { - cursor = len; + if(text[cursor] != '\0') { + cursor = strlen(text); break; } if(next) {

@@ -358,7 +361,7 @@ case XK_KP_Enter:

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; }

@@ -385,7 +388,7 @@ void

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) {
M draw.cdraw.c

@@ -15,12 +15,13 @@ static Bool loadfont(DC *dc, const char *fontstr);

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; + + r.x = dc->x + x; + r.y = dc->y + y; + r.width = fill ? w : w-1; + r.height = fill ? h : h-1; - if(!fill) { - r.width -= 1; - r.height -= 1; - } XSetForeground(dc->dpy, dc->gc, color); (fill ? XFillRectangles : XDrawRectangles)(dc->dpy, dc->canvas, dc->gc, &r, 1); }