bar config: fall back to the i3 font (Thanks pl)

next
Michael Stapelberg 2011-10-25 20:50:57 +01:00
parent 35bd2d27c0
commit 8660ae4e12
1 changed files with 11 additions and 1 deletions

View File

@ -15,6 +15,10 @@ static pid_t configerror_pid = -1;
static Match current_match;
static Barconfig current_bar;
/* The pattern which was specified by the user, for example -misc-fixed-*. We
* store this in a separate variable because in the i3 config struct we just
* store the i3Font. */
static char *font_pattern;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
extern int yylex(struct context *context);
@ -611,6 +615,7 @@ void parse_file(const char *f) {
yylex_destroy();
FREE(context->line_copy);
free(context);
FREE(font_pattern);
free(new);
free(buf);
@ -996,6 +1001,10 @@ bar:
*(x++) = (rand() % 26) + 'a';
}
/* If no font was explicitly set, we use the i3 font as default */
if (!current_bar.font)
current_bar.font = sstrdup(font_pattern);
/* Copy the current (static) structure into a dynamically allocated
* one, then cleanup our static one. */
Barconfig *bar_config = scalloc(sizeof(Barconfig));
@ -1526,7 +1535,8 @@ font:
{
config.font = load_font($2, true);
printf("font %s\n", $2);
free($2);
FREE(font_pattern);
font_pattern = $2;
}
;