X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=dmenu.c;h=c4b79081a835b09572ad10597358ce57dfca8a7c;hb=3a60b19514705f7f61908fd727d2e69565ee1947;hp=a32131c55b92a3bc2799b1a0e75c9a89a645eeee;hpb=dd2f298252fc21ff7d3b14296068443cb39c38d9;p=dmenu.git diff --git a/dmenu.c b/dmenu.c index a32131c..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); @@ -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 < len && (text[n] & 0xc0) == 0x80; n += incr); + for(n = cursor + inc; n + inc >= 0 && (text[n] & 0xc0) == 0x80; n += inc); return n; }