summary refs log tree commit diff
path: root/conf.c
diff options
context:
space:
mode:
authorokan <okan>2014-02-02 21:34:05 +0000
committerokan <okan>2014-02-02 21:34:05 +0000
commitb923524a8e637141c0c832f6c8989ee600b67946 (patch)
treeb320db4f8e1b54cda2d7781fa617a6aaa27a9839 /conf.c
parentc7d4add2f27b74f62be3dd973bca402eb89ee5cb (diff)
parentad76995af7e1bbae8ec81dd917def917453c379b (diff)
downloadcwm-b923524a8e637141c0c832f6c8989ee600b67946.tar.gz
cwm-b923524a8e637141c0c832f6c8989ee600b67946.tar.xz
cwm-b923524a8e637141c0c832f6c8989ee600b67946.zip
cvsimport
Diffstat (limited to 'conf.c')
-rw-r--r--conf.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/conf.c b/conf.c
index a2e0742..fb7e791 100644
--- a/conf.c
+++ b/conf.c
@@ -51,13 +51,11 @@ conf_cmd_add(struct conf *c, const char *name, const char *path)
 		    sizeof(c->lockpath))
 			return (0);
 	} else {
-		cmd = xmalloc(sizeof(*cmd));
-
 		conf_cmd_remove(c, name);
 
-		if (strlcpy(cmd->name, name, sizeof(cmd->name)) >=
-		    sizeof(cmd->name))
-			return (0);
+		cmd = xmalloc(sizeof(*cmd));
+
+		cmd->name = xstrdup(name);
 		if (strlcpy(cmd->path, path, sizeof(cmd->path)) >=
 		    sizeof(cmd->path))
 			return (0);
@@ -74,6 +72,7 @@ conf_cmd_remove(struct conf *c, const char *name)
 	TAILQ_FOREACH_SAFE(cmd, &c->cmdq, entry, cmdnxt) {
 		if (strcmp(cmd->name, name) == 0) {
 			TAILQ_REMOVE(&c->cmdq, cmd, entry);
+			free(cmd->name);
 			free(cmd);
 		}
 	}
@@ -126,6 +125,8 @@ conf_screen(struct screen_ctx *sc)
 {
 	unsigned int	 i;
 	XftColor	 xc;
+	Colormap	 colormap = DefaultColormap(X_Dpy, sc->which);
+	Visual		*visual = DefaultVisual(X_Dpy, sc->which);
 
 	sc->gap = Conf.gap;
 	sc->snapdist = Conf.snapdist;
@@ -142,18 +143,18 @@ conf_screen(struct screen_ctx *sc)
 			xu_xorcolor(sc->xftcolor[CWM_COLOR_MENU_BG],
 			    sc->xftcolor[CWM_COLOR_MENU_FG], &xc);
 			xu_xorcolor(sc->xftcolor[CWM_COLOR_MENU_FONT], xc, &xc);
-			if (!XftColorAllocValue(X_Dpy, sc->visual, sc->colormap,
+			if (!XftColorAllocValue(X_Dpy, visual, colormap,
 			    &xc.color, &sc->xftcolor[CWM_COLOR_MENU_FONT_SEL]))
 				warnx("XftColorAllocValue: %s", Conf.color[i]);
 			break;
 		}
-		if (XftColorAllocName(X_Dpy, sc->visual, sc->colormap,
+		if (XftColorAllocName(X_Dpy, visual, colormap,
 		    Conf.color[i], &xc)) {
 			sc->xftcolor[i] = xc;
-			XftColorFree(X_Dpy, sc->visual, sc->colormap, &xc);
+			XftColorFree(X_Dpy, visual, colormap, &xc);
 		} else {
 			warnx("XftColorAllocName: %s", Conf.color[i]);
-			XftColorAllocName(X_Dpy, sc->visual, sc->colormap,
+			XftColorAllocName(X_Dpy, visual, colormap,
 			    color_binds[i], &sc->xftcolor[i]);
 		}
 	}
@@ -163,8 +164,7 @@ conf_screen(struct screen_ctx *sc)
 	    sc->xftcolor[CWM_COLOR_MENU_FG].pixel,
 	    sc->xftcolor[CWM_COLOR_MENU_BG].pixel);
 
-	sc->xftdraw = XftDrawCreate(X_Dpy, sc->menuwin,
-	    sc->visual, sc->colormap);
+	sc->xftdraw = XftDrawCreate(X_Dpy, sc->menuwin, visual, colormap);
 	if (sc->xftdraw == NULL)
 		errx(1, "XftDrawCreate");
 
@@ -291,6 +291,7 @@ conf_clear(struct conf *c)
 
 	while ((cmd = TAILQ_FIRST(&c->cmdq)) != NULL) {
 		TAILQ_REMOVE(&c->cmdq, cmd, entry);
+		free(cmd->name);
 		free(cmd);
 	}