Commits


fix refs_str memory leaks Pointed out by op@


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@


typo: character -> characters


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.


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.


relax build_refs_str to allow a NULL reflist, simplifes the callers ok stsp@


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@


simplify previous; avoid temporary string blind ok stsp@


show reference labels next to commit messages in tog log view requested by mpi@ ok op@


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@


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@


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!


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


tog: don't check whether stdin is a tty during regress ok stsp, jamsek


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