Smbios: trim spaces

This commit is contained in:
李通洲
2024-01-06 18:33:57 +08:00
parent c0c32456e8
commit 8801921d02
3 changed files with 26 additions and 8 deletions
+16 -8
View File
@@ -249,13 +249,17 @@ void ffStrbufTrimLeft(FFstrbuf* strbuf, char c)
void ffStrbufTrimRight(FFstrbuf* strbuf, char c)
{
if(strbuf->length == 0)
if (strbuf->length == 0)
return;
while(ffStrbufEndsWithC(strbuf, c))
--strbuf->length;
if (!ffStrbufEndsWithC(strbuf, c))
return;
if(strbuf->allocated == 0)
do
--strbuf->length;
while (ffStrbufEndsWithC(strbuf, c));
if (strbuf->allocated == 0)
{
//static string
ffStrbufInitNS(strbuf, strbuf->length, strbuf->chars);
@@ -267,13 +271,17 @@ void ffStrbufTrimRight(FFstrbuf* strbuf, char c)
void ffStrbufTrimRightSpace(FFstrbuf* strbuf)
{
if(strbuf->length == 0)
if (strbuf->length == 0)
return;
while(ffStrbufEndsWithFn(strbuf, isspace))
--strbuf->length;
if (!ffStrbufEndsWithFn(strbuf, isspace))
return;
if(strbuf->allocated == 0)
do
--strbuf->length;
while (ffStrbufEndsWithFn(strbuf, isspace));
if (strbuf->allocated == 0)
{
//static string
ffStrbufInitNS(strbuf, strbuf->length, strbuf->chars);
+1
View File
@@ -3,6 +3,7 @@
bool ffIsSmbiosValueSet(FFstrbuf* value)
{
ffStrbufTrimRightSpace(value);
return
value->length > 0 &&
!ffStrbufStartsWithIgnCaseS(value, "To be filled") &&
+9
View File
@@ -181,6 +181,12 @@ int main(void)
ffStrbufEnsureEndsWithC(&strbuf, '$');
VERIFY(ffStrbufEqualS(&strbuf, "AbCdEfG$"));
//trimRight
ffStrbufTrimRight(&strbuf, '$');
VERIFY(ffStrbufEqualS(&strbuf, "AbCdEfG"));
ffStrbufTrimRight(&strbuf, '$');
VERIFY(ffStrbufEqualS(&strbuf, "AbCdEfG"));
//clear
ffStrbufClear(&strbuf);
VERIFY(strbuf.allocated > 0);
@@ -296,6 +302,9 @@ int main(void)
//ffStrbufCreateStatic / TrimR
ffStrbufInitStatic(&strbuf, "_TEST_");
ffStrbufTrimRight(&strbuf, ' ');
VERIFY(strbuf.allocated == 0);
VERIFY(ffStrbufEqualS(&strbuf, "_TEST_"));
ffStrbufTrimRight(&strbuf, '_');
VERIFY(ffStrbufEqualS(&strbuf, "_TEST"));
VERIFY(strbuf.length == 5);