23 #ifndef KV_SCANNER_H_INCLUDED
24 #define KV_SCANNER_H_INCLUDED
55 void kv_scanner_init(KVScanner *
self, gchar value_separator,
const gchar *pair_separator, gboolean extract_stray_words);
59 kv_scanner_input(KVScanner *
self,
const gchar *input)
63 if (
self->stray_words)
64 g_string_truncate(
self->stray_words, 0);
67 static inline const gchar *
68 kv_scanner_get_current_key(KVScanner *
self)
70 return self->key->str;
74 kv_scanner_get_current_key_len(KVScanner *
self)
76 return self->key->len;
79 static inline const gchar *
80 kv_scanner_get_current_value(KVScanner *
self)
82 return self->value->str;
86 kv_scanner_get_current_value_len(KVScanner *
self)
88 return self->value->len;
91 static inline const gchar *
92 kv_scanner_get_stray_words(KVScanner *
self)
94 return self->stray_words ?
self->stray_words->str : NULL;
98 kv_scanner_get_stray_words_len(KVScanner *
self)
100 return self->stray_words ?
self->stray_words->len : 0;
106 self->transform_value = transform_value;
112 self->extract_annotation = extract_annotation;
116 kv_scanner_set_valid_key_character_func(KVScanner *
self,
KVIsValidKeyCharFunc is_valid_key_character)
118 self->is_valid_key_character = is_valid_key_character;
122 kv_scanner_set_stop_character(KVScanner *
self, gchar stop_char)
124 self->stop_char = stop_char;
gboolean(* KVTransformValueFunc)(KVScanner *)
Definition: kv-scanner.h:32
void(* KVExtractAnnotationFunc)(KVScanner *)
Definition: kv-scanner.h:33
gboolean(* KVIsValidKeyCharFunc)(gchar c)
Definition: kv-scanner.h:34
void kv_scanner_deinit(KVScanner *self)
Definition: kv-scanner.c:326
void kv_scanner_init(KVScanner *self, gchar value_separator, const gchar *pair_separator, gboolean extract_stray_words)
Definition: kv-scanner.c:331
gboolean kv_scanner_scan_next(KVScanner *self)
Definition: kv-scanner.c:307
#define self
Definition: rcptid.c:38
Definition: kv-scanner.h:37
KVTransformValueFunc transform_value
Definition: kv-scanner.h:50
gchar stop_char
Definition: kv-scanner.h:48
GString * decoded_value
Definition: kv-scanner.h:42
gsize pair_separator_len
Definition: kv-scanner.h:47
KVIsValidKeyCharFunc is_valid_key_character
Definition: kv-scanner.h:52
GString * stray_words
Definition: kv-scanner.h:43
gboolean value_was_quoted
Definition: kv-scanner.h:44
KVExtractAnnotationFunc extract_annotation
Definition: kv-scanner.h:51
const gchar * input
Definition: kv-scanner.h:38
GString * key
Definition: kv-scanner.h:40
GString * value
Definition: kv-scanner.h:41
gchar value_separator
Definition: kv-scanner.h:45
gsize input_pos
Definition: kv-scanner.h:39
const gchar * pair_separator
Definition: kv-scanner.h:46