Commit Briefs

Mark Jamsek

tog: lock mutex if leaving view_loop() on a script read error

ok stsp@


Mark Jamsek

tog: tweak blame tog_view deallocation fix from 2ca2f982

Both view_close() and close_blame_view() are called from view_loop() irrespective of error, so only call these from cmd_blame() to ensure the tog_view structure is not leaked when open_blame_view() errors. ok stsp@


Mark Jamsek

tog: blame regress and new test framework wait instruction

Basic blame view test required adding the WAIT_FOR_UI instruction to delay screen dumps till the ui has been completely rendered. This will also apply to future test cases such as limited log views and further blame test cases. ok stsp@


Mark Jamsek

tog: rename regress test script envvar

As per stsp's idea: use a more descriptive name, and use the TOG_TEST_SCRIPT envvar both in tog.c and the test scripts. ok stsp@



Mark Jamsek

tog: plug tog_view structure leak on open_*_view() error

ok stsp@


Mark Jamsek

release tog_io regress mock term resources in main()

ok stsp@


Stefan Sperling

make tog regress run with pledge active

ok jamsek


Mark Jamsek

tog: implement automated test harness

Add framework for scripting tog tests by capturing screen dumps to compare with expected output. Includes some preliminary log view tests but lots more tests are needed to cover diff, blame, tree, ref, and help views. ok stsp@


Mark Jamsek

tog: resume blame and diff search from the first line

In diff and blame views, if the user scrolls up during a search, resume search from the first displayed line--not the current match. This makes sense in these views as the "cursor" or current line is the first line. Patch by Mikhail. ok op@


Omar Polo

include sha2.h too where sha1.h is included

In preparation for wide sha256 support; stsp@ agrees. Change done mechanically with find . -iname \*.[cy] -exec sam {} + X ,x/<sha1\.h>/i/\n#include <sha2.h>


Mark Jamsek

fix tog diff between arbitrary commits

Don't assume commit info is always written. This is only true when diffing a commit against (one of) its direct parent(s). Otherwise we perform an invalid read on a tmp got_diff_line array and end up passing bogus offsets to fseeko(). Bug found and fixed by stsp with a minor tweak by me. ok jamsek for stsp's initial diff ok stsp@


Omar Polo

got/tog/gotadmin: pledge earlier

In the case of tog move setlocale(3) before pledge(2), as suggested by stsp. ok stsp@


Mark Jamsek

tog: reset 1 second refresh rate after starting search

This fixes an issue reported by Mikhail where CPU usage continuously increases if search is started after the refresh rate has dropped from 100ms to 1s by resetting the 1s refresh rate if search is started after fast initialisation has finished. This is not needed in limit_log_view() because the 1s refresh rate is reset in draw_commits() once the screen is redrawn (i.e., commits_needed == 0). Tested by and based on initial patch from Mikhail. ok stsp@


Mark Jamsek

tog: add horizontal scroll support to the tree view

Suggested by op. tog now supports hscroll in all views so move corresponding keymap docs in tog(1) to global space (this was already the case in tog runtime help). While here, remove some copypasta with a new subroutine to handle hscroll input. ok op@ and stsp@