[CONTACT]

[ABOUT]

[POLICY]

git clone dmenu dmenu Log gph

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

tfixed a typo in config.mk, fixed cleanup code in dmenu (now frees all allocated stuff) - dmenu - Dmenu fork with xft fonts.

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

Log

Files

Refs

README

LICENSE

---

commit bbb2cc2a729cac8d0b2f0233924ad0491f00c2d7

parent 02ddc93c9483214533824576cc219bd2f269ddc2

Author: Anselm R.Garbe

Date:   Wed, 16 Aug 2006 19:25:04 +0200
fixed a typo in config.mk, fixed cleanup code in dmenu (now frees all allocated stuff)
Diffstat:
  config.mk                           |       2 +-
  main.c                              |      19 +++++++++++++++----
2 files changed, 16 insertions(+), 5 deletions(-)
---

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

t@@ -11,7 +11,7 @@ X11INC = /usr/X11R6/include
 X11LIB = /usr/X11R6/lib
 # includes and libs
-INCS = _I. -I/usr/include -I${X11INC}
+INCS = -I. -I/usr/include -I${X11INC}
 LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
 # flags

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

t@@ -29,7 +29,7 @@ static int mx, my, mw, mh;
 static int ret = 0;
 static int nitem = 0;
 static unsigned int cmdw = 0;
-static Bool done = False;
+static Bool running = True;
 static Item *allitems = NULL;        /* first of all items */
 static Item *item = NULL;        /* first of pattern matching items */
 static Item *sel = NULL;
t@@ -219,11 +219,11 @@ kpress(XKeyEvent * e)
                 else if(text)
                         fprintf(stdout, "%s", text);
                 fflush(stdout);
-                done = True;
+                running = False;
                 break;
         case XK_Escape:
                 ret = 1;
-                done = True;
+                running = False;
                 break;
         case XK_BackSpace:
                 if((i = len)) {
t@@ -290,6 +290,7 @@ int
 main(int argc, char *argv[])
 {
         char *maxname;
+        Item *i;
         XEvent ev;
         XSetWindowAttributes wa;
t@@ -349,7 +350,7 @@ main(int argc, char *argv[])
         XSync(dpy, False);
         /* main event loop */
-        while(!done && !XNextEvent(dpy, &ev)) {
+        while(running && !XNextEvent(dpy, &ev)) {
                 switch (ev.type) {
                 case KeyPress:
                         kpress(&ev.xkey);
t@@ -364,6 +365,16 @@ main(int argc, char *argv[])
         }
         XUngrabKeyboard(dpy, CurrentTime);
+        while(allitems) {
+                i = allitems->next;
+                free(allitems->text);
+                free(allitems);
+                allitems = i;
+        }
+        if(dc.font.set)
+                XFreeFontSet(dpy, dc.font.set);
+        else
+                XFreeFont(dpy, dc.font.xfont);
         XFreePixmap(dpy, dc.drawable);
         XFreeGC(dpy, dc.gc);
         XDestroyWindow(dpy, win);
.


AD: