Commit Graph

168 Commits (4ca49debb1abc2e7bbde75b92167d0823edbbb07)

Author SHA1 Message Date
C. McEnroe 4ca49debb1 Call uiWrite to insert blank lines
It only used to use different code to avoid adding the blank line to the
soft buffer.
2020-09-07 22:13:09 -04:00
C. McEnroe f0fe44f355 Add C-r, C-s for basic scrollback search 2020-09-06 20:40:29 -04:00
C. McEnroe 49e626b2f3 Add M-n, M-p to jump to highlights 2020-09-03 16:37:31 -04:00
C. McEnroe dbc0c3ef40 Fix M-u behaviour difference before and after reflow 2020-09-03 15:50:39 -04:00
C. McEnroe 0968a8ac7c Recalculate unreadHard on reflow 2020-09-02 21:29:03 -04:00
C. McEnroe a46fbea0ec Give blank lines timestamps
Otherwise the zero timestamps totally break save data loading! Bad!
2020-09-02 19:31:05 -04:00
C. McEnroe 96386adac3 Hide ignored messages at the soft -> hard buffer layer
This restores normal scrolling behaviour.
2020-09-02 18:51:07 -04:00
C. McEnroe 99612ad8eb Still add ignored lines to unreadHard
Scrolling is still affected by hidden lines (which I'm not sure yet is
good or not), so for M-u to work it needs to count ignored lines.
2020-09-02 16:52:57 -04:00
C. McEnroe d00b3d3b70 Actually insert blank lines in the soft buffer
So they can be preserved forever!
2020-09-02 16:29:38 -04:00
C. McEnroe 9679c7474e Reimplement split scrolling 2020-09-02 16:06:34 -04:00
C. McEnroe a0c8a46c75 Fix inserting blank lines BEFORE the new message 2020-09-02 15:57:36 -04:00
C. McEnroe 6fe5368ec7 Only call windowUpdate when the shown window needs updating 2020-09-02 15:50:13 -04:00
C. McEnroe 17898622e3 Call wclear on resize
Otherwise artefects can appear when resizing to smaller width with wide
characters at the right edge of the window.
2020-09-02 02:18:04 -04:00
C. McEnroe a84c9cdda7 Fix line wrapping in various ways
Never split a codepoint, don't set wrapping point unless we're not
already wrapping, wrap on any unicode whitespace, only clear rest of
line if still on the same line...
2020-09-02 01:57:51 -04:00
C. McEnroe 149cafc5ab Render one main window from buffers
Still missing: split scrolling and preserving a blank on reflow either
from resize or ignore toggling.

