commit - dbc6a6b63b4f1e83c808f7ba4bc97e6ecee4d8ab
commit + 1d13200f8a8ab8929fe6d2dc708a53ae0cfad026
blob - 624b5bc632f99eed653b437584a9e045ab91f7a7
blob + a6da1a5c409244e3d0c4adb4956b89a85c98c388
--- tog/tog.c
+++ tog/tog.c
draw_tree_entries(struct got_tree_entry **first_displayed_entry,
struct got_tree_entry **last_displayed_entry,
struct got_tree_entry **selected_entry, int *ndisplayed,
- WINDOW *window, const char *label, const char *parent_path,
+ WINDOW *window, const char *label, int show_ids, const char *parent_path,
const struct got_tree_entries *entries, int selected, int limit, int isroot)
{
const struct got_error *err = NULL;
}
while (te) {
- char *line = NULL;
- if (asprintf(&line, " %s%s",
- te->name, S_ISDIR(te->mode) ? "/" : "") == -1)
+ char *line = NULL, *id_str = NULL;
+
+ if (show_ids) {
+ err = got_object_id_str(&id_str, te->id);
+ if (err)
+ return got_error_from_errno();
+ }
+ if (asprintf(&line, "%s %s%s", id_str ? id_str : "",
+ te->name, S_ISDIR(te->mode) ? "/" : "") == -1) {
+ free(id_str);
return got_error_from_errno();
+ }
+ free(id_str);
err = format_line(&wline, &width, line, COLS);
if (err) {
free(line);
struct got_repository *repo)
{
const struct got_error *err = NULL;
- int ch, done = 0, selected = 0;
+ int ch, done = 0, selected = 0, show_ids = 0;
struct got_tree_object *tree = root;
const struct got_tree_entries *entries;
struct got_tree_entry *first_displayed_entry = NULL;
err = draw_tree_entries(&first_displayed_entry,
&last_displayed_entry, &selected_entry, &ndisplayed,
- tog_tree_view.window, tree_label, parent_path, entries,
- selected, LINES, tree == root);
+ tog_tree_view.window, tree_label, show_ids,
+ parent_path, entries, selected, LINES, tree == root);
free(parent_path);
if (err)
break;
case 'q':
done = 1;
break;
+ case 'i':
+ show_ids = !show_ids;
+ break;
case 'k':
case KEY_UP:
if (selected > 0)