aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
Diffstat (limited to 'sway')
-rw-r--r--sway/commands.c12
-rw-r--r--sway/config.c8
2 files changed, 14 insertions, 6 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 3d882a7b..f6d9b947 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -219,7 +219,7 @@ static struct cmd_results *cmd_bindsym(int argc, char **argv) {
}
binding->order = binding_order++;
list_add(mode->bindings, binding);
- list_sort(mode->bindings, sway_binding_cmp);
+ list_qsort(mode->bindings, sway_binding_cmp_qsort);
sway_log(L_DEBUG, "bindsym - Bound %s to command %s", argv[0], binding->command);
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
@@ -1255,9 +1255,9 @@ static struct cmd_results *cmd_scratchpad(int argc, char **argv) {
}
// sort in order of longest->shortest
-static int compare_set(const void *_l, const void *_r) {
- struct sway_variable const *l = _l;
- struct sway_variable const *r = _r;
+static int compare_set_qsort(const void *_l, const void *_r) {
+ struct sway_variable const *l = *(void **)_l;
+ struct sway_variable const *r = *(void **)_r;
return strlen(r->name) - strlen(l->name);
}
@@ -1284,7 +1284,7 @@ static struct cmd_results *cmd_set(int argc, char **argv) {
var = malloc(sizeof(struct sway_variable));
var->name = strdup(argv[0]);
list_add(config->symbols, var);
- list_sort(config->symbols, compare_set);
+ list_qsort(config->symbols, compare_set_qsort);
}
var->value = join_args(argv + 1, argc - 1);
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
@@ -1620,7 +1620,7 @@ static struct cmd_results *bar_cmd_bindsym(int argc, char **argv) {
list_del(bar->bindings, i);
}
list_add(bar->bindings, binding);
- list_sort(bar->bindings, sway_mouse_binding_cmp);
+ list_qsort(bar->bindings, sway_mouse_binding_cmp_qsort);
sway_log(L_DEBUG, "bindsym - Bound %s to command %s when clicking swaybar", argv[0], binding->command);
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
diff --git a/sway/config.c b/sway/config.c
index 4b1bf01a..e86eda53 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -642,6 +642,10 @@ int sway_binding_cmp(const void *a, const void *b) {
return lenient_strcmp(binda->command, bindb->command);
}
+int sway_binding_cmp_qsort(const void *a, const void *b) {
+ return sway_binding_cmp(*(void **)a, *(void **)b);
+}
+
void free_sway_binding(struct sway_binding *binding) {
if (binding->keys) {
for (int i = 0; i < binding->keys->length; i++) {
@@ -675,6 +679,10 @@ int sway_mouse_binding_cmp(const void *a, const void *b) {
return lenient_strcmp(binda->command, bindb->command);
}
+int sway_mouse_binding_cmp_qsort(const void *a, const void *b) {
+ return sway_mouse_binding_cmp(*(void **)a, *(void **)b);
+}
+
void free_sway_mouse_binding(struct sway_mouse_binding *binding) {
if (binding->command) {
free(binding->command);