diff options
-rw-r--r-- | serd/serd.h | 19 | ||||
-rw-r--r-- | src/node.c | 26 | ||||
-rw-r--r-- | src/string.c (renamed from src/error.c) | 25 | ||||
-rw-r--r-- | wscript | 2 |
4 files changed, 40 insertions, 32 deletions
diff --git a/serd/serd.h b/serd/serd.h index 005f2a73..79f164ea 100644 --- a/serd/serd.h +++ b/serd/serd.h @@ -91,10 +91,6 @@ typedef enum { SERD_ERR_NOT_FOUND /**< Not found */ } SerdStatus; -SERD_API -const uint8_t* -serd_strerror(SerdStatus status); - /** RDF syntax type. */ @@ -247,7 +243,19 @@ typedef enum { } SerdStyle; /** - UTF-8 strlen. + @name String Utilities + @{ +*/ + +/** + Return a string describing a status code. +*/ +SERD_API +const uint8_t* +serd_strerror(SerdStatus status); + +/** + Measure a UTF-8 string. @return Length of @c str in characters (except NULL). @param str A null-terminated UTF-8 string. @param n_bytes (Output) Set to the size of @c str in bytes (except NULL). @@ -258,6 +266,7 @@ size_t serd_strlen(const uint8_t* str, size_t* n_bytes, SerdNodeFlags* flags); /** + @} @name URI @{ */ @@ -20,32 +20,6 @@ #include "serd_internal.h" 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; - 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; - break; - case '"': - *flags |= SERD_HAS_QUOTE; - } - } - } - if (n_bytes) { - *n_bytes = i; - } - return n_chars; -} - -SERD_API SerdNode serd_node_from_string(SerdType type, const uint8_t* buf) { diff --git a/src/error.c b/src/string.c index cfab5a77..f747c530 100644 --- a/src/error.c +++ b/src/string.c @@ -31,3 +31,28 @@ serd_strerror(SerdStatus st) return (const uint8_t*)"Success"; // never reached } +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; + 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; + break; + case '"': + *flags |= SERD_HAS_QUOTE; + } + } + } + if (n_bytes) { + *n_bytes = i; + } + return n_chars; +} @@ -77,9 +77,9 @@ def build(bld): lib_source = ''' src/env.c - src/error.c src/node.c src/reader.c + src/string.c src/uri.c src/writer.c ''' |