Skip to content

Commit

Permalink
Use all_output_by_name_or_id() in merge_id_on_name()
Browse files Browse the repository at this point in the history
No need to iterate over the outputs manually.
  • Loading branch information
emersion committed Apr 14, 2023
1 parent 8d95638 commit 04904ab
Showing 1 changed file with 11 additions and 17 deletions.
28 changes: 11 additions & 17 deletions sway/config/output.c
Original file line number Diff line number Diff line change
Expand Up @@ -153,28 +153,22 @@ static void merge_wildcard_on_all(struct output_config *wildcard) {
}

static void merge_id_on_name(struct output_config *oc) {
char *id_on_name = NULL;
char id[128];
char *name = NULL;
struct sway_output *output;
wl_list_for_each(output, &root->all_outputs, link) {
name = output->wlr_output->name;
output_get_identifier(id, sizeof(id), output);
if (strcmp(name, oc->name) == 0 || strcmp(id, oc->name) == 0) {
size_t length = snprintf(NULL, 0, "%s on %s", id, name) + 1;
id_on_name = malloc(length);
if (!id_on_name) {
sway_log(SWAY_ERROR, "Failed to allocate id on name string");
return;
}
snprintf(id_on_name, length, "%s on %s", id, name);
break;
}
struct sway_output *output = all_output_by_name_or_id(oc->name);
if (output == NULL) {
return;
}

const char *name = output->wlr_output->name;
char id[128];
output_get_identifier(id, sizeof(id), output);

size_t size = snprintf(NULL, 0, "%s on %s", id, name) + 1;
char *id_on_name = malloc(size);
if (!id_on_name) {
sway_log(SWAY_ERROR, "Failed to allocate id on name string");
return;
}
snprintf(id_on_name, size, "%s on %s", id, name);

int i = list_seq_find(config->output_configs, output_name_cmp, id_on_name);
if (i >= 0) {
Expand Down

0 comments on commit 04904ab

Please sign in to comment.