From 791d6bc10ec81d08324807211d968d7e37110f0b Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sun, 10 Mar 2024 15:08:10 +0200 Subject: Remove Bob the String-Builder Seeing as dynarr.h already exists, there is no real use for Bob the String-Builder. It was *a bit* nice because of the generic u8strpush() macro, but it should be very easy to implement yourself, and you only really ever need 1 or 2 specific functions that are a few lines of code each. --- lib/bob/u8strfit.c | 9 --------- lib/bob/u8strfree.c | 9 --------- lib/bob/u8strgrow.c | 39 --------------------------------------- lib/bob/u8strinit.c | 16 ---------------- lib/bob/u8strpushr.c | 11 ----------- lib/bob/u8strpushstr.c | 9 --------- lib/bob/u8strpushu8.c | 14 -------------- 7 files changed, 107 deletions(-) delete mode 100644 lib/bob/u8strfit.c delete mode 100644 lib/bob/u8strfree.c delete mode 100644 lib/bob/u8strgrow.c delete mode 100644 lib/bob/u8strinit.c delete mode 100644 lib/bob/u8strpushr.c delete mode 100644 lib/bob/u8strpushstr.c delete mode 100644 lib/bob/u8strpushu8.c (limited to 'lib') diff --git a/lib/bob/u8strfit.c b/lib/bob/u8strfit.c deleted file mode 100644 index 332a5d7..0000000 --- a/lib/bob/u8strfit.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#include "bob.h" - -struct u8str * -u8strfit(struct u8str *b) -{ - return (b->p = realloc(b->p, b->len)) ? b : nullptr; -} diff --git a/lib/bob/u8strfree.c b/lib/bob/u8strfree.c deleted file mode 100644 index 7e25ca8..0000000 --- a/lib/bob/u8strfree.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#include "bob.h" - -void -u8strfree(struct u8str b) -{ - free(b.p); -} diff --git a/lib/bob/u8strgrow.c b/lib/bob/u8strgrow.c deleted file mode 100644 index f1f86d3..0000000 --- a/lib/bob/u8strgrow.c +++ /dev/null @@ -1,39 +0,0 @@ -#include - -#include "bob.h" - -static size_t nextpow2(size_t); - -struct u8str * -u8strgrow(struct u8str *b, size_t n) -{ - if (n > b->cap) { - b->cap = nextpow2(n); - if (!(b->p = realloc(b->p, b->cap))) - return nullptr; - } - return b; -} - -size_t -nextpow2(size_t x) -{ -#if defined(__has_builtin) && __has_builtin(__builtin_clzl) - x = x <= 1 ? 1 : 1 << (64 - __builtin_clzl(x - 1)); -#else - if (x) { - x--; - x |= x >> 1; - x |= x >> 2; - x |= x >> 4; - x |= x >> 8; - if (sizeof(size_t) >= 4) - x |= x >> 16; - if (sizeof(size_t) >= 8) - x |= x >> 32; - } - x++; -#endif - - return x; -} diff --git a/lib/bob/u8strinit.c b/lib/bob/u8strinit.c deleted file mode 100644 index 60423c1..0000000 --- a/lib/bob/u8strinit.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -#include "bob.h" - -struct u8str * -u8strinit(struct u8str *b, size_t n) -{ - if (n) { - if (!(b->p = malloc(n))) - return nullptr; - } else - b->p = nullptr; - b->len = 0; - b->cap = n; - return b; -} diff --git a/lib/bob/u8strpushr.c b/lib/bob/u8strpushr.c deleted file mode 100644 index 6fe5fd9..0000000 --- a/lib/bob/u8strpushr.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "bob.h" -#include "mbstring.h" - -struct u8str * -u8strpushr(struct u8str *b, rune ch) -{ - if (!u8strgrow(b, b->len + rtou8(nullptr, ch, 0))) - return nullptr; - b->len += rtou8(b->p + b->len, ch, b->cap - b->len); - return b; -} diff --git a/lib/bob/u8strpushstr.c b/lib/bob/u8strpushstr.c deleted file mode 100644 index 64b123d..0000000 --- a/lib/bob/u8strpushstr.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#include "bob.h" - -struct u8str * -u8strpushstr(struct u8str *b, const char *s) -{ - return u8strpushu8(b, (struct u8view){.p = s, .len = strlen(s)}); -} diff --git a/lib/bob/u8strpushu8.c b/lib/bob/u8strpushu8.c deleted file mode 100644 index 8358e01..0000000 --- a/lib/bob/u8strpushu8.c +++ /dev/null @@ -1,14 +0,0 @@ -#include - -#include "bob.h" -#include "mbstring.h" - -struct u8str * -u8strpushu8(struct u8str *b, struct u8view v) -{ - if (!u8strgrow(b, b->len + v.len)) - return nullptr; - memcpy(b->p + b->len, v.p, v.len); - b->len += v.len; - return b; -} -- cgit v1.2.3