commit - 899d86c25715751ba2eb6b328649331c079f3b07
commit + d91e25cb53afcc579f303f2fafb6e534beda78de
blob - edb8d47113d12cde5fa1161072e3d17296431831
blob + 9b2bc1271b80bb9bdac03ecfb32839c5710922fd
--- tog/tog.c
+++ tog/tog.c
struct got_object_id *id;
int ch, done = 0, selected = 0;
struct commit_queue commits;
- struct commit_queue_entry *pentry = NULL;
+ struct commit_queue_entry *entry = NULL;
struct commit_queue_entry *first_displayed_entry = NULL;
struct commit_queue_entry *last_displayed_entry = NULL;
case KEY_UP:
if (selected > 0)
selected--;
+ if (selected != 0)
+ break;
+ /* scroll down if there are more children */
+ entry = TAILQ_FIRST(&commits);
+ if (first_displayed_entry == entry)
+ break;
+ first_displayed_entry =
+ TAILQ_PREV(first_displayed_entry,
+ commit_queue, entry);
break;
case 'j':
case KEY_DOWN:
break;
first_displayed_entry =
TAILQ_NEXT(first_displayed_entry, entry);
- err = fetch_parent_commit(&pentry,
+ err = fetch_parent_commit(&entry,
last_displayed_entry, repo);
if (err)
break;
- if (pentry)
- TAILQ_INSERT_TAIL(&commits, pentry,
+ if (entry)
+ TAILQ_INSERT_TAIL(&commits, entry,
entry);
break;
case KEY_RESIZE: