[CONTACT]

[ABOUT]

[POLICY]

git clone dmenu dmenu Log gph

Found at: gopher.r-36.net:70/scm/dmenu/commit/11ea52d1709423e0f4e6702aaee2dff2a3b0107e.gph

tportability - dmenu - Dmenu fork with xft fonts.

git clone git://r-36.net/dmenu

Log

Files

Refs

README

LICENSE

---

commit 11ea52d1709423e0f4e6702aaee2dff2a3b0107e

parent 43540746077d4fd8ef963b5939934d32d59c9417

Author: Connor Lane Smith

Date:   Sun, 15 May 2011 21:54:26 +0100
portability
Diffstat:
  config.mk                           |       2 +-
  dmenu.c                             |      21 ++++++++++++---------
  draw.c                              |      11 ++++++-----
3 files changed, 19 insertions(+), 15 deletions(-)
---

diff --git a/config.mk b/config.mk

t@@ -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

diff --git a/dmenu.c b/dmenu.c

t@@ -3,6 +3,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
t@@ -231,13 +232,14 @@ insert(const char *str, ssize_t n) {
 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:
t@@ -290,13 +292,14 @@ keypress(XKeyEvent *ev) {
                         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:
t@@ -304,8 +307,8 @@ keypress(XKeyEvent *ev) {
                         insert(NULL, nextrune(-1) - cursor);
                 break;
         case XK_End:
-                if(cursor < len) {
-                        cursor = len;
+                if(text[cursor] != '\0') {
+                        cursor = strlen(text);
                         break;
                 }
                 if(next) {
t@@ -358,7 +361,7 @@ keypress(XKeyEvent *ev) {
                 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;
                 }
t@@ -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) {

diff --git a/draw.c b/draw.c

t@@ -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);
 }
.


AD: