Make pango markup in mode names optional with a flag.

This introduces the flag "--pango" on the mode config directive to
explicitly enable pango markup for mode names. Not setting this will
cause the mode name to be rendered as is.
This fixes a regression in 4.11 where mode names containing characters
such as '<' would break user's configs as they didn't escape these
characters.

fixes #1992
This commit is contained in:
Ingo Bürk
2015-10-12 23:43:47 +02:00
parent d24964ff6a
commit 82dc747396
9 changed files with 68 additions and 20 deletions

View File

@ -25,7 +25,7 @@ const char *DEFAULT_BINDING_MODE;
*/
Binding *configure_binding(const char *bindtype, const char *modifiers, const char *input_code,
const char *release, const char *border, const char *whole_window,
const char *command, const char *mode);
const char *command, const char *mode, bool pango_markup);
/**
* Grab the bound keys (tell X to send us keypress events for those keycodes)

View File

@ -77,6 +77,7 @@ struct Variable {
*/
struct Mode {
char *name;
bool pango_markup;
struct bindings_head *bindings;
SLIST_ENTRY(Mode) modes;

View File

@ -66,7 +66,7 @@ CFGFUN(new_window, const char *windowtype, const char *border, const long width)
CFGFUN(workspace, const char *workspace, const char *output);
CFGFUN(binding, const char *bindtype, const char *modifiers, const char *key, const char *release, const char *border, const char *whole_window, const char *command);
CFGFUN(enter_mode, const char *mode);
CFGFUN(enter_mode, const char *pango_markup, const char *mode);
CFGFUN(mode_binding, const char *bindtype, const char *modifiers, const char *key, const char *release, const char *border, const char *whole_window, const char *command);
CFGFUN(bar_font, const char *font);