Commits


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


remove the 'ctrl+u' shortcut in favor of just 'g' in the diff view, too


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@


Allow commit loading trigged by the End/G keys to be cancelled with Backspace. ok jasper


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.


plug a small memory leak in tog's show_diff_view() function


remove now unused variable in browse_ref_tree() I overlooked; patch by naddy


fix a double-free that ocurred upon exit from 'tog tree'; found by naddy


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


check for close(2) error in got_repo_close() and propagate errors up ok tracey


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


make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere ok millert, naddy


fix 'tog blame' segfault upon empty input file; reported by + ok naddy


tog log: terminate author field at '>' in case there is no '@' ok stsp


rename got_reflist_object_map_free to got_reflist_object_id_map_free


remove a comment that is now misleading


switch reflist to TAILQ; insert elements more efficiently for sorted input ok naddy


switch the "tog <path>" log view shortcut to the global reference list, too ok stsp


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


switch tog ref view to the global reference list as well ok naddy


make tog store refs and object id map in global variables instead of per view ok naddy