diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-03-10 15:08:10 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-03-10 15:08:10 +0200 |
commit | 791d6bc10ec81d08324807211d968d7e37110f0b (patch) | |
tree | b38d150964199381d7e443975d375ba2a858f864 /lib/bob | |
parent | d78cf57211f24aeebc5e2f30927e2410bf068983 (diff) |
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.
Diffstat (limited to 'lib/bob')
-rw-r--r-- | lib/bob/u8strfit.c | 9 | ||||
-rw-r--r-- | lib/bob/u8strfree.c | 9 | ||||
-rw-r--r-- | lib/bob/u8strgrow.c | 39 | ||||
-rw-r--r-- | lib/bob/u8strinit.c | 16 | ||||
-rw-r--r-- | lib/bob/u8strpushr.c | 11 | ||||
-rw-r--r-- | lib/bob/u8strpushstr.c | 9 | ||||
-rw-r--r-- | lib/bob/u8strpushu8.c | 14 |
7 files changed, 0 insertions, 107 deletions
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 <stdlib.h> - -#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 <stdlib.h> - -#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 <stdlib.h> - -#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 <stdlib.h> - -#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 <string.h> - -#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 <string.h> - -#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; -} |