summary refs log tree commit diff
diff options
context:
space:
mode:
-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';
span title='2018-02-07 12:07:01 -0500'>2018-02-07Exit by returning false from input to gf{b,cocoa}June McEnroe 2018-02-07Rename title to status in gfcocoaJune McEnroe 2018-02-06Require 4 bit counts on gfxx command lineJune McEnroe 2018-02-06Add gfxx controls for custom bitsJune McEnroe 2018-02-06Add gfxx palette loading and dumpingJune McEnroe 2018-02-06Add tags targetJune McEnroe 2018-02-06Replace gfxx SCALE macro with interp functionJune McEnroe 2018-02-05Rename gfxx space indexed and add palette samplingJune McEnroe 2018-02-05Take scale into account for when to stop drawing in gfxxJune McEnroe 2018-02-05Always skip most significant bits in gfxxJune McEnroe 2018-02-05Set title in gfcocoaJune McEnroe 2018-02-05Double-buffer gfb frontendJune McEnroe 2018-02-05Rewrite gfxx bit handlingJune McEnroe 2018-02-05Add flip option to gfxxJune McEnroe 2018-02-05Remove gfxx reverse optionJune McEnroe 2018-02-04Fix gfxx draw stop conditionJune McEnroe 2018-02-04Reuse CGColorSpace and CGDataProvider in gfcocoaJune McEnroe 2018-02-04Mark mac target phonyJune McEnroe 2018-02-04Set up Makefile for gfxx-cocoa or gfxx-fbJune McEnroe 2018-02-04Avoid doing excessive work in gfxxJune McEnroe 2018-02-04Handle window resizing in gfcocoaJune McEnroe 2018-02-04Set cinoptionsJune McEnroe 2018-02-04Tweak colorscheme moreJune McEnroe 2018-02-04Color MatchParen DarkYellowJune McEnroe 2018-02-04Add palette sampling to gfxxJune McEnroe 2018-02-04Add 4-bit RGB to gfxxJune McEnroe 2018-02-04Add Quit menu item to gfcocoaJune McEnroe 2018-02-04Switch back to sane Objective-C styleJune McEnroe 2018-02-04Quit gfcocoa when window closesJune McEnroe 2018-02-03Apparently this is how people write Objective-CJune McEnroe