dmenu

my fork of dmenu
Index Commits Files Refs README LICENSE
commit 5a20b409c673a6736c3f9326cb54edc32908f717
parent 164986763a29db97abb52b15cbd282b5636d83c0
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Tue, 20 Oct 2015 22:51:57 +0200

add sbase-style ecalloc(), calloc: or die

... remove intermediary variables

Diffstat:
Mdrw.c | 19+++++++------------
Mutil.c | 10++++++++++
Mutil.h | 1+
3 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/drw.c b/drw.c
@@ -65,8 +65,7 @@ drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h
 {
     Drw *drw;
 
-    if (!(drw = calloc(1, sizeof(Drw))))
-        return NULL;
+    drw = ecalloc(1, sizeof(Drw));
     drw->dpy = dpy;
     drw->screen = screen;
     drw->root = root;
@@ -189,16 +188,13 @@ Clr *
 drw_clr_create(Drw *drw, const char *clrname)
 {
     Clr *clr;
-    Colormap cmap;
-    Visual *vis;
-
     if (!drw)
         return NULL;
-    if (!(clr = calloc(1, sizeof(Clr))))
-        return NULL;
-    cmap = DefaultColormap(drw->dpy, drw->screen);
-    vis = DefaultVisual(drw->dpy, drw->screen);
-    if (!XftColorAllocName(drw->dpy, vis, cmap, clrname, &clr->rgb))
+
+    clr = ecalloc(1, sizeof(Clr));
+    if (!XftColorAllocName(drw->dpy, DefaultVisual(drw->dpy, drw->screen),
+                           DefaultColormap(drw->dpy, drw->screen),
+                           clrname, &clr->rgb))
         die("error, cannot allocate color '%s'\n", clrname);
     clr->pix = clr->rgb.pixel;
 
@@ -409,8 +405,7 @@ drw_cur_create(Drw *drw, int shape)
 
     if (!drw)
         return NULL;
-    if (!(cur = calloc(1, sizeof(Cur))))
-        return NULL;
+    cur = ecalloc(1, sizeof(Cur));
     cur->cursor = XCreateFontCursor(drw->dpy, shape);
 
     return cur;
diff --git a/util.c b/util.c
@@ -6,6 +6,16 @@
 
 #include "util.h"
 
+void *
+ecalloc(size_t nmemb, size_t size)
+{
+    void *p;
+
+    if (!(p = calloc(nmemb, size)))
+        perror(NULL);
+    return p;
+}
+
 void
 die(const char *fmt, ...) {
     va_list ap;
diff --git a/util.h b/util.h
@@ -5,3 +5,4 @@
 #define BETWEEN(X, A, B)        ((A) <= (X) && (X) <= (B))
 
 void die(const char *errstr, ...);
+void *ecalloc(size_t, size_t);