Commit Briefs

Tracey Emery

Fix for cc1: warnings being treated as errors

/home/got/src/got/tog/tog.c: In function 'draw_tree_entries': /home/got/src/got/tog/tog.c:7307: warning: comparisons like X<=3DY<=3DZ do = not have their mathematical meaning


Omar Polo

avoid strlen in for(;;)

ok jamsek, stsp


Omar Polo

got, tog: correctly skip HEAD in build_refs_str()

s[strlen(s)] == '\0' is banally always true, the intent was to not skip refs that starts with "HEAD". style nit / ok stsp@


Stefan Sperling

fix refs_str memory leaks

Pointed out by op@


Stefan Sperling

rework how reference labels are rendered in the tog log view

Draw reference labels and log message as separate strings. The previous code contained calculations mixing variables which represent an amount of wide characters in a string vs the display width of the string. We can avoid such nonsense by keeping the strings separate, though we have to be a bit careful about keeping horizontal scrolling intact. Also fix a bug where we failed to account for reference labels while setting view->maxx which made the $ key not scroll far enough. ok op@


Omar Polo

typo: character -> characters


Stefan Sperling

stop showing backup references in the tog log and diff views

Backup references clutter the log view too much now that we display labels next to commit messages. They were accidentally added to the log and diffs view by me, via build_refs_str(), when support for listing backup references was added to the ref view.


Stefan Sperling

fix 'tog log' display regression with long reference lists

When the terminal becomes smaller horizontally we did not properly account for remaining columns and the log message of a commit could overflow into the next line, garbling the display.



Omar Polo

tog: fix segfault in draw_commit

build_refs_str() can succeed returning a NULL string if a commit has some refs pointing to it but that were all filtered out, resulting in a NULL-deref. ok stsp@


Omar Polo

simplify previous; avoid temporary string

blind ok stsp@


Stefan Sperling

show reference labels next to commit messages in tog log view

requested by mpi@ ok op@


Mark Jamsek

tog regress: TAB instruction + test for diff J keymap

Add the TAB instruction to the test harness, and a test case for the previous commit: scroll down the log from the diff view with the J keymap when on the last loaded commit. ok stsp@


Mark Jamsek

tog: resize log view if toggling fullscreen from child view

We call resize_log_view() when toggling 'F'ullscreen from the log view, but forgot to do this when toggling fullscreen from a child view if its parent is the log view. This fixes a bug that prevents scrolling down the log view from the diff view with the J keymap if already on the last loaded commit. Regress test in the following commit. ok stsp@


Omar Polo

tog: mark HSPLIT_SCALE as float; unbreak regress on i386

On i386 view_split_begin_y() computed a value slightly different than on other arches, breaking the regress. Casting HSPLIT_SCALE as float unbreaks it. Diff from jamsek, committing on his behalf. Thanks!


Omar Polo

tog: open screendump file early during regress

we can't open arbitrary files after unveil(), and that's a feature! So, open it early and truncate it before use just in case screendump() ends up being called more than once. ok/tweak stsp, ok jamsek


Omar Polo

tog: don't check whether stdin is a tty during regress

ok stsp, jamsek


Omar Polo

tog: don't open /dev/tty during regress

as it might not be there (for e.g. if ran under cron). Reuse instead /dev/null since it's not expected to get input from stdin. ok jamsek


Christian Weisgerber

tog: always use alternate charset for vertical/horizontal line

ncurses(3) will use the line drawing characters from the VT100 alternate graphics character set if the terminal supports this as indicated by termcap/terminfo, otherwise it will fall back to ASCII replacement characters. ok jamsek stsp


Mark Jamsek

tog: teach test harness to count and basic tree tests

Add count instruction to the test harness to simulate count modifier compound keys (e.g., 11j), and add basic tests for the tree view. ok stsp@


Mark Jamsek

tog regress: zap needless defines and use "vt220" TERM

Also, overwrite - and | unconditionally when capturing screen dumps, and unset TOG_COLORS and TOG_DIFF_ALGORITHM in regress setup. All tweaks suggested by naddy@ ok stsp@


Mark Jamsek

tog regress: use pthread conditions for wait instruction

As suggested by stsp, rather than busy wait in the view loop, use pthread conditions to wait for the blame thread to signal completion before drawing the screen. We can add more conditions for other views when needed, but by keeping the general WAIT_FOR_UI instruction and flag, this should make their use context-dependent so we won't need more test harness WAIT_* instructions. ok stsp@


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@