diff options
Diffstat (limited to 'swaynag/main.c')
-rw-r--r-- | swaynag/main.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/swaynag/main.c b/swaynag/main.c index 4a785f40..542e3472 100644 --- a/swaynag/main.c +++ b/swaynag/main.c | |||
@@ -63,9 +63,7 @@ int main(int argc, char **argv) { | |||
63 | } | 63 | } |
64 | 64 | ||
65 | if (argc > 1) { | 65 | if (argc > 1) { |
66 | struct swaynag_type *type_args; | 66 | struct swaynag_type *type_args = swaynag_type_new("<args>"); |
67 | type_args = calloc(1, sizeof(struct swaynag_type)); | ||
68 | type_args->name = strdup("<args>"); | ||
69 | list_add(types, type_args); | 67 | list_add(types, type_args); |
70 | 68 | ||
71 | int result = swaynag_parse_options(argc, argv, &swaynag, types, | 69 | int result = swaynag_parse_options(argc, argv, &swaynag, types, |
@@ -86,15 +84,14 @@ int main(int argc, char **argv) { | |||
86 | swaynag.type = swaynag_type_get(types, "error"); | 84 | swaynag.type = swaynag_type_get(types, "error"); |
87 | } | 85 | } |
88 | 86 | ||
89 | // Construct a new type using the config defaults as base, then merging | 87 | // Construct a new type with the defaults as the base, the general config |
90 | // config type defaults on top, then merging arguments on top of that, and | 88 | // on top of that, followed by the type config, and finally any command |
91 | // finally merging defaults on top. | 89 | // line arguments |
92 | struct swaynag_type *type = calloc(1, sizeof(struct swaynag_type)); | 90 | struct swaynag_type *type = swaynag_type_new(swaynag.type->name); |
93 | type->name = strdup(swaynag.type->name); | ||
94 | swaynag_type_merge(type, swaynag_type_get(types, "<args>")); | ||
95 | swaynag_type_merge(type, swaynag.type); | ||
96 | swaynag_type_merge(type, swaynag_type_get(types, "<config>")); | ||
97 | swaynag_type_merge(type, swaynag_type_get(types, "<defaults>")); | 91 | swaynag_type_merge(type, swaynag_type_get(types, "<defaults>")); |
92 | swaynag_type_merge(type, swaynag_type_get(types, "<config>")); | ||
93 | swaynag_type_merge(type, swaynag.type); | ||
94 | swaynag_type_merge(type, swaynag_type_get(types, "<args>")); | ||
98 | swaynag.type = type; | 95 | swaynag.type = type; |
99 | 96 | ||
100 | swaynag_types_free(types); | 97 | swaynag_types_free(types); |