summary refs log tree commit diff
path: root/handle.c
diff options
context:
space:
mode:
Diffstat (limited to 'handle.c')
-rw-r--r--handle.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/handle.c b/handle.c
index 708acc7..fd2a67f 100644
--- a/handle.c
+++ b/handle.c
@@ -490,19 +490,16 @@ static bool isMention(const struct Message *msg) {
 }
 
 static const char *colorMentions(size_t id, struct Message *msg) {
-	char *mention;
-	char final;
-	if (strchr(msg->params[1], ':')) {
-		mention = strsep(&msg->params[1], ":");
-		final = ':';
-	} else if (strchr(msg->params[1], ' ')) {
-		mention = strsep(&msg->params[1], " ");
-		final = ' ';
-	} else {
-		mention = msg->params[1];
-		msg->params[1] = "";
-		final = '\0';
+	char *split = strchr(msg->params[1], ':');
+	if (!split) split = strchr(msg->params[1], ' ');
+	if (!split) split = &msg->params[1][strlen(msg->params[1])];
+	for (char *ch = msg->params[1]; ch < split; ++ch) {
+		if (iscntrl(*ch)) return "";
 	}
+	char delimit = *split;
+	char *mention = msg->params[1];
+	msg->params[1] = (delimit ? &split[1] : split);
+	*split = '\0';
 
 	static char buf[1024];
 	FILE *str = fmemopen(buf, sizeof(buf), "w");
@@ -520,7 +517,7 @@ static const char *colorMentions(size_t id, struct Message *msg) {
 		mention[len] = punct;
 		mention += len;
 	}
-	fputc(final, str);
+	fputc(delimit, str);
 
 	fclose(str);
 	buf[sizeof(buf) - 1] = '\0';
2022-02-20Use separate edit buffers for each IDJune McEnroe 2022-02-20Make sure new cap is actually larger than new lengthJune McEnroe 2022-02-20Remove unused mbs.len field from struct EditJune McEnroe 2022-02-19Remove unneeded includes in ui.cJune McEnroe 2022-02-19Reimplement tab completeJune McEnroe 2022-02-19Handle errors from editFn, etc.June McEnroe 2022-02-19Reimplement text macrosJune McEnroe 2022-02-19Factor out input handling to input.cJune McEnroe 2022-02-19Factor out window management to window.cJune McEnroe 2022-02-19Enable -Wmissing-prototypesJune McEnroe 2022-02-19Fix edit.[ch] license notice additional permissionsJune McEnroe 2022-02-19Run line editing testsJune McEnroe 2022-02-18Implement new line editing "library"June McEnroe 2022-02-18Simplify cursor positioning in inputJune McEnroe 2022-02-18Fix M-f orderingJune McEnroe 2022-02-12Move sandman build to scripts/MakefileJune McEnroe 2022-02-12Use compat_readpassphrase.c on LinuxJune McEnroe 2022-02-12Copy RPP defines from oconfigureJune McEnroe