Disk: Linux impl working

This commit is contained in:
Linus Dierheimer
2022-10-17 13:19:48 +02:00
parent 973eb8127e
commit 19a9b18c69
16 changed files with 301 additions and 166 deletions
+6
View File
@@ -8,6 +8,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <assert.h>
#include <stdlib.h>
#define FF_LIST_DEFAULT_ALLOC 16
@@ -39,4 +40,9 @@ static inline void* ffListGet(const FFlist* list, uint32_t index)
return list->data + (index * list->elementSize);
}
static inline void ffListSort(FFlist* list, int(*compar)(const void*, const void*))
{
qsort(list->data, list->length, list->elementSize, compar);
}
#endif
+12
View File
@@ -155,6 +155,18 @@ void ffStrbufAppendVF(FFstrbuf* strbuf, const char* format, va_list arguments)
strbuf->chars[strbuf->length] = '\0';
}
void ffStrbufAppendSUntilC(FFstrbuf* strbuf, const char* value, char until)
{
if(value == NULL)
return;
char* end = strchr(value, until);
if(end == NULL)
ffStrbufAppendS(strbuf, value);
else
ffStrbufAppendNS(strbuf, (uint32_t) (end - value), value);
}
void ffStrbufSetF(FFstrbuf* strbuf, const char* format, ...)
{
assert(format != NULL);
+6
View File
@@ -45,6 +45,7 @@ void ffStrbufAppendNSExludingC(FFstrbuf* strbuf, uint32_t length, const char* va
void ffStrbufAppendTransformS(FFstrbuf* strbuf, const char* value, int(*transformFunc)(int));
FF_C_PRINTF(2, 3) void ffStrbufAppendF(FFstrbuf* strbuf, const char* format, ...);
void ffStrbufAppendVF(FFstrbuf* strbuf, const char* format, va_list arguments);
void ffStrbufAppendSUntilC(FFstrbuf* strbuf, const char* value, char until);
void ffStrbufPrependNS(FFstrbuf* strbuf, uint32_t length, const char* value);
@@ -147,6 +148,11 @@ static inline int ffStrbufComp(const FFstrbuf* strbuf, const FFstrbuf* comp)
return memcmp(strbuf->chars, comp->chars, length + 1);
}
static inline int ffStrbufCompAlphabetically(const FFstrbuf* strbuf, const FFstrbuf* comp)
{
return strcmp(strbuf->chars, comp->chars);
}
static inline FF_C_NODISCARD bool ffStrbufEqual(const FFstrbuf* strbuf, const FFstrbuf* comp)
{
return ffStrbufComp(strbuf, comp) == 0;