~metalune/dmenu

120e8401074254d39be916ad83bafda9ef25e6a9 — Quentin Rameau 5 years ago 32f2564
Add config option for word delimiters

Let the user configure word boundaries other than ' ', only works with
the portable character set.
2 files changed, 10 insertions(+), 2 deletions(-)

M config.def.h
M dmenu.c
M config.def.h => config.def.h +6 -0
@@ 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[] = " ";

M dmenu.c => dmenu.c +4 -2
@@ 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 */