Hash :
dfcd69c5
Author :
Thomas de Grivel
Date :
2022-01-02T22:25:10
wip quoting
/*
* kv - key value text file format
*
* Copyright 2022 Thomas de Grivel
*/
#ifndef KV_H
#define KV_H
#include "buffer.h"
/* parse
* access key path through b->k */
typedef int f_kv (s_buffer *b, const char *v, size_t vsz);
int kv_parse (s_buffer *b, f_kv *f);
/* chars */
int kv_is_quotable_char (int c);
int kv_is_reserved_char (int c);
int kv_is_space (int c);
/* quote */
int kv_contains_reserved_char (const char *str, size_t str_size);
int kv_contains_triple_double_quotes (const char *str, size_t str_size);
int kv_needs_quoting (const char *str, size_t str_size);
int kv_quote (char **str, size_t *str_size);
int kv_quote_delim (char **str, size_t *str_size, const char *delim);
int kv_quote_double_quotes (char **str, size_t *str_size);
int kv_quote_triple_double_quotes (char **str, size_t *str_size);
#endif