summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-09 17:28:42 -0500
committerJune McEnroe <june@causal.agency>2021-01-09 17:28:42 -0500
commitbf70fcbfedbe544a7e8dd1f444e8abe1bbd31da1 (patch)
tree3d4015a131f569b19b520f7c955bd231f649ecec
parentUse execl rather than execlp for shell (diff)
downloadcatgirl-bf70fcbfedbe544a7e8dd1f444e8abe1bbd31da1.tar.gz
catgirl-bf70fcbfedbe544a7e8dd1f444e8abe1bbd31da1.zip
Count width of 2 for invalid multibyte with high bit
-rw-r--r--buffer.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/buffer.c b/buffer.c
index 15d89f8..bdf9e3a 100644
--- a/buffer.c
+++ b/buffer.c
@@ -123,17 +123,18 @@ static int flow(struct Lines *hard, int cols, const struct Line *soft) {
 		int n = mbtowc(&wc, str, len);
 		if (n < 0) {
 			n = 1;
-			width++;
+			// ncurses will render these as "~A".
+			width += (*str & '\200' ? 2 : 1);
 		} else if (wc == ZWS || wc == ZWNJ) {
-			// XXX: ncurses likes to render these as spaces when they should be
+			// ncurses likes to render these as spaces when they should be
 			// zero-width, so just remove them entirely.
 			memmove(str, &str[n], strlen(&str[n]) + 1);
 			continue;
 		} else if (wc == L'\t') {
-			// XXX: Assuming TABSIZE = 8.
+			// Assuming TABSIZE = 8.
 			width += 8 - (width % 8);
 		} else if (wc < L' ' || wc == L'\177') {
-			// XXX: ncurses will render these as "^A".
+			// ncurses will render these as "^A".
 			width += 2;
 		} else if (wcwidth(wc) > 0) {
 			width += wcwidth(wc);
2021-02-07 17:35:57 -0500'>2021-02-07Add bindings for brightness controlJune McEnroe Weirdly the Fn key doesn't change how the F row registers... I wonder if I can do something about that. 2021-02-07Set X key repeat rateJune McEnroe 2021-02-07Bump font size to 12June McEnroe 11 is what I use on macOS, but I feel like my eyes are working harder here. 2021-02-07Fully configure and rebind cwmJune McEnroe This is sort of a mix of trying to emulate macOS somewhat for my muscle memory and just rebinding some of the cwm defaults to use 4- rather than M-. 2021-02-07Add BintiJune McEnroe 2021-02-07Finish configuring xtermJune McEnroe 2021-02-06Enable tapping, reverse scroll, set scaling in wsconsctlJune McEnroe 2021-02-06Set root window to black on purple snowJune McEnroe 2021-02-06Add xmodmap configurationJune McEnroe 2021-02-06Add initial OpenBSD X configurationJune McEnroe cwm still needs a lot more rebinding, and I need to actually look at its other options. xterm definitely still needs some configuration, but I at least managed to get it to use a decent looking font. Very happy that OpenBSD includes Luxi Mono, which is what my usual font, Go Mono, is based on anyway. Still missing is xmodmap and such. 2021-02-06Add xterm output to schemeJune McEnroe