Commit Briefs



Thomas Adam

tog: refactor key map -> new view initialisation

Deduplicate view initialisation boilerplate and simplify new key map view requests with dispatch routine. Includes improvements suggested by stsp. ok stsp@


Thomas Adam

tog: uppercase alpha key maps that open new views

ok stsp@


Thomas Adam

tog: reset view->offset when clearing log view state

Don't move the selection cursor due to a bogus offset after closing child views following use of 'B', C-l, and backspace log view key maps. ok stsp@


Thomas Adam

tog: use view->resize idiom to ensure log is populated

Replace view->mode == TOG_VIEW_LOG checks for requesting commits to populate the log view with calls to view->resize(). ok stsp@


Thomas Adam

tog: populate new child view log lines when switching split

When switching a child log view from a h- to a v-split, new log lines are empty. Rather than (mis)trace height and (not) call request_log_commits(), let resize_log_view() do the math and request commits if needed to draw new lines. ok op@


Thomas Adam

Do not ignore error from format_author().

Found by llvm's scan-build (dead store). OK stsp


Thomas Adam

tog: blame view keymap to open log of annotated line

As per stsp's TODO item: open a log view of the selected line with 'L'. helped by and ok stsp@


Thomas Adam

tog: alias J and K to > and < keybindings for diff view

Use J and K to move to the next and previous commits, respectively, when the diff is loaded from the log or blame views. Patch by Mikhail ok stsp@


Thomas Adam

tog: add key to toggle author/committer in log view

improvements and ok by jamsek and stsp


Thomas Adam

tog: always request commits if log height is increased

Includes style improvements prompted by stsp. Previously, we would only call request_log_commits() when terminal height is increased in a splitscreen view. This fixes the case when a log view with no children is resized that can lead to empty lines: $ tog # 80x24 23j # move down to the last commit *increase terminal height to ~30 lines then reduce back to 80x24* ~5j # move down to the _last_ commit *increase terminal height to ~33 lines* *new lines are empty* ok stsp@


Thomas Adam

portable: add back sys/queue.h

Now that the handling of including sys/queue.h is better, there's no need to remove those lines from the source. Copy the location of those original sys/queue.h lines from upstream at the same line number, so as to avoid any conflicts in the future.


Thomas Adam

style(9) whitespace fix


Thomas Adam

tog: fix sticky "loading..." status in log view hsplit

Don't request commits if the log has completed loading all commits. While here, ensure the correct parent/child view requests commits when resizing a hsplit. Reported by stsp: $ tog S # switch into hsplit mode G # move to bottom and load all commits Enter # open a diff showing the initial import commit - # shrink the diff view by one line; alternatively use + to grow it *log status stuck with "loading..." in the header* ok stsp@


Thomas Adam

tog: only request commits when child hsplit increases

Fix bug introduced in 3c1dfe12b3 that fails to properly populate child log views due to incorrect request_log_commits() calls: (1) when increasing the bottom hsplit in a ref/log splitscreen; and (2) when reopening a child log view after closing a resized child log view: $ TOG_VIEW_SPLIT_MODE=h tog ref return # open log view in bottom split 4+ # increase log (child/bottom) split *new log lines are not populated* q # close log view return *commits are not loaded* ok stsp@


Thomas Adam

tog: adjust view line offset when resizing hsplit

Squish bug that can move the selection cursor offscreen when resizing horizontal splits due to bogus offset: $ TOG_VIEW_SPLIT_MODE=h tog # 80x24 22j return # open diff view in a hsplit tab # focus log (top) split 10+ # increase top split by 10 lines 22j return # open diff view in a hsplit F # toggle fullscreen diff view tab # focus log (parent) view in fullscreen *selection cursor will be off the bottom of the screen* ok stsp@


Thomas Adam

tog: enable moving to prev/next blame line in diff view

Blame/diff view counterpart of log/diff <,.> key maps to traverse commits corresponding to each line of the annotated file from the diff view. Includes fix from stsp@ to work while the file is still annotating. ok stsp@


Thomas Adam

tog: make 'S' switch split mode irrespective of the view

Always switch internal split state and redraw view according to the constraints of the new mode. suggested by and ok stsp@



Thomas Adam

portable: remove stale comments

Remove comments which are no longer required.


Thomas Adam

tog: implement +/- keymaps to resize the focussed split

Increase/decrease the currently active split. New dimensions persist for the tog session, irrespective of subsequent closures and new child views. suggested by and ok stsp@


Thomas Adam

tog: implement global 'S' key map to switch split mode

If in a vertical (horizontal) split, switch to horizontal (vertical), and make new split mode persist. ok op@


Thomas Adam

tog: add C-g/backspace key map to abort compound cmds

Problem reported by stsp: 9999j would tie up tog till completed. While here, trim trailing whitespace in tog.1 and make C-g alias existing backspace abort key map for search and G in log view. ok op@ and stsp@


Thomas Adam

tog: expand horizontal split support to all views

With this, hsplits are now available to the same parent/child view combinations as vsplits. Includes OB1 log truncation fix from op@ that was reported by stsp. ok stsp@