summaryrefslogtreecommitdiff
path: root/userland/libc/include
diff options
context:
space:
mode:
Diffstat (limited to 'userland/libc/include')
-rw-r--r--userland/libc/include/tb/sb.h8
-rw-r--r--userland/libc/include/tb/sv.h8
2 files changed, 13 insertions, 3 deletions
diff --git a/userland/libc/include/tb/sb.h b/userland/libc/include/tb/sb.h
index 7832015..f75fa5c 100644
--- a/userland/libc/include/tb/sb.h
+++ b/userland/libc/include/tb/sb.h
@@ -8,12 +8,14 @@ struct sb {
char *string;
size_t length;
size_t capacity;
+ size_t to_ignore;
uint8_t prebuffer;
};
struct sv;
void sb_init(struct sb *ctx);
+void sb_set_ignore(struct sb *ctx, size_t n);
int sb_init_capacity(struct sb *ctx, size_t starting_capacity);
void sb_init_buffer(struct sb *ctx, char *buffer, size_t size);
void sb_free(struct sb *ctx);
@@ -22,8 +24,10 @@ int sb_isempty(const struct sb *ctx);
int sb_append_char(struct sb *ctx, char c);
int sb_delete_right(struct sb *ctx, size_t n);
int sb_append(struct sb *ctx, const char *s);
-int sb_append_buffer(struct sb *ctx, const char *buffer, size_t length);
+int sb_append_buffer(struct sb *ctx, const void *buffer, size_t length);
int sb_append_sv(struct sb *ctx, struct sv sv);
int sb_prepend_sv(struct sb *ctx, struct sv sv);
-int sb_prepend_buffer(struct sb *ctx, const char *buffer, size_t length);
+int sb_prepend_buffer(struct sb *ctx, const void *buffer, size_t length);
+int sb_modify_location(struct sb *ctx, void *buffer, size_t length, size_t offset);
+int sb_reserve_buffer(struct sb *ctx, size_t *offset, size_t length);
#endif
diff --git a/userland/libc/include/tb/sv.h b/userland/libc/include/tb/sv.h
index 7062741..8a993ec 100644
--- a/userland/libc/include/tb/sv.h
+++ b/userland/libc/include/tb/sv.h
@@ -2,6 +2,7 @@
#define SV_H
#include "sb.h"
#include <stddef.h>
+#include <stdint.h>
#define SB_TO_SV(_sb) \
(struct sv) { \
@@ -11,6 +12,7 @@
#define C_TO_SV(_c_string) \
((struct sv){.length = strlen(_c_string), .s = (_c_string)})
+#define sv_buffer(a) ((a).s)
#define sv_length(a) ((a).length)
struct sv {
@@ -18,6 +20,7 @@ struct sv {
size_t length;
};
+struct sv sv_init(const char *s, size_t length);
char *SV_TO_C(struct sv s);
size_t sv_to_cstring_buffer(struct sv s, char *buffer, size_t length);
struct sv sv_split_delim(const struct sv input, struct sv *rest, char delim);
@@ -27,6 +30,7 @@ struct sv sv_split_space(const struct sv input, struct sv *rest);
struct sv sv_skip_chars(const struct sv input, const char *chars);
struct sv sv_split_function(const struct sv input, struct sv *rest,
int (*function)(int));
+int sv_try_eat(struct sv input, struct sv *rest, struct sv b);
struct sv sv_take(struct sv s, struct sv *rest, size_t n);
struct sv sv_take_end(struct sv s, struct sv *rest, size_t n);
struct sv sv_next(struct sv s);
@@ -38,5 +42,7 @@ struct sv sv_trim_left(struct sv s, size_t n);
struct sv sv_clone(struct sv s);
struct sv sv_clone_from_c(const char *s);
char *sv_copy_to_c(struct sv s, char *out, size_t buffer_length);
-uint64_t sv_parse_unsigned_number(struct sv input, struct sv *rest);
+uint64_t sv_parse_unsigned_number(struct sv input, struct sv *rest,
+ int *got_num);
+int sv_read(struct sv s, struct sv *rest, void *buf, size_t n);
#endif