summaryrefslogtreecommitdiff
path: root/source3/utils/regedit_treeview.c
diff options
context:
space:
mode:
authorC. Davis <cd.rattan@gmail.com>2012-08-11 23:22:06 -0700
committerMichael Adam <obnox@samba.org>2013-04-29 13:06:25 +0200
commitdc119eb9b2881c0f3cf92a0c77fe71411a6a1a13 (patch)
treeaabaf93701bd209520448268fea877ee4619d730 /source3/utils/regedit_treeview.c
parent485af4a785e16b9a219363be50e996e50bca8f77 (diff)
downloadsamba-dc119eb9b2881c0f3cf92a0c77fe71411a6a1a13.tar.gz
samba-dc119eb9b2881c0f3cf92a0c77fe71411a6a1a13.tar.bz2
samba-dc119eb9b2881c0f3cf92a0c77fe71411a6a1a13.zip
regedit: Cut off the front of the path when screen width is too small.
Reviewed-by: Andreas Schneider <asn@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'source3/utils/regedit_treeview.c')
-rw-r--r--source3/utils/regedit_treeview.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/source3/utils/regedit_treeview.c b/source3/utils/regedit_treeview.c
index d19866e684..f0c3bd81f8 100644
--- a/source3/utils/regedit_treeview.c
+++ b/source3/utils/regedit_treeview.c
@@ -371,23 +371,28 @@ void tree_view_resize(struct tree_view *view, int nlines, int ncols,
post_menu(view->menu);
}
-static void print_path_recursive(WINDOW *label, struct tree_node *node)
+static void print_path_recursive(WINDOW *label, struct tree_node *node, size_t *len)
{
if (node->parent)
- print_path_recursive(label, node->parent);
+ print_path_recursive(label, node->parent, len);
wprintw(label, "%s/", node->name);
+ *len += 1 + strlen(node->name);
}
/* print the path of node to label */
-void tree_node_print_path(WINDOW *label, struct tree_node *node)
+size_t tree_node_print_path(WINDOW *label, struct tree_node *node)
{
+ size_t len = 1;
+
if (node == NULL)
- return;
+ return 0;
werase(label);
wprintw(label, "/");
if (node->parent)
- print_path_recursive(label, node->parent);
+ print_path_recursive(label, node->parent, &len);
+
+ return len;
}