mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-30 00:37:23 +01:00
FFstrbuf: add new methods ffStrbufPrependC and ffStrbufInsertNC
This commit is contained in:
@@ -211,6 +211,14 @@ void ffStrbufPrependNS(FFstrbuf* strbuf, uint32_t length, const char* value)
|
||||
strbuf->length += length;
|
||||
}
|
||||
|
||||
void ffStrbufPrependC(FFstrbuf* strbuf, char c)
|
||||
{
|
||||
ffStrbufEnsureFree(strbuf, 1);
|
||||
memmove(strbuf->chars + 1, strbuf->chars, strbuf->length + 1); // + 1 for the null byte
|
||||
strbuf->chars[0] = c;
|
||||
strbuf->length += 1;
|
||||
}
|
||||
|
||||
void ffStrbufSetNS(FFstrbuf* strbuf, uint32_t length, const char* value)
|
||||
{
|
||||
ffStrbufClear(strbuf);
|
||||
@@ -511,3 +519,15 @@ void ffStrbufLowerCase(FFstrbuf* strbuf)
|
||||
for (uint32_t i = 0; i < strbuf->length; ++i)
|
||||
strbuf->chars[i] = (char) tolower(strbuf->chars[i]);
|
||||
}
|
||||
|
||||
void ffStrbufInsertNC(FFstrbuf* strbuf, uint32_t index, uint32_t num, char c)
|
||||
{
|
||||
if(num == 0) return;
|
||||
if (index >= strbuf->length)
|
||||
index = strbuf->length;
|
||||
|
||||
ffStrbufEnsureFree(strbuf, num);
|
||||
memmove(strbuf->chars + index + num, strbuf->chars + index, strbuf->length - index + 1);
|
||||
memset(&strbuf->chars[index], c, num);
|
||||
strbuf->length += num;
|
||||
}
|
||||
|
||||
@@ -47,6 +47,9 @@ void ffStrbufAppendVF(FFstrbuf* strbuf, const char* format, va_list arguments);
|
||||
const char* ffStrbufAppendSUntilC(FFstrbuf* strbuf, const char* value, char until);
|
||||
|
||||
void ffStrbufPrependNS(FFstrbuf* strbuf, uint32_t length, const char* value);
|
||||
void ffStrbufPrependC(FFstrbuf* strbuf, char c);
|
||||
|
||||
void ffStrbufInsertNC(FFstrbuf* strbuf, uint32_t index, uint32_t num, char c);
|
||||
|
||||
void ffStrbufSetNS(FFstrbuf* strbuf, uint32_t length, const char* value);
|
||||
void ffStrbufSet(FFstrbuf* strbuf, const FFstrbuf* value);
|
||||
|
||||
Reference in New Issue
Block a user