summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--format.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/format.c b/format.c
index 8120165..a2aaf4b 100644
--- a/format.c
+++ b/format.c
@@ -97,13 +97,16 @@ bool formatParse(struct Format *format, const wchar_t *split) {
 	}
 
 	const wchar_t *init = format->str;
-	switch (format->str[0]) {
-		break; case IRCBold:      format->str++; format->bold ^= true;
-		break; case IRCItalic:    format->str++; format->italic ^= true;
-		break; case IRCUnderline: format->str++; format->underline ^= true;
-		break; case IRCReverse:   format->str++; format->reverse ^= true;
-		break; case IRCColor:     format->str++; parseColor(format);
-		break; case IRCReset:     format->str++; formatReset(format);
+	for (bool done = false; !done;) {
+		switch (format->str[0]) {
+			break; case IRCBold:      format->str++; format->bold ^= true;
+			break; case IRCItalic:    format->str++; format->italic ^= true;
+			break; case IRCUnderline: format->str++; format->underline ^= true;
+			break; case IRCReverse:   format->str++; format->reverse ^= true;
+			break; case IRCColor:     format->str++; parseColor(format);
+			break; case IRCReset:     format->str++; formatReset(format);
+			break; default:           done = true;
+		}
 	}
 	format->split = (split >= init && split <= format->str);
 
@@ -170,8 +173,10 @@ int main() {
 	assert(testColor(L"\00399,99a", IRCDefault, IRCDefault, 6));
 
 	assert(testSplits(L"ab"));
+	assert(testSplits(L"\002"));
 	assert(testSplits(L"\002ab"));
 	assert(testSplits(L"a\002b"));
+	assert(testSplits(L"\002\003"));
 	assert(testSplits(L"a\002\003b"));
 	assert(testSplits(L"a\0031b"));
 	assert(testSplits(L"a\00312b"));
p;follow=1'>Add downgrade IRC botJune McEnroe 2021-09-14Sort by title if authors matchJune McEnroe There are probably better things to sort by but title definitely always exists. 2021-09-13Swap-remove tags as they're foundJune McEnroe This makes it even faster. From ~1s on a sqlite3.c amalgamation to ~0.85s. 2021-09-12Replace htagml regex with strncmpJune McEnroe Since ctags only ever produces regular expressions of the form /^re$/ or /^re/ with no other special characters, instead unescape the pattern and simply use strncmp. Running on a sqlite3.c amalgamation, the regex version takes ~37s while the strncmp version takes ~1s, producing identical output. Big win! 2021-09-11Also defer printing comment for lone close-parensJune McEnroe 2021-09-10Publish "git-comment"June McEnroe 2021-09-10Add git comment --pretty optionJune McEnroe 2021-09-08Defer printing comment if line is blank or closing braceJune McEnroe This fixes badly indented comments. 2021-09-08Up default min-repeat to 30 linesJune McEnroe 2021-09-08Handle dirty lines in git-commentJune McEnroe 2021-09-08Document and install git-commentJune McEnroe 2021-09-08Add repeat and all options to git-commentJune McEnroe 2021-09-08Add group threshold to git-commentJune McEnroe