Commit Graph

20 Commits (4b26ae23cd24cc59d6d387a4e2d9cea7a8812318)

Author SHA1 Message Date
C. McEnroe 52c58128c8 Add numbers to buffer lines
This directly correlates hard-wrapped lines with the soft lines
they were wrapped from.

Choosing uint here because it doesn't change the size of struct
Line. It doesn't at all matter since buffers only hold 1024 lines
at a time anyway.
2021-01-26 22:14:12 -05:00
C. McEnroe 609c9bd0ac Do not copy time to wrapped lines 2021-01-25 17:23:17 -05:00
C. McEnroe bc29082f9d Remove use of "%n" to appease de Raadt
Sure, it was completely unnecessary, but I resent being told how
to use snprintf.

https://cvsweb.openbsd.org/src/lib/libc/stdio/vfprintf.c?rev=1.79&content-type=text/x-cvsweb-markup
2021-01-23 12:34:30 -05:00
C. McEnroe d05872303e Generalize ignore toggling to visibility threshold 2021-01-16 12:58:16 -05:00
C. McEnroe bf70fcbfed Count width of 2 for invalid multibyte with high bit 2021-01-09 17:28:42 -05:00
C. McEnroe 3b54425ec1 Collapse whitespace while wrapping and discard trailing space
The latter avoids an extra blank line when a message ends with
whitespace that hits the edge of the window.
2021-01-04 14:28:37 -05:00
C. McEnroe 53f23942a4 Clear wrapping point at alignment tab
This fixes odd wrapping when a nick contains a hyphen and there are no
further wrapping points.
2020-10-09 22:52:44 -04:00
C. McEnroe b2de129e3f Copy style from wrapping point
This fixes a bug when wrapping on a word with style changes inside it,
where the copied style would be different depending on the width of the
terminal.
2020-09-11 19:12:42 -04:00
C. McEnroe 9513542c6d Include DEL in characters ncurses will print in ^A form 2020-09-08 14:54:51 -04:00
C. McEnroe 172d01a668 Let wrapped lines use the last column 2020-09-07 17:51:09 -04:00
C. McEnroe 05f94f1b8b Handle non-alignment tabs in line wrapping 2020-09-06 22:43:50 -04:00
C. McEnroe 0968a8ac7c Recalculate unreadHard on reflow 2020-09-02 21:29:03 -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 16737d4edc Preserve style after alignment
This makes wrapping text with background colour look much better.
2020-09-02 17:08:21 -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 1563eb7d56 Don't consider the alignment tab a wrapping point 2020-09-02 15:48:47 -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 4dc87ab9cd Implement buffer line wrapping
Not yet rendered in the UI! Just done in parallel.
2020-09-01 22:54:26 -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