From 1606f28555cd3a5bc540d905ccf8886959aaa6ba Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Mon, 3 May 2021 17:48:23 +0200 Subject: [PATCH] Add unrealdb_write_char() / unrealdb_read_char() --- include/h.h | 2 ++ src/unrealdb.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/include/h.h b/include/h.h index 06ad7d339..3c7a29b5d 100644 --- a/include/h.h +++ b/include/h.h @@ -1037,11 +1037,13 @@ extern int unrealdb_write_int64(UnrealDB *c, uint64_t t); extern int unrealdb_write_int32(UnrealDB *c, uint32_t t); extern int unrealdb_write_int16(UnrealDB *c, uint16_t t); extern int unrealdb_write_str(UnrealDB *c, char *x); +extern int unrealdb_write_char(UnrealDB *c, char t); extern int unrealdb_write_data(UnrealDB *c, void *buf, int len); extern int unrealdb_read_int64(UnrealDB *c, uint64_t *t); extern int unrealdb_read_int32(UnrealDB *c, uint32_t *t); extern int unrealdb_read_int16(UnrealDB *c, uint16_t *t); extern int unrealdb_read_str(UnrealDB *c, char **x); +extern int unrealdb_read_char(UnrealDB *c, char *t); extern int unrealdb_read_data(UnrealDB *c, void *buf, int len); extern char *unrealdb_test_secret(char *name); extern UnrealDBConfig *unrealdb_copy_config(UnrealDBConfig *src); diff --git a/src/unrealdb.c b/src/unrealdb.c index 4851343aa..6ec4bbc96 100644 --- a/src/unrealdb.c +++ b/src/unrealdb.c @@ -646,6 +646,16 @@ int unrealdb_write_int16(UnrealDB *c, uint16_t t) return unrealdb_write(c, &t, sizeof(t)); } +/** Write a single 8 bit character to a database file. + * @param c UnrealDB file struct + * @param t The value to write + * @returns 1 on success, 0 on failure. + */ +int unrealdb_write_char(UnrealDB *c, char t) +{ + return unrealdb_write(c, &t, sizeof(t)); +} + /** Read from an UnrealDB file. * This code deals with buffering, block reading, etc. so the caller doesn't * have to worry about that. @@ -815,6 +825,18 @@ int unrealdb_read_str(UnrealDB *c, char **x) return 1; } +/** Read a single 8 bit character from a database file. + * @param c UnrealDB file struct + * @param t The value to read + * @returns 1 on success, 0 on failure. + */ +int unrealdb_read_char(UnrealDB *c, char *t) +{ + if (!unrealdb_read(c, t, sizeof(char))) + return 0; + return 1; +} + void fatal_error(FORMAT_STRING(const char *pattern), ...) { va_list vl;