sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 0327c999d7f69de6356b3b30c19b131d029f6e95
parent 7b9ae42331e49fea0f566fa7592855dee5da1991
Author: Brian Ashworth <bosrsf04@gmail.com>
Date:   Sat, 16 Mar 2019 22:45:06 -0400

config/output: handle wildcard in get_output_config

In #3916, I overlooked that `get_output_config` does not handle
wildcards unless the config is reloading, which is a remnant of older
iterations of the output config handling that went unnoticed due to
`output_find_config` handling it. With the current version of the
output config handling, having `get_output_config` handle wildcard
configs is actually preferable. This fixes having only a wildcard
output config in the config file or when connecting/enabling a new
output with only a wildcard config existing.

Diffstat:
Msway/config/output.c | 19++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/sway/config/output.c b/sway/config/output.c @@ -493,19 +493,20 @@ static struct output_config *get_output_config(char *identifier, free(result->name); result->name = strdup(identifier); merge_output_config(result, oc_id); - } else if (config->reloading) { - // Neither config exists, but we need to reset the output so create a - // default config for the output and if a wildcard config exists, merge - // that on top - free(result->name); - result->name = strdup("*"); + } else { i = list_seq_find(config->output_configs, output_name_cmp, "*"); if (i >= 0) { + // No name or identifier config, but there is a wildcard config + free(result->name); + result->name = strdup("*"); merge_output_config(result, config->output_configs->items[i]); + } else if (!config->reloading) { + // No name, identifier, or wildcard config. Since we are not + // reloading with defaults, the output config will be empty, so + // just return NULL + free_output_config(result); + result = NULL; } - } else { - free_output_config(result); - result = NULL; } free(id_on_name);