summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyword.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/keyword.c b/keyword.c
index c20f560..385f526 100644
--- a/keyword.c
+++ b/keyword.c
@@ -234,7 +234,8 @@ char *create_key_value_file(void *data, void *ctx, const keyword **keywords, con
for (int i = 0; keywords[i] != NULL; ++i) {
int error;
keyword_val val = get_keyword(keywords[i], data, ctx, &error);
- if (!error || error < 0) {
+ const int is_valid = keywords[i]->type != TYPE_STRING || (keywords[i]->type == TYPE_STRING && !is_empty(val.str));
+ if ((!error || error < 0) && is_valid) {
char *key_value = create_key_value_str(keywords[i], val, start_delm, end_delm);
buf_len += strlen(key_value);
key_values = add_node(&key_values, key_value);