summary refs log tree commit diff
diff options
context:
space:
mode:
authorpara <para@danwin1210.de>2024-03-01 17:13:39 +0200
committerJune McEnroe <june@causal.agency>2024-03-21 21:38:43 -0400
commit492b7f7b9406b8e460c4a64aed45c70a8a8e152d (patch)
tree5bbdb937d987852702e494ec8fa4eabc53fc1583
parentBe specific about which file is at an unexpected end (diff)
downloadcatgirl-2.2a.tar.gz
catgirl-2.2a.zip
Fix style character handling bug 2.2a
In some ncurses implementations[1], waddnstr returns ERR when len is 0.
This happens in styleAdd() whenever there is a sequence of more than 1
style character in a row.

This may result in visual bugs, the most notable of which is being
unable to see the messages that mention you (due to the "\26\3"
sequence).

In order to properly handle multiple style characters in a row, waddnstr
should only be called when len is greater than 0.

Tested on Alpine Linux, using the official ncurses package.
[1]https://invisible-island.net/ncurses
-rw-r--r--window.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/window.c b/window.c
index 00041aa..f700fd7 100644
--- a/window.c
+++ b/window.c
@@ -147,6 +147,7 @@ static int styleAdd(WINDOW *win, struct Style init, const char *str) {
 	struct Style style = init;
 	while (*str) {
 		size_t len = styleParse(&style, &str);
+		if (!len) continue;
 		wattr_set(win, uiAttr(style), uiPair(style), NULL);
 		if (waddnstr(win, str, len) == ERR)
 			return -1;
colspan='3' class='logmsg'> 2019-02-22Show status window while connectingJune McEnroe 2019-02-22Reorganize UI code for the umpteenth timeJune McEnroe It's actually in a good state now, I think. 2019-02-21Replace "view" with "window"June McEnroe I think originally I didn't want to use the same word as curses WINDOW but it's really much clearer for the user if they're just called windows. UI code probably needs yet another rewrite though. Still feels messy. 2019-02-21Remove ROT13June McEnroe It's just not convenient when it can only do the whole line... 2019-02-21Clean up man pageJune McEnroe 2019-01-26Draw UI before connectingJune McEnroe Otherwise the "Traveling" message isn't visible while connecting. 2019-01-25Avoid unused variable warnings with getyxJune McEnroe 2019-01-25Add GNU/Linux build instructionsJune McEnroe