]> git.armaanb.net Git - dmenu.git/blobdiff - dmenu.c
reverted uint/ulong introduction
[dmenu.git] / dmenu.c
diff --git a/dmenu.c b/dmenu.c
index bf74edb133b04832aa7289c9954b691dc7969b32..33b1a8926e7c1db8c86972355b48b0f61a5f9034 100644 (file)
--- a/dmenu.c
+++ b/dmenu.c
@@ -1,4 +1,5 @@
 /* See LICENSE file for copyright and license details. */
+#define _BSD_SOURCE
 #include <ctype.h>
 #include <locale.h>
 #include <stdarg.h>
 enum { ColFG, ColBG, ColLast };
 
 /* typedefs */
-typedef unsigned int uint;
-typedef unsigned long ulong;
 typedef struct {
        int x, y, w, h;
-       ulong norm[ColLast];
-       ulong sel[ColLast];
+       unsigned long norm[ColLast];
+       unsigned long sel[ColLast];
        Drawable drawable;
        GC gc;
        struct {
@@ -51,10 +50,9 @@ static void calcoffsets(void);
 static char *cistrstr(const char *s, const char *sub);
 static void cleanup(void);
 static void drawmenu(void);
-static void drawtext(const char *text, ulong col[ColLast]);
-static void *emalloc(uint size);
+static void drawtext(const char *text, unsigned long col[ColLast]);
 static void eprint(const char *errstr, ...);
-static ulong getcolor(const char *colstr);
+static unsigned long getcolor(const char *colstr);
 static Bool grabkeyboard(void);
 static void initfont(const char *fontstr);
 static void kpress(XKeyEvent * e);
@@ -62,7 +60,7 @@ static void match(char *pattern);
 static void readstdin(void);
 static void run(void);
 static void setup(Bool topbar);
-static int textnw(const char *text, uint len);
+static int textnw(const char *text, unsigned int len);
 static int textw(const char *text);
 
 #include "config.h"
@@ -75,8 +73,8 @@ static int cmdw = 0;
 static int promptw = 0;
 static int ret = 0;
 static int screen;
-static uint mw, mh;
-static uint numlockmask = 0;
+static unsigned int mw, mh;
+static unsigned int numlockmask = 0;
 static Bool running = True;
 static Display *dpy;
 static DC dc = {0};
@@ -104,7 +102,7 @@ appenditem(Item *i, Item **list, Item **last) {
 void
 calcoffsets(void) {
        int tw;
-       uint w;
+       unsigned int w;
 
        if(!curr)
                return;
@@ -131,7 +129,7 @@ calcoffsets(void) {
 char *
 cistrstr(const char *s, const char *sub) {
        int c, csub;
-       uint len;
+       unsigned int len;
 
        if(!sub)
                return (char *)s;
@@ -213,10 +211,10 @@ drawmenu(void) {
 }
 
 void
-drawtext(const char *text, ulong col[ColLast]) {
+drawtext(const char *text, unsigned long col[ColLast]) {
        int x, y, w, h;
        static char buf[256];
-       uint len, olen;
+       unsigned int len, olen;
        XRectangle r = { dc.x, dc.y, dc.w, dc.h };
 
        XSetForeground(dpy, dc.gc, col[ColBG]);
@@ -252,15 +250,6 @@ drawtext(const char *text, ulong col[ColLast]) {
                XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
 }
 
-void *
-emalloc(uint size) {
-       void *res = malloc(size);
-
-       if(!res)
-               eprint("fatal: could not malloc() %u bytes\n", size);
-       return res;
-}
-
 void
 eprint(const char *errstr, ...) {
        va_list ap;
@@ -271,7 +260,7 @@ eprint(const char *errstr, ...) {
        exit(EXIT_FAILURE);
 }
 
-ulong
+unsigned long
 getcolor(const char *colstr) {
        Colormap cmap = DefaultColormap(dpy, screen);
        XColor color;
@@ -283,7 +272,7 @@ getcolor(const char *colstr) {
 
 Bool
 grabkeyboard(void) {
-       uint len;
+       unsigned int len;
 
        for(len = 1000; len; len--) {
                if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime)
@@ -339,7 +328,7 @@ void
 kpress(XKeyEvent * e) {
        char buf[32];
        int i, num;
-       uint len;
+       unsigned int len;
        KeySym ksym;
 
        len = strlen(text);
@@ -507,7 +496,7 @@ kpress(XKeyEvent * e) {
 
 void
 match(char *pattern) {
-       uint plen;
+       unsigned int plen;
        Item *i, *itemend, *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend;
 
        if(!pattern)
@@ -549,7 +538,7 @@ match(char *pattern) {
 void
 readstdin(void) {
        char *p, buf[1024];
-       uint len = 0, max = 0;
+       unsigned int len = 0, max = 0;
        Item *i, *new;
 
        i = 0;
@@ -563,7 +552,8 @@ readstdin(void) {
                        maxname = p;
                        max = len;
                }
-               new = emalloc(sizeof(Item));
+               if((new = (Item *)malloc(sizeof(Item))) == NULL)
+                       eprint("fatal: could not malloc() %u bytes\n", sizeof(Item));
                new->next = new->left = new->right = NULL;
                new->text = p;
                if(!i)
@@ -667,7 +657,7 @@ setup(Bool topbar) {
 }
 
 int
-textnw(const char *text, uint len) {
+textnw(const char *text, unsigned int len) {
        XRectangle r;
 
        if(dc.font.set) {
@@ -684,7 +674,7 @@ textw(const char *text) {
 
 int
 main(int argc, char *argv[]) {
-       uint i;
+       unsigned int i;
        Bool topbar = True;
 
        /* command line args */
@@ -718,7 +708,8 @@ main(int argc, char *argv[]) {
                else
                        eprint("usage: dmenu [-i] [-b] [-fn <font>] [-nb <color>] [-nf <color>]\n"
                               "             [-p <prompt>] [-sb <color>] [-sf <color>] [-v]\n");
-       setlocale(LC_CTYPE, "");
+       if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
+               fprintf(stderr, "warning: no locale support\n");
        if(!(dpy = XOpenDisplay(0)))
                eprint("dmenu: cannot open display\n");
        screen = DefaultScreen(dpy);