regedit: sort keys
authorChris Davis <cd.rattan@gmail.com>
Thu, 22 May 2014 00:08:06 +0000 (17:08 -0700)
committerMichael Adam <obnox@samba.org>
Wed, 1 Oct 2014 12:32:08 +0000 (14:32 +0200)
Signed-off-by: Chris Davis <cd.rattan@gmail.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
source3/utils/regedit_treeview.c

index f2241e65f4b4836b576cd7f9a7faae1e444158cb..cfcf5f25001bd4e2318336a44dd2b5fd00da6734 100644 (file)
@@ -236,6 +236,16 @@ void tree_view_clear(struct tree_view *view)
        view->current_items = NULL;
 }
 
+static int item_comp(ITEM **a, ITEM **b)
+{
+       struct tree_node *nodea, *nodeb;
+
+       nodea = item_userptr(*a);
+       nodeb = item_userptr(*b);
+
+       return strcmp(nodea->name, nodeb->name);
+}
+
 WERROR tree_view_update(struct tree_view *view, struct tree_node *list)
 {
        ITEM **items;
@@ -273,6 +283,8 @@ WERROR tree_view_update(struct tree_view *view, struct tree_node *list)
                set_item_userptr(items[i], node);
        }
 
+       TYPESAFE_QSORT(items, n_items, item_comp);
+
        unpost_menu(view->menu);
        set_menu_items(view->menu, items);
        tree_view_free_current_items(view->current_items);