From 443f470383dc3acba0fde7b705e8ff81a7c49595 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 9 Jul 2016 11:29:44 -0400 Subject: Fix construction of URIs with UTF-8 characters --- src/string.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/string.c') diff --git a/src/string.c b/src/string.c index a1a1dff1..1e653795 100644 --- a/src/string.c +++ b/src/string.c @@ -1,5 +1,5 @@ /* - Copyright 2011-2012 David Robillard + Copyright 2011-2016 David Robillard Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above @@ -40,25 +40,28 @@ SERD_API size_t serd_strlen(const uint8_t* str, size_t* n_bytes, SerdNodeFlags* flags) { - size_t n_chars = 0; - size_t i = 0; - *flags = 0; + size_t n_chars = 0; + size_t i = 0; + SerdNodeFlags f = 0; for (; str[i]; ++i) { if ((str[i] & 0xC0) != 0x80) { // Does not start with `10', start of a new character ++n_chars; switch (str[i]) { case '\r': case '\n': - *flags |= SERD_HAS_NEWLINE; + f |= SERD_HAS_NEWLINE; break; case '"': - *flags |= SERD_HAS_QUOTE; + f |= SERD_HAS_QUOTE; } } } if (n_bytes) { *n_bytes = i; } + if (flags) { + *flags = f; + } return n_chars; } -- cgit v1.2.1