Commit Briefs
tog: clear search highlighting when reloading view
Clear the search highlighting when replacing the content of a diff view ('<', '>', '[', ']', 'a', 'w') or a blame view ('b', 'p', 'B'). Previously the position would remain highlighted even if the text there had changed. ok stsp@ or a blame view
switch tog ref view's sort order command key to "o" instead of "s"
The letter "o" does not overlap with existing options of 'got ref' and is also used by mutt(1) for this purpose.
implement 'got diff -c' for diffing commits with optional filtering by path
Need for filtering by path sugggested by kn@ ok naddy@
portable: tog: add back _XOPEN_SOURCE_EXTENDED
As with OpenBSD, FreeBSD requires that _XOPEN_SOURCE_EXTENDED is defined before including <ncurses.h>, otherwise things break. On other systems (Linux), _XOPEN_SOURCE_EXTENDED is already defined, so leaving that declared unconditionally throws an error. Keep the definition, but only include it on !Linux systems. Issue reported by Christian "naddy" Weisgerber
tog: make blame view work
Fix the thread comparison with tog's blame view.
ncurses: only look for widechar version
When checking for ncurses, only check against the widechar version of the library, otherwise the code won't work correctly, despite it compiling properly. Helped by Thomas Dickey.
portable: initial Linux compilation
This commit modifies the GoT main branch to be able to compile it under linux.
tog: use sched_yield(2) instead of pthread_yield(3) for portability
pthread_yield(3) is an optional POSIX 2001 extension while sched_yield(2) is part of POSIX 2008. On OpenBSD they are actually equivalent, albeit not documented as such. Using sched_yield(2) helps the -portable version. Patch by Quentin Rameau
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