From c8ce79007b27fbc40cc77616e85a59c3bc728fa3 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 1 Mar 2024 11:20:38 -0800 Subject: [PATCH] psppire: Sort by name or label case-insensitively in dictionary view. Thanks to Elio Spinello for reporting the bug. --- src/ui/gui/psppire-dictview.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ui/gui/psppire-dictview.c b/src/ui/gui/psppire-dictview.c index e5d12693c..61c52b7da 100644 --- a/src/ui/gui/psppire-dictview.c +++ b/src/ui/gui/psppire-dictview.c @@ -115,7 +115,7 @@ sort_by_name (GtkTreeModel *model, gtk_tree_model_get (model, a, DICT_TVM_COL_VAR, &var_a, -1); gtk_tree_model_get (model, b, DICT_TVM_COL_VAR, &var_b, -1); - gint rval = g_strcmp0 (var_get_name (var_a), var_get_name (var_b)); + gint rval = utf8_strverscasecmp (var_get_name (var_a), var_get_name (var_b)); var_unref (var_a); var_unref (var_b); @@ -136,7 +136,13 @@ sort_by_label (GtkTreeModel *model, gtk_tree_model_get (model, a, DICT_TVM_COL_VAR, &var_a, -1); gtk_tree_model_get (model, b, DICT_TVM_COL_VAR, &var_b, -1); - gint rval = g_strcmp0 (var_get_label (var_a), var_get_label (var_b)); + const char *name_a = var_get_name (var_a); + const char *name_b = var_get_name (var_b); + const char *label_a = var_get_label (var_a); + const char *label_b = var_get_label (var_b); + + gint rval = utf8_strverscasecmp (label_a ? label_a : name_a, + label_b ? label_b : name_b); var_unref (var_a); var_unref (var_b); -- 2.11.4.GIT