summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--degesch.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/degesch.c b/degesch.c
index 790ee7b..e01da85 100644
--- a/degesch.c
+++ b/degesch.c
@@ -4000,6 +4000,12 @@ mode_processor_run (struct mode_processor *self,
}
}
+static int
+mode_char_cmp (const void *a, const void *b)
+{
+ return *(const char *) a - *(const char *) b;
+}
+
static void
mode_processor_toggle (struct mode_processor *self, struct str *modes)
{
@@ -4010,7 +4016,7 @@ mode_processor_toggle (struct mode_processor *self, struct str *modes)
if (self->adding)
{
str_append_c (modes, self->mode_char);
- // TODO: sort the modes
+ qsort (modes->str, modes->len, 1, mode_char_cmp);
}
else
str_remove_slice (modes, pos - modes->str, 1);