Browse Source

Add config option for word delimiters

Let the user configure word boundaries other than ' ', only works with
the portable character set.
master
Quentin Rameau 9 years ago
committed by Hiltjo Posthuma
parent
commit
120e840107
2 changed files with 10 additions and 2 deletions
  1. +6
    -0
      config.def.h
  2. +4
    -2
      dmenu.c

+ 6
- 0
config.def.h View File

@ -15,3 +15,9 @@ static const char *outbgcolor = "#00ffff";
static const char *outfgcolor = "#000000"; static const char *outfgcolor = "#000000";
/* -l option; if nonzero, dmenu uses vertical list with given number of lines */ /* -l option; if nonzero, dmenu uses vertical list with given number of lines */
static unsigned int lines = 0; static unsigned int lines = 0;
/*
* Characters not considered part of a word while deleting words
* for example: " /?\"&[]"
*/
static const char worddelimiters[] = " ";

+ 4
- 2
dmenu.c View File

@ -314,9 +314,11 @@ keypress(XKeyEvent *ev)
insert(NULL, 0 - cursor); insert(NULL, 0 - cursor);
break; break;
case XK_w: /* delete word */ case XK_w: /* delete word */
while (cursor > 0 && text[nextrune(-1)] == ' ')
while (cursor > 0 && strchr(worddelimiters,
text[nextrune(-1)]))
insert(NULL, nextrune(-1) - cursor); insert(NULL, nextrune(-1) - cursor);
while (cursor > 0 && text[nextrune(-1)] != ' ')
while (cursor > 0 && !strchr(worddelimiters,
text[nextrune(-1)]))
insert(NULL, nextrune(-1) - cursor); insert(NULL, nextrune(-1) - cursor);
break; break;
case XK_y: /* paste selection */ case XK_y: /* paste selection */


Loading…
Cancel
Save