aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--serd/serd.h19
-rw-r--r--src/node.c26
-rw-r--r--src/string.c (renamed from src/error.c)25
-rw-r--r--wscript2
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
@{
*/
diff --git a/src/node.c b/src/node.c
index 2e908c69..224bf407 100644
--- a/src/node.c
+++ b/src/node.c
@@ -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;
+}
diff --git a/wscript b/wscript
index 53eda860..dcbc711d 100644
--- a/wscript
+++ b/wscript
@@ -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
'''