summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--handle.c37
1 files changed, 14 insertions, 23 deletions
diff --git a/handle.c b/handle.c
index b4601e4..cf0e853 100644
--- a/handle.c
+++ b/handle.c
@@ -406,34 +406,25 @@ static const char *colorMentions(size_t id, struct Message *msg) {
 	}
 
 	static char buf[1024];
-	size_t len = 0;
+	FILE *str = fmemopen(buf, sizeof(buf), "w");
+	if (!str) err(EX_OSERR, "fmemopen");
+
 	while (*mention) {
 		size_t skip = strspn(mention, ", ");
-		int n = snprintf(
-			&buf[len], sizeof(buf) - len,
-			"%.*s", (int)skip, mention
-		);
-		assert(n >= 0 && len + n < sizeof(buf));
-		len += n;
+		fwrite(mention, skip, 1, str);
 		mention += skip;
 
-		size_t word = strcspn(mention, ", ");
-		char punct = mention[word];
-		mention[word] = '\0';
-
-		n = snprintf(
-			&buf[len], sizeof(buf) - len,
-			"\3%02d%s\3", completeColor(id, mention), mention
-		);
-		assert(n > 0 && len + n < sizeof(buf));
-		len += n;
-
-		mention[word] = punct;
-		mention += word;
+		size_t len = strcspn(mention, ", ");
+		char punct = mention[len];
+		mention[len] = '\0';
+		fprintf(str, "\3%02d%s\3", completeColor(id, mention), mention);
+		mention[len] = punct;
+		mention += len;
 	}
-	assert(len + 1 < sizeof(buf));
-	buf[len++] = final;
-	buf[len] = '\0';
+	fputc(final, str);
+
+	fclose(str);
+	buf[sizeof(buf) - 1] = '\0';
 	return buf;
 }
 
ww/causal.agency/style.css?id=e15ee8179e2ba9ed193087847abf5ee29e5ff2ec&follow=1'>Style causal.agency like bin HTMLJune McEnroe 2021-01-12Avoid matching tag text inside HTML elementsJune McEnroe 2021-01-12Use hilex for up -hJune McEnroe 2021-01-12Use hilex for bin HTMLJune McEnroe 2021-01-12Don't output a pre in hilex by defaultJune McEnroe 2021-01-12Move hilex out of hilex directoryJune McEnroe 2021-01-12Consolidate hilex formatters into hilex.cJune McEnroe 2021-01-12Remove hacky tagging from hilexJune McEnroe 2021-01-12Add htagml -iJune McEnroe 2021-01-12Render tag index in HTMLJune McEnroe 2021-01-12Add htagml -xJune McEnroe 2021-01-12Prevent matching the same tag twiceJune McEnroe 2021-01-12Process htagml file line by lineJune McEnroe 2021-01-12Split fields by tab onlyJune McEnroe 2021-01-12List both Makefile and html.sh under README.7June McEnroe 2021-01-12Add htagml exampleJune McEnroe 2021-01-12Use mandoc and htagml for bin htmlJune McEnroe 2021-01-12Add htagmlJune McEnroe 2021-01-12Replace causal.agency with a simple mdoc pageJune McEnroe 2021-01-11Publish "Using vi"June McEnroe 2021-01-11Enable diff.colorMovedJune McEnroe 2021-01-10Set less search case-insensitiveJune McEnroe 2021-01-10Set EXINITJune McEnroe 2021-01-09Add c -t flag to print expression typeJune McEnroe 2021-01-05Update taglineJune McEnroe