about summary refs log tree commit diff
path: root/format.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-09-14 18:48:03 -0400
committerJune McEnroe <june@causal.agency>2018-09-14 18:48:03 -0400
commit6aa42b852bc569f7baedc85b74037588777ccbb4 (patch)
treeb97b6f760d1f33f4459fb2fcf54d39ef52cea574 /format.c
parentApply consecutive formatting codes at once (diff)
downloadcatgirl-6aa42b852bc569f7baedc85b74037588777ccbb4.tar.gz
catgirl-6aa42b852bc569f7baedc85b74037588777ccbb4.zip
Remove word handling from formatParse
Diffstat (limited to 'format.c')
-rw-r--r--format.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/format.c b/format.c
index a2aaf4b..02406e3 100644
--- a/format.c
+++ b/format.c
@@ -79,10 +79,8 @@ static void parseColor(struct Format *format) {
 	format->str = &format->str[1 + len];
 }
 
-static const wchar_t Stops[] = {
-	L' ',
-	IRCBold, IRCColor, IRCReverse, IRCReset, IRCItalic, IRCUnderline,
-	L'\0',
+static const wchar_t Codes[] = {
+	IRCBold, IRCColor, IRCReverse, IRCReset, IRCItalic, IRCUnderline, L'\0',
 };
 
 bool formatParse(struct Format *format, const wchar_t *split) {
@@ -110,11 +108,7 @@ bool formatParse(struct Format *format, const wchar_t *split) {
 	}
 	format->split = (split >= init && split <= format->str);
 
-	if (format->str[0] == L' ') {
-		format->len = 1 + wcscspn(&format->str[1], Stops);
-	} else {
-		format->len = wcscspn(format->str, Stops);
-	}
+	format->len = wcscspn(format->str, Codes);
 	if (split > format->str && split < &format->str[format->len]) {
 		format->len = split - format->str;
 	}
@@ -172,6 +166,7 @@ int main() {
 	assert(testColor(L"\00316,16a", IRCDefault, IRCDefault, 6));
 	assert(testColor(L"\00399,99a", IRCDefault, IRCDefault, 6));
 
+	assert(testSplits(L""));
 	assert(testSplits(L"ab"));
 	assert(testSplits(L"\002"));
 	assert(testSplits(L"\002ab"));