summary refs log tree commit diff
path: root/www
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-09-26 13:00:12 -0400
committerJune McEnroe <june@causal.agency>2021-09-26 16:53:21 -0400
commit69ea054270bc43c00937015b78378de9dc649602 (patch)
tree062df05f1174456c9961b6b003b65b2aecf38fc5 /www
parentInstall up to cgi-bin (diff)
downloadsrc-69ea054270bc43c00937015b78378de9dc649602.tar.gz
src-69ea054270bc43c00937015b78378de9dc649602.zip
Use tiny UTF-8-aware col -b replacement
OpenBSD col(1) doesn't understand UTF-8 and will delete all of it.
Stupid, especially when mandoc(1) tells you to use it to remove man
formatting. I shouldn't have to write something so trivial.
Diffstat (limited to 'www')
-rw-r--r--www/text.causal.agency/.gitignore1
-rw-r--r--www/text.causal.agency/Makefile6
-rw-r--r--www/text.causal.agency/colb.c16
3 files changed, 20 insertions, 3 deletions
diff --git a/www/text.causal.agency/.gitignore b/www/text.causal.agency/.gitignore
index 8fe3acc9..66b3e637 100644
--- a/www/text.causal.agency/.gitignore
+++ b/www/text.causal.agency/.gitignore
@@ -1,3 +1,4 @@
 *.txt
+colb
 feed.atom
 igp
diff --git a/www/text.causal.agency/Makefile b/www/text.causal.agency/Makefile
index be1a4f1b..cf0207ff 100644
--- a/www/text.causal.agency/Makefile
+++ b/www/text.causal.agency/Makefile
@@ -30,12 +30,12 @@ TXTS += 024-seprintf.txt
 TXTS += 025-v6-pwd.txt
 TXTS += 026-git-comment.txt
 
-all: ${TXTS}
+all: colb ${TXTS}
 
 .SUFFIXES: .7 .txt
 
 .7.txt:
-	mandoc -T utf8 $< | col -bx > $@
+	mandoc -T utf8 $< | ./colb > $@
 
 feed.atom: feed.sh ${TXTS}
 	sh feed.sh > feed.atom
@@ -43,7 +43,7 @@ feed.atom: feed.sh ${TXTS}
 clean:
 	rm -f ${TXTS} feed.atom igp
 
-install: ${TXTS} feed.atom
+install: colb ${TXTS} feed.atom
 	install -p -m 644 ${TXTS} feed.atom ${WEBROOT}
 
 install-igp: igp
diff --git a/www/text.causal.agency/colb.c b/www/text.causal.agency/colb.c
new file mode 100644
index 00000000..5faabc3a
--- /dev/null
+++ b/www/text.causal.agency/colb.c
@@ -0,0 +1,16 @@
+#include <locale.h>
+#include <stdio.h>
+#include <wchar.h>
+int main(void) {
+	setlocale(LC_CTYPE, "en_US.UTF-8");
+	wint_t next, prev = WEOF;
+	while (WEOF != (next = getwchar())) {
+		if (next == L'\b') {
+			prev = WEOF;
+		} else {
+			if (prev != WEOF) putwchar(prev);
+			prev = next;
+		}
+	}
+	if (prev != WEOF) putwchar(prev);
+}
nt/server error messagesJune McEnroe 2019-10-27Add reload cmd to rc scriptJune McEnroe Using daemon(8) makes this way more awkward than it should be. 2019-10-27Reload certificate on SIGUSR1June McEnroe 2019-10-27Drop clients on zero-length readsJune McEnroe 2019-10-27Explicitly tls_handshake new clientsJune McEnroe This prevents a client connecting, sending nothing, and getting blocked in tls_read immediately. 2019-10-26Document rationaleJune McEnroe 2019-10-26Handle nick collisionJune McEnroe 2019-10-26Wait for AUTHENTICATE + from serverJune McEnroe 2019-10-26Respond to PING with same parameterJune McEnroe 2019-10-26Add undocumented flag to disable verificationJune McEnroe 2019-10-26Do not require RPL_ISUPPORT for stateReadyJune McEnroe 2019-10-26Implement graceful shutdownJune McEnroe 2019-10-26Require PASS before USERJune McEnroe Prevent creating a ring consumer without authentication. 2019-10-26Track channel topicsJune McEnroe 2019-10-26Set AWAY when no clients are connectedJune McEnroe 2019-10-26Add flags to request TOPIC and NAMES on client connectJune McEnroe 2019-10-26OopsJune McEnroe 2019-10-26Disconnect client on unknown commandJune McEnroe During registration, no other commands should be sent. Afterwards, only intercepted commands will get parsed. 2019-10-26Allow reading sensitive information from filesJune McEnroe 2019-10-26Add rc scriptJune McEnroe 2019-10-25Add install and uninstall targetsJune McEnroe 2019-10-25Expand documentationJune McEnroe 2019-10-25Add AGPLv3 notice on client registrationJune McEnroe OwO 2019-10-25Rename project pounceJune McEnroe