diff options
| -rw-r--r-- | config.def.h | 6 | ||||
| -rw-r--r-- | dmenu.c | 6 | 
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[] = " "; @@ -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 */  |