about summary refs log tree commit diff stats
path: root/wrapperhelper/src/cstring.c
diff options
context:
space:
mode:
authorrajdakin <rajdakin@gmail.com>2024-09-20 12:40:06 +0200
committerGitHub <noreply@github.com>2024-09-20 12:40:06 +0200
commit550b72200d098607c5be999682b912903c98657a (patch)
treef164c1298066035a374a54fc09972c4ab609f902 /wrapperhelper/src/cstring.c
parentcd9d19a2bb0bbc411c3e32f9ec6b46df0ce5bfb1 (diff)
downloadbox64-550b72200d098607c5be999682b912903c98657a.tar.gz
box64-550b72200d098607c5be999682b912903c98657a.zip
Improve the wrapper helper (#1844)
* [WRAPPERHELPER] Fixed some issues, added better macros

* [WRAPPERHELPER] Fixed type_t_equal_lax
Diffstat (limited to 'wrapperhelper/src/cstring.c')
-rw-r--r--wrapperhelper/src/cstring.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/wrapperhelper/src/cstring.c b/wrapperhelper/src/cstring.c
index 86536915..8dc18b82 100644
--- a/wrapperhelper/src/cstring.c
+++ b/wrapperhelper/src/cstring.c
@@ -98,6 +98,16 @@ int string_add_char(string_t *s, char elem) {
 	return 1;
 }
 
+int string_add_char_at(string_t *s, char elem, size_t idx) {
+	if (idx == s->ssize) return string_add_char(s, elem);
+	if (idx > s->ssize) return 0;
+	if (!string_reserve_grow(s, s->ssize + 1)) return 0;
+	memmove(s->buf + idx + 1, s->buf + idx, s->ssize + 1 - idx);
+	++s->ssize;
+	s->buf[idx] = elem;
+	return 1;
+}
+
 int string_add_string(string_t *s1, string_t *s2) {
 	if (!string_reserve_grow(s1, s1->ssize + s2->ssize)) return 0;
 	memcpy(s1->buf + s1->ssize, s2->buf, s2->ssize);