aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.def.h6
-rw-r--r--dmenu.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/config.def.h b/config.def.h
index a9122f7..8db1dda 100644
--- a/config.def.h
+++ b/config.def.h
@@ -15,3 +15,9 @@ static const char *outbgcolor = "#00ffff";
15static const char *outfgcolor = "#000000"; 15static const char *outfgcolor = "#000000";
16/* -l option; if nonzero, dmenu uses vertical list with given number of lines */ 16/* -l option; if nonzero, dmenu uses vertical list with given number of lines */
17static unsigned int lines = 0; 17static unsigned int lines = 0;
18
19/*
20 * Characters not considered part of a word while deleting words
21 * for example: " /?\"&[]"
22 */
23static const char worddelimiters[] = " ";
diff --git a/dmenu.c b/dmenu.c
index a07f8e3..e0c2f80 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -314,9 +314,11 @@ keypress(XKeyEvent *ev)
314 insert(NULL, 0 - cursor); 314 insert(NULL, 0 - cursor);
315 break; 315 break;
316 case XK_w: /* delete word */ 316 case XK_w: /* delete word */
317 while (cursor > 0 && text[nextrune(-1)] == ' ') 317 while (cursor > 0 && strchr(worddelimiters,
318 text[nextrune(-1)]))
318 insert(NULL, nextrune(-1) - cursor); 319 insert(NULL, nextrune(-1) - cursor);
319 while (cursor > 0 && text[nextrune(-1)] != ' ') 320 while (cursor > 0 && !strchr(worddelimiters,
321 text[nextrune(-1)]))
320 insert(NULL, nextrune(-1) - cursor); 322 insert(NULL, nextrune(-1) - cursor);
321 break; 323 break;
322 case XK_y: /* paste selection */ 324 case XK_y: /* paste selection */