commit - 80ee46039aad5490fab4f020f562d807f8e9f6b4
commit + dfc1d240864e4b31fed0d15b829dc86a45b808c5
blob - 7f8c1b8136bc76376e52533c1c368364ac8da0d8
blob + d8bdfb1478a2cc082beeb058cb703b14a959463c
--- tog/tog.c
+++ tog/tog.c
scroll_up(&first_displayed_entry, 1, &commits);
break;
case KEY_PPAGE:
+ if (TAILQ_FIRST(&commits) ==
+ first_displayed_entry) {
+ selected = 0;
+ break;
+ }
scroll_up(&first_displayed_entry, LINES,
&commits);
- selected = 0;
break;
case 'j':
case KEY_DOWN:
break;
case KEY_NPAGE:
nparents = num_parents(first_displayed_entry);
+ if (nparents < LINES - 1 &&
+ selected < nparents - 1) {
+ selected = nparents - 1;
+ break;
+ }
err = scroll_down(&first_displayed_entry,
MIN(nparents, LINES), last_displayed_entry,
&commits, repo);
if (err)
goto done;
nparents = num_parents(first_displayed_entry);
- selected = MIN(nparents, LINES) - 1;
+ if (selected > nparents)
+ selected = nparents - 1;
break;
case KEY_RESIZE:
if (selected > LINES)