Files
fastfetch/src/util/FFstrbuf.h
T

93 lines
3.7 KiB
C
Raw Normal View History

2021-03-19 20:57:07 +01:00
#pragma once
#ifndef FASTFETCH_INCLUDED_FFSTRBUF
#define FASTFETCH_INCLUDED_FFSTRBUF
#include <stdint.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
2021-04-03 12:14:25 +02:00
#define FASTFETCH_STRBUF_DEFAULT_ALLOC 32
2021-03-19 20:57:07 +01:00
typedef struct FFstrbuf
{
uint32_t allocated;
uint32_t length;
char* chars;
} FFstrbuf;
#define FF_STRBUF_CREATE(name) FFstrbuf name; ffStrbufInit(&name);
2021-03-19 20:57:07 +01:00
void ffStrbufInit(FFstrbuf* strbuf);
void ffStrbufInitCopy(FFstrbuf* strbuf, const FFstrbuf* src);
2021-03-19 20:57:07 +01:00
void ffStrbufInitS(FFstrbuf* strbuf, const char* value);
void ffStrbufInitNS(FFstrbuf* strbuf, uint32_t length, const char* value);
void ffStrbufInitC(FFstrbuf* strbuf, const char c);
void ffStrbufInitA(FFstrbuf* strbuf, uint32_t allocate);
void ffStrbufInitAS(FFstrbuf* strbuf, uint32_t allocate, const char* value);
void ffStrbufInitANS(FFstrbuf* strbuf, uint32_t allocate, uint32_t length, const char* value);
void ffStrbufInitAC(FFstrbuf* strbuf, uint32_t allocate, const char c);
void ffStrbufInitF(FFstrbuf* strbuf, const char* format, ...);
void ffStrbufInitVF(FFstrbuf* strbuf, const char* format, va_list arguments);
void ffStrbufEnsureCapacity(FFstrbuf* strbuf, uint32_t allocate);
void ffStrbufEnsureFree(FFstrbuf* strbuf, uint32_t free);
void ffStrbufClear(FFstrbuf* strbuf);
void ffStrbufSet(FFstrbuf* strbuf, const FFstrbuf* value);
2021-03-19 20:57:07 +01:00
void ffStrbufSetS(FFstrbuf* strbuf, const char* value);
void ffStrbufSetNS(FFstrbuf* strbuf, uint32_t length, const char* value);
void ffStrbufSetC(FFstrbuf* strbuf, const char c);
void ffStrbufSetF(FFstrbuf* strbuf, const char* format, ...);
void ffStrbufSetVF(FFstrbuf* strbuf, const char* format, va_list arguments);
void ffStrbufAppend(FFstrbuf* strbuf, const FFstrbuf* value);
2021-03-19 20:57:07 +01:00
void ffStrbufAppendS(FFstrbuf* strbuf, const char* value);
void ffStrbufAppendNS(FFstrbuf* strbuf, uint32_t length, const char* value);
void ffStrbufAppendC(FFstrbuf* strbuf, const char c);
void ffStrbufAppendF(FFstrbuf* strbuf, const char* format, ...);
void ffStrbufAppendVF(FFstrbuf* strbuf, const char* format, va_list arguments);
char ffStrbufGetC(FFstrbuf* strbuf, uint32_t index);
void ffStrbufWriteTo(FFstrbuf* strbuf, FILE* file);
2021-03-22 20:02:32 +01:00
void ffStrbufPutTo(FFstrbuf* strbuf, FILE* file);
2021-03-19 20:57:07 +01:00
int ffStrbufComp(FFstrbuf* strbuf, const FFstrbuf* comp);
2021-03-19 20:57:07 +01:00
int ffStrbufCompS(FFstrbuf* strbuf, const char* comp);
int ffStrbufCompNS(FFstrbuf* strbuf, uint32_t length, const char* comp);
int ffStrbufIgnCaseComp(FFstrbuf* strbuf, const FFstrbuf* comp);
2021-03-19 20:57:07 +01:00
int ffStrbufIgnCaseCompS(FFstrbuf* strbuf, const char* comp);
int ffStrbufIgnCaseCompNS(FFstrbuf* strbuf, uint32_t length, const char* comp);
void ffStrbufTrimLeft(FFstrbuf* strbuf, char c);
void ffStrbufTrimRight(FFstrbuf* strbuf, char c);
void ffStrbufTrim(FFstrbuf* strbuf, char c);
2021-03-28 13:02:40 +02:00
void ffStrbufRemoveStrings(FFstrbuf* strbuf, uint32_t numStrings, ...);
2021-03-28 20:09:29 +02:00
uint32_t ffStrbufFirstIndexAfterC(FFstrbuf* strbuf, uint32_t start, const char c);
2021-03-28 15:38:52 +02:00
uint32_t ffStrbufFirstIndexC(FFstrbuf* strbuf, const char c);
2021-03-28 13:02:40 +02:00
uint32_t ffStrbufLastIndexC(FFstrbuf* strbuf, const char c);
2021-04-02 16:21:52 +02:00
void ffStrbufSubstrBefore(FFstrbuf* strbuf, uint32_t index);
void ffStrbufSubstrBeforeFirstC(FFstrbuf* strbuf, const char c);
void ffStrbufSubstrAfter(FFstrbuf* strbuf, uint32_t index);
void ffStrbufSubstrAfterLastC(FFstrbuf* strbuf, const char c);
bool ffStrbufStartsWith(FFstrbuf* strbuf, FFstrbuf* start);
bool ffStrbufStartsWithS(FFstrbuf* strbuf, const char* start);
bool ffStrbufStartsWithNS(FFstrbuf* strbuf, uint32_t length, const char* start);
2021-03-28 13:02:40 +02:00
2021-04-09 19:21:56 +02:00
bool ffStrbufStartsWithIgnCase(FFstrbuf* strbuf, FFstrbuf* start);
bool ffStrbufStartsWithIgnCaseS(FFstrbuf* strbuf, const char* start);
bool ffStrbufStartsWithIgnCaseNS(FFstrbuf* strbuf, uint32_t length, const char* start);
2021-04-05 19:25:34 +02:00
void ffStrbufRecalculateLength(FFstrbuf* strbuf);
2021-03-19 20:57:07 +01:00
void ffStrbufDestroy(FFstrbuf* strbuf);
#endif