X-Git-Url: https://git.xinqibao.xyz/dmenu.git/blobdiff_plain/11ea52d1709423e0f4e6702aaee2dff2a3b0107e..3a60b19514705f7f61908fd727d2e69565ee1947:/dmenu.c diff --git a/dmenu.c b/dmenu.c index cee73b2..c4b7908 100644 --- a/dmenu.c +++ b/dmenu.c @@ -31,7 +31,7 @@ static void grabkeyboard(void); static void insert(const char *str, ssize_t n); static void keypress(XKeyEvent *ev); static void match(Bool sub); -static size_t nextrune(int incr); +static size_t nextrune(int inc); static void paste(void); static void readstdin(void); static void run(void); @@ -135,7 +135,7 @@ appenditem(Item *item, Item **list, Item **last) { void calcoffsets(void) { - unsigned int i, n; + int i, n; if(lines > 0) n = lines * bh; @@ -388,11 +388,11 @@ void match(Bool sub) { size_t len = strlen(text); Item *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend; - Item *item, *next; + Item *item, *lnext; lexact = lprefix = lsubstr = exactend = prefixend = substrend = NULL; - for(item = sub ? matches : items; item && item->text; item = next) { - next = sub ? item->right : item + 1; + for(item = sub ? matches : items; item && item->text; item = lnext) { + lnext = sub ? item->right : item + 1; if(!fstrncmp(text, item->text, len + 1)) appenditem(item, &lexact, &exactend); else if(!fstrncmp(text, item->text, len)) @@ -426,10 +426,10 @@ match(Bool sub) { } size_t -nextrune(int incr) { - size_t n, len = strlen(text); +nextrune(int inc) { + ssize_t n; - for(n = cursor + incr; n >= 0 && n < len && (text[n] & 0xc0) == 0x80; n += incr); + for(n = cursor + inc; n + inc >= 0 && (text[n] & 0xc0) == 0x80; n += inc); return n; } @@ -442,7 +442,7 @@ paste(void) { XGetWindowProperty(dc->dpy, win, utf8, 0, (sizeof text / 4) + 1, False, utf8, &da, &di, &dl, &dl, (unsigned char **)&p); - insert(p, (q = strchr(p, '\n')) ? q-p : strlen(p)); + insert(p, (q = strchr(p, '\n')) ? q-p : (ssize_t)strlen(p)); XFree(p); drawmenu(); }