aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Rameau <quinq@fifth.space>2015-12-19 09:32:55 +0100
committerHiltjo Posthuma <hiltjo@codemadness.org>2015-12-19 20:32:14 +0100
commit120e8401074254d39be916ad83bafda9ef25e6a9 (patch)
treeceab3194f5f8c68ab70ecd4518b7a2b9d2f22fc6
parent32f2564dbbbf5aeafb7190a3d35066142f34448f (diff)
downloaddmenu-120e8401074254d39be916ad83bafda9ef25e6a9.tar.gz
dmenu-120e8401074254d39be916ad83bafda9ef25e6a9.tar.bz2
dmenu-120e8401074254d39be916ad83bafda9ef25e6a9.zip
Add config option for word delimiters
Let the user configure word boundaries other than ' ', only works with the portable character set.
-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";
static const char *outfgcolor = "#000000";
/* -l option; if nonzero, dmenu uses vertical list with given number of lines */
static unsigned int lines = 0;
+
+/*
+ * Characters not considered part of a word while deleting words
+ * for example: " /?\"&[]"
+ */
+static 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)
insert(NULL, 0 - cursor);
break;
case XK_w: /* delete word */
- while (cursor > 0 && text[nextrune(-1)] == ' ')
+ while (cursor > 0 && strchr(worddelimiters,
+ text[nextrune(-1)]))
insert(NULL, nextrune(-1) - cursor);
- while (cursor > 0 && text[nextrune(-1)] != ' ')
+ while (cursor > 0 && !strchr(worddelimiters,
+ text[nextrune(-1)]))
insert(NULL, nextrune(-1) - cursor);
break;
case XK_y: /* paste selection */