diff options
author | emersion <[email protected]> | 2018-11-28 17:13:24 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2018-11-28 17:13:24 +0100 |
commit | ef18745951873025ec7fc44bd6987c39c3bdd0d7 (patch) | |
tree | c6af192b469e6cf86ee00cb5d0ab4e03a98bacae /sway/config.c | |
parent | a22d0c0ff60469d57de733bb767333d5b222df2d (diff) | |
parent | e5f90f25d755b19151dfcfd98790c1bad3eb8068 (diff) |
Merge pull request #3202 from RedSoxFan/swaynag-config-warnings
Introduce a way to show config warnings in swaynag
Diffstat (limited to 'sway/config.c')
-rw-r--r-- | sway/config.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/sway/config.c b/sway/config.c index ed288060..46322374 100644 --- a/sway/config.c +++ b/sway/config.c @@ -700,6 +700,8 @@ bool read_config(FILE *file, struct sway_config *config, free(line); return false; } + config->current_config_line_number = line_number; + config->current_config_line = line; struct cmd_results *res; if (block && strcmp(block, "<commands>") == 0) { // Special case @@ -761,10 +763,36 @@ bool read_config(FILE *file, struct sway_config *config, } list_foreach(stack, free); list_free(stack); + config->current_config_line_number = 0; + config->current_config_line = NULL; return success; } +void config_add_swaynag_warning(char *fmt, ...) { + if (config->reading && !config->validating) { + va_list args; + va_start(args, fmt); + size_t length = vsnprintf(NULL, 0, fmt, args) + 1; + va_end(args); + + char *temp = malloc(length + 1); + if (!temp) { + wlr_log(WLR_ERROR, "Failed to allocate buffer for warning."); + return; + } + + va_start(args, fmt); + vsnprintf(temp, length, fmt, args); + va_end(args); + + swaynag_log(config->swaynag_command, &config->swaynag_config_errors, + "Warning on line %i (%s) '%s': %s", + config->current_config_line_number, config->current_config_path, + config->current_config_line, temp); + } +} + char *do_var_replacement(char *str) { int i; char *find = str; |