summaryrefslogtreecommitdiff
path: root/src/data_string.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/data_string.c')
-rw-r--r--src/data_string.c121
1 files changed, 0 insertions, 121 deletions
diff --git a/src/data_string.c b/src/data_string.c
deleted file mode 100644
index 1b9da692..00000000
--- a/src/data_string.c
+++ /dev/null
@@ -1,121 +0,0 @@
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#include "array.h"
-
-static data_unset *data_string_copy(const data_unset *s) {
- data_string *src = (data_string *)s;
- data_string *ds = data_string_init();
-
- buffer_copy_string_buffer(ds->key, src->key);
- buffer_copy_string_buffer(ds->value, src->value);
- ds->is_index_key = src->is_index_key;
- return (data_unset *)ds;
-}
-
-static void data_string_free(data_unset *d) {
- data_string *ds = (data_string *)d;
-
- buffer_free(ds->key);
- buffer_free(ds->value);
-
- free(d);
-}
-
-static void data_string_reset(data_unset *d) {
- data_string *ds = (data_string *)d;
-
- /* reused array elements */
- buffer_reset(ds->key);
- buffer_reset(ds->value);
-}
-
-static int data_string_insert_dup(data_unset *dst, data_unset *src) {
- data_string *ds_dst = (data_string *)dst;
- data_string *ds_src = (data_string *)src;
-
- if (ds_dst->value->used) {
- buffer_append_string_len(ds_dst->value, CONST_STR_LEN(", "));
- buffer_append_string_buffer(ds_dst->value, ds_src->value);
- } else {
- buffer_copy_string_buffer(ds_dst->value, ds_src->value);
- }
-
- src->free(src);
-
- return 0;
-}
-
-static int data_response_insert_dup(data_unset *dst, data_unset *src) {
- data_string *ds_dst = (data_string *)dst;
- data_string *ds_src = (data_string *)src;
-
- if (ds_dst->value->used) {
- buffer_append_string_len(ds_dst->value, CONST_STR_LEN("\r\n"));
- buffer_append_string_buffer(ds_dst->value, ds_dst->key);
- buffer_append_string_len(ds_dst->value, CONST_STR_LEN(": "));
- buffer_append_string_buffer(ds_dst->value, ds_src->value);
- } else {
- buffer_copy_string_buffer(ds_dst->value, ds_src->value);
- }
-
- src->free(src);
-
- return 0;
-}
-
-
-static void data_string_print(const data_unset *d, int depth) {
- data_string *ds = (data_string *)d;
- unsigned int i = 0;
- UNUSED(depth);
-
- // empty and uninitialized strings
- if (ds->value->used < 1) {
- fputs("\"\"", stdout);
- return;
- }
-
- // print out the string as is, except prepend " with backslash
- putc('"', stdout);
- for (i = 0; i < ds->value->used - 1; i++) {
- unsigned char c = ds->value->ptr[i];
- if (c == '"') {
- fputs("\\\"", stdout);
- } else {
- putc(c, stdout);
- }
- }
- putc('"', stdout);
-}
-
-
-data_string *data_string_init(void) {
- data_string *ds;
-
- ds = calloc(1, sizeof(*ds));
- assert(ds);
-
- ds->key = buffer_init();
- ds->value = buffer_init();
-
- ds->copy = data_string_copy;
- ds->free = data_string_free;
- ds->reset = data_string_reset;
- ds->insert_dup = data_string_insert_dup;
- ds->print = data_string_print;
- ds->type = TYPE_STRING;
-
- return ds;
-}
-
-data_string *data_response_init(void) {
- data_string *ds;
-
- ds = data_string_init();
- ds->insert_dup = data_response_insert_dup;
-
- return ds;
-}