From f2ac8b6aa69a4765e44f815a031b7aa574d44b57 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sat, 8 Aug 2015 23:31:54 -0700 Subject: Improved cmark_strbuf_normalize_whitespace. Now all characters that satisfy cmark_isspace are recognized as whitespace. Previously CR and TAB (and others) weren't included. Partially addresses #73. --- src/buffer.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'src/buffer.c') diff --git a/src/buffer.c b/src/buffer.c index 9d31881..26dfb8e 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -282,17 +282,12 @@ void cmark_strbuf_normalize_whitespace(cmark_strbuf *s) { bufsize_t r, w; for (r = 0, w = 0; r < s->size; ++r) { - switch (s->ptr[r]) { - case ' ': - case '\n': - if (last_char_was_space) - break; - - s->ptr[w++] = ' '; - last_char_was_space = true; - break; - - default: + if (cmark_isspace(s->ptr[r])) { + if (!last_char_was_space) { + s->ptr[w++] = ' '; + last_char_was_space = true; + } + } else { s->ptr[w++] = s->ptr[r]; last_char_was_space = false; } -- cgit v1.2.3