fixed diagnostic error message
[dmenu.git] / main.c
diff --git a/main.c b/main.c
index 3fa1e54..743967a 100644 (file)
--- a/main.c
+++ b/main.c
@@ -5,13 +5,13 @@
 #include "dmenu.h"
 
 #include <ctype.h>
+#include <locale.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
 #include <sys/select.h>
 #include <sys/time.h>
-#include <X11/cursorfont.h>
 #include <X11/Xutil.h>
 #include <X11/keysym.h>
 
@@ -145,7 +145,7 @@ kpress(XKeyEvent * e) {
 
        len = strlen(text);
        buf[0] = 0;
-       num = XLookupString(e, buf, sizeof(buf), &ksym, 0);
+       num = XLookupString(e, buf, sizeof buf, &ksym, 0);
        if(IsFunctionKey(ksym) || IsKeypadKey(ksym)
                        || IsMiscFunctionKey(ksym) || IsPFKey(ksym)
                        || IsPrivateKeypadKey(ksym))
@@ -182,7 +182,7 @@ kpress(XKeyEvent * e) {
        case XK_Tab:
                if(!sel)
                        return;
-               strncpy(text, sel->text, sizeof(text));
+               strncpy(text, sel->text, sizeof text);
                match(text);
                break;
        case XK_Right:
@@ -222,9 +222,9 @@ kpress(XKeyEvent * e) {
                if(num && !iscntrl((int) buf[0])) {
                        buf[num] = 0;
                        if(len > 0)
-                               strncat(text, buf, sizeof(text));
+                               strncat(text, buf, sizeof text);
                        else
-                               strncpy(text, buf, sizeof(text));
+                               strncpy(text, buf, sizeof text);
                        match(text);
                }
        }
@@ -239,7 +239,7 @@ readstdin(void) {
        Item *i, *new;
 
        i = 0;
-       while(fgets(buf, sizeof(buf), stdin)) {
+       while(fgets(buf, sizeof buf, stdin)) {
                len = strlen(buf);
                if (buf[len - 1] == '\n')
                        buf[len - 1] = 0;
@@ -286,24 +286,31 @@ main(int argc, char *argv[]) {
        timeout.tv_sec = 3;
        /* command line args */
        for(i = 1; i < argc; i++)
-               if(!strncmp(argv[i], "-font", 6))
-                       font = argv[++i];
-               else if(!strncmp(argv[i], "-normbg", 8))
-                       normbg = argv[++i];
-               else if(!strncmp(argv[i], "-normfg", 8))
-                       normfg = argv[++i];
-               else if(!strncmp(argv[i], "-selbg", 7))
-                       selbg = argv[++i];
-               else if(!strncmp(argv[i], "-selfg", 7))
-                       selfg = argv[++i];
-               else if(!strncmp(argv[i], "-t", 3))
-                       timeout.tv_sec = atoi(argv[++i]);
+               if(!strncmp(argv[i], "-font", 6)) {
+                       if(++i < argc) font = argv[i];
+               }
+               else if(!strncmp(argv[i], "-normbg", 8)) {
+                       if(++i < argc) normbg = argv[i];
+               }
+               else if(!strncmp(argv[i], "-normfg", 8)) {
+                       if(++i < argc) normfg = argv[i];
+               }
+               else if(!strncmp(argv[i], "-selbg", 7)) {
+                       if(++i < argc) selbg = argv[i];
+               }
+               else if(!strncmp(argv[i], "-selfg", 7)) {
+                       if(++i < argc) selfg = argv[i];
+               }
+               else if(!strncmp(argv[i], "-t", 3)) {
+                       if(++i < argc) timeout.tv_sec = atoi(argv[i]);
+               }
                else if(!strncmp(argv[i], "-v", 3)) {
                        fputs("dmenu-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
                        exit(EXIT_SUCCESS);
                }
                else
                        eprint("usage: dmenu [-font <name>] [-{norm,sel}{bg,fg} <color>] [-t <seconds>] [-v]\n", stdout);
+       setlocale(LC_CTYPE, "");
        dpy = XOpenDisplay(0);
        if(!dpy)
                eprint("dmenu: cannot open display\n");
@@ -340,7 +347,6 @@ main(int argc, char *argv[]) {
                        DefaultDepth(dpy, screen), CopyFromParent,
                        DefaultVisual(dpy, screen),
                        CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
-       XDefineCursor(dpy, win, XCreateFontCursor(dpy, XC_xterm));
        /* pixmap */
        dc.drawable = XCreatePixmap(dpy, root, mw, mh, DefaultDepth(dpy, screen));
        dc.gc = XCreateGC(dpy, root, 0, 0);