Anecdata: on one of my instances of catgirl, RAM usage of the previous
release was ~30M, RAM usage of this commit was ~12M.
2020-09-02 00:27:16 -04:00
C. McEnroe 8d1d758053 Invert meaning of unreadHard/unreadSoft to match new buffer code
Not sure why I had named them this way. Hard means hard-wrapped.
2020-09-01 20:56:09 -04:00
C. McEnroe ded2b6afb6 Factor buffer out of ui
In preparation for doing line wrapping outside of ncurses.
2020-09-01 20:36:50 -04:00
C. McEnroe a98fd70aac Move styleParse out of ui 2020-09-01 18:05:17 -04:00
C. McEnroe 814c36223a Say "OpenSSL" in additional permission notices
LibreSSL is "a modified version of that library".
2020-08-04 12:19:14 -04:00
C. McEnroe 4c1b1fc6a3 Replace catf with something that tracks len
Also the old catf would be broken with -DNDEBUG oops!
2020-07-30 14:37:46 -04:00
C. McEnroe ed7d5c0f34 Initialize numHot, numWarm
For some reason gcc thinks that numWarm might be used uninitialized.
It's fine with numHot though, strangely.
2020-07-23 00:22:36 -04:00
C. McEnroe 787771bebb Keep scrolled up windows in status line 2020-07-12 09:38:52 -04:00
C. McEnroe e8f1b928b7 Call static_assert by _Static_assert
OpenBSD assert.h does not #define static_assert, and this is the only
thing that prevents catgirl from compiling without any issues there.
2020-06-11 15:33:59 -04:00
C. McEnroe 721c3a9ee6 Add additional permission for linking with LibreSSL
https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
2020-06-08 17:48:07 -04:00
C. McEnroe 88e2197a8f Don't send zero-width characters to ncurses 2020-05-26 15:18:55 -04:00
C. McEnroe b352f5965b Define constants for window geometry
Also fixes uiDraw so that the split lines and marker don't overlap the
main window, although that wasn't causing any real problems.
2020-05-25 13:51:09 -04:00
C. McEnroe 53f206f7e0 Tweak status line formatting 2020-05-24 12:34:23 -04:00
C. McEnroe d8ef021506 Fix page scrolling distance for SplitLines 2020-05-14 16:56:07 -04:00
C. McEnroe a632ee741b Don't clobber windows.swap in else of showAuto 2020-04-20 16:12:02 -04:00
C. McEnroe 2f5ff45db0 Save last user-selected window to switch back to from M-a 2020-04-19 21:13:02 -04:00
C. McEnroe 98cbb44c0d Add M-= to mute windows 2020-04-15 16:18:09 -04:00
C. McEnroe 470dee97c3 Add status indicator for showing ignored messages 2020-04-15 15:54:55 -04:00
C. McEnroe 9bc52d7238 Add M-< and M-> for scroll to top and bottom
Mirrored by S-Home and S-End but I guess I'm not documenting those...
2020-04-07 14:09:29 -04:00
C. McEnroe 7d62762609 Revert "Add C-o as alias of M-/"
This reverts commit 3a156540b8.

Decided I don't like having two keys do the same thing (other than
"special" keys).
2020-04-07 13:59:54 -04:00
C. McEnroe 83a2fb0d34 Reset unreadSoft only on first unreadHard
Also rename unread{,Lines} to be maybe more clear and disambiguate with
buffer lines.
2020-04-07 11:06:29 -04:00
C. McEnroe e3f7362241 Add M-q to collapse whitespace 2020-04-07 10:48:44 -04:00
C. McEnroe 241fefd976 Add scroll position to status line 2020-04-06 14:34:32 -04:00
C. McEnroe 62a3e3699c Implement split scrolling 2020-04-06 13:46:35 -04:00
C. McEnroe 75a6aa9258 Use gnu-case-range and gnu-conditional-omitted-operand extensions
I'm sad to do this but I just can't stand writing (foo ? foo : bar)
anymore.
2020-04-03 17:10:52 -04:00
C. McEnroe a0f012c614 Do not add an extra blank line on uiLoad
Adding one for the last unread position now, so this is mostly
redundant, I think.
2020-04-02 11:00:05 -04:00
C. McEnroe 9063c656d5 Preserve the last blank line on reflow 2020-04-02 10:56:33 -04:00
C. McEnroe 6333b63224 Switch to windows with ascending unread counts on M-a 2020-04-02 10:47:17 -04:00
C. McEnroe ca751a1cdc Hide filtered messages 2020-03-31 14:31:10 -04:00
C. McEnroe fcb6e2909f Save and load buffer line heat 2020-03-31 14:12:43 -04:00
C. McEnroe bfa106b9a0 Store line heat in buffer 2020-03-31 14:07:21 -04:00
C. McEnroe ff78362826 Replace some declaration; while loops with for loops
I should have been using this for getopt loops already but the call here
is slightly too long to fit on one line as a for loop.
2020-03-30 19:44:45 -04:00
C. McEnroe a0dde10cb6 Add text macros 2020-03-30 14:56:26 -04:00
C. McEnroe ef6518a627 Add M-Enter to insert a newline 2020-03-23 15:03:55 -04:00
C. McEnroe 60b189200e Handle bracketed paste, including newlines 2020-03-23 14:55:43 -04:00
C. McEnroe 8570a62235 Implement the causal.agency/consumer capability 2020-02-29 01:03:46 -05:00