Apply consecutive formatting codes at once
Fixes the failing splits test.weechat-hashes
parent
3cf064a531
commit
b22e008d68
5
format.c
5
format.c
|
@ -97,6 +97,7 @@ bool formatParse(struct Format *format, const wchar_t *split) {
|
|||
}
|
||||
|
||||
const wchar_t *init = format->str;
|
||||
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;
|
||||
|
@ -104,6 +105,8 @@ bool formatParse(struct Format *format, const wchar_t *split) {
|
|||
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"));
|
||||
|
|
Loading…
Reference in New Issue