diff options
author | C. Davis <cd.rattan@gmail.com> | 2012-08-11 23:22:06 -0700 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2013-04-29 13:06:25 +0200 |
commit | dc119eb9b2881c0f3cf92a0c77fe71411a6a1a13 (patch) | |
tree | aabaf93701bd209520448268fea877ee4619d730 /source3/utils/regedit_treeview.c | |
parent | 485af4a785e16b9a219363be50e996e50bca8f77 (diff) | |
download | samba-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.c | 15 |
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; } |