X-Git-Url: https://git.xinqibao.xyz/dmenu.git/blobdiff_plain/cf0fb79cd8303f6d1089b7e919add4b0fc8d9069..10fd4f275feaef0b505cc8e65a2deccae69a0968:/dmenu.c diff --git a/dmenu.c b/dmenu.c index 49a6583..050b858 100644 --- a/dmenu.c +++ b/dmenu.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include @@ -28,14 +28,13 @@ /* enums */ enum { SchemeNorm, SchemeSel, SchemeOut, SchemeLast }; /* color schemes */ -typedef struct Item Item; -struct Item { +struct item { char *text; - Item *left, *right; + struct item *left, *right; bool out; }; -static void appenditem(Item *, Item **, Item **); +static void appenditem(struct item *, struct item **, struct item **); static void calcoffsets(void); static char *cistrstr(const char *, const char *); static void cleanup(void); @@ -56,9 +55,9 @@ static int bh, mw, mh; static int sw, sh; /* X display screen geometry width, height */ static int inputw, promptw; static size_t cursor; -static Item *items = NULL; -static Item *matches, *matchend; -static Item *prev, *curr, *next, *sel; +static struct item *items = NULL; +static struct item *matches, *matchend; +static struct item *prev, *curr, *next, *sel; static int mon = -1, screen; static Atom clip, utf8; @@ -75,7 +74,7 @@ static int (*fstrncmp)(const char *, const char *, size_t) = strncmp; static char *(*fstrstr)(const char *, const char *) = strstr; static void -appenditem(Item *item, Item **list, Item **last) +appenditem(struct item *item, struct item **list, struct item **last) { if (*last) (*last)->right = item; @@ -135,7 +134,7 @@ static void drawmenu(void) { int curpos; - Item *item; + struct item *item; int x = 0, y = 0, h = bh, w; drw_setscheme(drw, &scheme[SchemeNorm]); @@ -203,6 +202,7 @@ drawmenu(void) static void grabkeyboard(void) { + struct timespec ts = { .tv_sec = 0, .tv_nsec = 1000000 }; int i; /* try to grab keyboard, we may have to wait for another process to ungrab */ @@ -210,7 +210,7 @@ grabkeyboard(void) if (XGrabKeyboard(dpy, DefaultRootWindow(dpy), True, GrabModeAsync, GrabModeAsync, CurrentTime) == GrabSuccess) return; - usleep(1000); + nanosleep(&ts, NULL); } die("cannot grab keyboard\n"); } @@ -407,7 +407,7 @@ match(void) char buf[sizeof text], *s; int i, tokc = 0; size_t len; - Item *item, *lprefix, *lsubstr, *prefixend, *substrend; + struct item *item, *lprefix, *lsubstr, *prefixend, *substrend; strcpy(buf, text); /* separate input text into tokens to be matched individually */