Common (Format): adds | for center aligning

This commit is contained in:
Carter Li
2026-06-02 16:03:04 +08:00
parent 3c59161aca
commit c20b532c7a
2 changed files with 22 additions and 3 deletions
+8 -3
View File
@@ -614,7 +614,7 @@ static bool parseFormatString(FFstrbuf* buffer, const FFstrbuf* formatstr, uint3
char* pSep = placeholderValue.chars;
char cSep = '\0';
while (*pSep && *pSep != ':' && *pSep != '<' && *pSep != '>' && *pSep != '~') {
while (*pSep && *pSep != ':' && *pSep != '<' && *pSep != '>' && *pSep != '|' && *pSep != '~') {
++pSep;
}
if (*pSep) {
@@ -717,12 +717,17 @@ static bool parseFormatString(FFstrbuf* buffer, const FFstrbuf* formatstr, uint3
} else if (cSep == ':') {
ffStrbufAppend(buffer, &tempString);
} else {
if (cSep == '<') {
if (cSep == '<') { // left align
ffStrbufAppend(buffer, &tempString);
ffStrbufAppendNC(buffer, (uint32_t) truncLength - tempString.length, ' ');
} else {
} else if (cSep == '>') { // right align
ffStrbufAppendNC(buffer, (uint32_t) truncLength - tempString.length, ' ');
ffStrbufAppend(buffer, &tempString);
} else if (cSep == '|') { // center align
uint32_t padding = ((uint32_t) truncLength - tempString.length) / 2;
ffStrbufAppendNC(buffer, padding, ' ');
ffStrbufAppend(buffer, &tempString);
ffStrbufAppendNC(buffer, (uint32_t) truncLength - tempString.length - padding, ' ');
}
}
+14
View File
@@ -62,6 +62,18 @@ int main(void) {
VERIFY("output({>})", "12345 67890", "output()");
}
{
VERIFY("output({1|20})", "12345 67890", "output( 12345 67890 )");
VERIFY("output({1|-20})", "12345 67890", "output( 12345 67890 )");
VERIFY("output({1|11})", "12345 67890", "output(12345 67890)");
VERIFY("output({1|-11})", "12345 67890", "output(12345 67890)");
VERIFY("output({1|6})", "12345 67890", "output(12345 )");
VERIFY("output({|6})", "12345 67890", "output(12345 )");
VERIFY("output({|-6})", "12345 67890", "output(12345…)");
VERIFY("output({|0})", "12345 67890", "output()");
VERIFY("output({|})", "12345 67890", "output()");
}
{
VERIFY("output({1n>20})", "12345 67890", "output({1n>20})");
VERIFY("output({120})", "12345 67890", "output({120})");
@@ -123,6 +135,8 @@ int main(void) {
VERIFY("output({1<8})", "\e[1m12345\e[m", "output(\e[1m12345 \e[m)");
VERIFY("output({1>8})", "\e[1m12345\e[m", "output(\e[1m 12345\e[m)");
VERIFY("output({1<1})", "\e[30;47m12345\e[m", "output(\e[30;47m1\e[m)");
VERIFY("output({1|8})", "\e[1m12345\e[m", "output(\e[1m 12345 \e[m)");
VERIFY("output({1|1})", "\e[30;47m12345\e[m", "output(\e[30;47m1\e[m)");
}
{