summary refs log tree commit diff
diff options
context:
space:
mode:
-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;
2020-03-09Replace sys_nsig with NSIGJune McEnroe 2020-03-09Replace 1sh MakefileJune McEnroe 2020-03-09Rename manual pages to 1shJune McEnroe 2020-03-09Move bltin out of subdirectoryJune McEnroe 2020-03-09Import /usr/src/usr.bin/printf from FreeBSD 12.1-RELEASEJune McEnroe 2020-03-09Import /usr/src/bin/test from FreeBSD 12.1-RELEASEJune McEnroe 2020-03-09Import /usr/src/bin/kill from FreeBSD 12.1-RELEASEJune McEnroe 2020-03-09Remove extraneous files from sh sourcesJune McEnroe 2020-03-09Import /usr/src/bin/sh from FreeBSD 12.1-RELEASEJune McEnroe 2020-03-09Remove 1sh sourcesJune McEnroe I'm going to recreate it from fresh sh sources for clean git history. 2020-03-08Add The Stone SkyJune McEnroe 2020-03-08Publish "How I Relay Chat"June McEnroe 2020-03-03Don't use $ inside $(())June McEnroe 2020-03-03Remove setoptJune McEnroe 2020-03-03Use getopts in shell scriptsJune McEnroe WTF why did no one tell me about this? 2020-02-27Style %T outside of Rs in italicJune McEnroe 2020-02-26Add Fierce Femmes and Notorious LiarsJune McEnroe 2020-02-23Add This Is How You Lose the Time WarJune McEnroe 2020-02-22Add See Ya LaterJune McEnroe 2020-02-20Remove wiki scriptJune McEnroe Wikipedia seems to have removed the one-sentence extracts from the opensearch results. Too bad. It's not a wiki script, what we need is a command that fetches single-sentence summaries of articles on Wikipedia. 2020-02-19Add The Obelisk GateJune McEnroe 2020-02-17Add Four Tet — HandsJune McEnroe One from the cafe that caught my attention. 2020-02-12Simplify macOS notify-sendJune McEnroe 2020-02-12Add imbox and notemap to pageJune McEnroe 2020-02-12Collapse simple linksJune McEnroe 2020-02-12Move catgirl up the pageJune McEnroe 2020-02-12Update catgirl pty grabJune McEnroe 2020-02-12Link to cgit /about pages where appropriateJune McEnroe 2020-02-11Separate LINKS from BINS for html to workJune McEnroe 2020-02-11Add margin to Bl-bullet itemsJune McEnroe 2020-02-10Match URLs inside parens or with paired parens insideJune McEnroe 2020-02-10Duplicate effective URL before passing it back to curlJune McEnroe Apparently sometimes it didn't like receiving its own internal storage to parse again. Understandable. 2020-02-09Add To Be Taught, If FortunateJune McEnroe 2020-02-04Add The Future of Another TimelineJune McEnroe Wow. One of the best I've read. 2020-01-31Reorganize the Makefile for the umpteenth timeJune McEnroe Broke out LDLIBS for each bin, and made everything more uniform. 2020-01-28Change scout sensitivity to 1.4June McEnroe idk it seems to work. 2020-01-28Import shows.txtJune McEnroe