summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ui.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/ui.c b/ui.c
index 5b7ef5e..fd9bfab 100644
--- a/ui.c
+++ b/ui.c
@@ -563,6 +563,19 @@ static int wordWidth(const char *str) {
 	return width;
 }
 
+// XXX: ncurses likes to render zero-width characters as spaces...
+static int waddnstrnzw(WINDOW *win, const char *str, int len) {
+	wchar_t wc;
+	while (len) {
+		int n = mbtowc(&wc, str, len);
+		if (n < 1) return waddnstr(win, str, len);
+		if (wcwidth(wc)) waddnstr(win, str, n);
+		str += n;
+		len -= n;
+	}
+	return OK;
+}
+
 static int wordWrap(WINDOW *win, const char *str) {
 	int y, x, width;
 	getmaxyx(win, y, width);
@@ -601,7 +614,7 @@ static int wordWrap(WINDOW *win, const char *str) {
 			colorPair(Colors[style.fg], Colors[style.bg]),
 			NULL
 		);
-		waddnstr(win, str, len);
+		waddnstrnzw(win, str, len);
 		str += len;
 	}
 	return lines;
w=1'>Clean up htmlHeaderJune McEnroe 2019-02-18Remove hi line numberingJune McEnroe 2019-02-18Add Tag class to hiJune McEnroe 2019-02-17Generate HTML with hi -n -f html -o anchorJune McEnroe 2019-02-17Add hi -f html -o anchor for line number linksJune McEnroe 2019-02-17Simplify temp trap in upJune McEnroe 2019-02-17Add line numbers to hiJune McEnroe 2019-02-17Always split spans after newlinesJune McEnroe 2019-02-15Color format specifiers light cyan in vimJune McEnroe 2019-02-15Highlight Interp as yellowJune McEnroe 2019-02-15Highlight strings in sh command substitutionsJune McEnroe 2019-02-15Add nmap gpJune McEnroe 2019-02-14Avoid newline when copying URL to pasteboardJune McEnroe 2019-02-13Add forgotten "sixth" book of H2G2June McEnroe