Commit Briefs
make tog block other keys except Backspace after End/G is pressed
This should avoid unexpected behaviour resulting from unrelated key presses messing with the log view's state variables. Pointed out by tracey, and also discussed with jasper. ok tracey
make tog ignore Ctrl+L and B while loading all commits
Otherwise tog gets into a funky non-recoverable state if these keys are pressed instead of Backspace while commits are loading. bug found by + ok tracey
remove the 'ctrl+u' shortcut in favour of just 'g' as alias for 'Home'
Our use of ctrl+u was not consistent with vi(1) after all. Discussed with naddy, tb, and jasper on gameoftrees@
tog: add support for navigating to first/last item of log and diff views
The keybindings that we settled on are Home, Ctrl-u and g to go to the first item and End, G to go to the last. This resembles those commonly found elsewhere, eg vi/less. discussed with and ok stsp
use gmtime_r(3) instead of localtime_r(3) to display time in UTC as intended
Problem noticed by naddy due to failing regress tests at midnight, and then analyzed with additional help from millert. ok naddy
fix a use-after-free in get_changed_paths() in got and tog
Once the parent commit is closed the tree_id1 pointer is no longer valid, but the pointer was still being used. Make a deep copy to fix this issue.
switch from SIMPLEQ to equivalent STAILQ macros
The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp
Fix strftime(3) short buffer checks
strftime(3) returns 0 if the buffer was too short to write the complete string (including NUL) and will never return more than maxsize-1. ok stsp
tog: fix behaviour when 'n' is pressed before a search was started with '/'
reported by + ok naddy
Add a refs argument to got_repo_match_object_id(), replacing 'resolve_tags'
Make use of this where possible to avoid re-reading references from disk. ok naddy