dmenu

my fork of dmenu
Index Commits Files Refs README LICENSE
commit 120e8401074254d39be916ad83bafda9ef25e6a9
parent 32f2564dbbbf5aeafb7190a3d35066142f34448f
Author: Quentin Rameau <quinq@fifth.space>
Date:   Sat, 19 Dec 2015 09:32:55 +0100

Add config option for word delimiters

Let the user configure word boundaries other than ' ', only works with
the portable character set.

Diffstat:
Mconfig.def.h | 6++++++
Mdmenu.c | 6++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git 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
@@ -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 */