summaryrefslogtreecommitdiffstats
path: root/source3/utils/regedit_treeview.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/utils/regedit_treeview.c')
-rw-r--r--source3/utils/regedit_treeview.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source3/utils/regedit_treeview.c b/source3/utils/regedit_treeview.c
index f2241e65f4..cfcf5f2500 100644
--- a/source3/utils/regedit_treeview.c
+++ b/source3/utils/regedit_treeview.c
@@ -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);