From 66658fa8f7ce3eabb38bcef4d5d52edd8844470c Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 6 Feb 2020 19:27:30 -0500 Subject: [PATCH] Remove trailing/leading white space in text meta fields --- src/util.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/util.c b/src/util.c index c78b3cc..45fc65d 100644 --- a/src/util.c +++ b/src/util.c @@ -91,7 +91,11 @@ text_buffer_t text_buffer_create(int max_size) { } void text_buffer_terminate_string(text_buffer_t *buf) { - dyn_buffer_write_char(&buf->dyn_buffer, '\0'); + if (*(buf->dyn_buffer.buf + buf->dyn_buffer.cur - 1) == ' ') { + *(buf->dyn_buffer.buf + buf->dyn_buffer.cur - 1) = '\0'; + } else { + dyn_buffer_write_char(&buf->dyn_buffer, '\0'); + } } __always_inline @@ -172,8 +176,8 @@ int text_buffer_append_string0(text_buffer_t *buf, char *str) { int text_buffer_append_char(text_buffer_t *buf, int c) { - if (SHOULD_IGNORE_CHAR(c)) { - if (!buf->last_char_was_whitespace) { + if (SHOULD_IGNORE_CHAR(c) || c == ' ') { + if (!buf->last_char_was_whitespace && buf->dyn_buffer.cur != 0) { dyn_buffer_write_char(&buf->dyn_buffer, ' '); buf->last_char_was_whitespace = TRUE;