aboutsummaryrefslogtreecommitdiffstats
path: root/include/serd/writer.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-02-05 18:39:49 -0500
committerDavid Robillard <d@drobilla.net>2023-12-02 18:49:08 -0500
commit343124df71010055c2c1e6cdcadd13d23b2c013a (patch)
tree7c2de6a72021adaac89e9c4fa97e7cc5503e0657 /include/serd/writer.h
parent530edb265fbbed20e6d3a6fd7a36461ff83d9b46 (diff)
downloadserd-343124df71010055c2c1e6cdcadd13d23b2c013a.tar.gz
serd-343124df71010055c2c1e6cdcadd13d23b2c013a.tar.bz2
serd-343124df71010055c2c1e6cdcadd13d23b2c013a.zip
[WIP] Add support for URI hex escape decoding
Diffstat (limited to 'include/serd/writer.h')
-rw-r--r--include/serd/writer.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/serd/writer.h b/include/serd/writer.h
index bf54c46c..e3915a86 100644
--- a/include/serd/writer.h
+++ b/include/serd/writer.h
@@ -42,6 +42,10 @@ typedef enum {
Although all the supported syntaxes are UTF-8 by definition, this can be
used to escape all non-ASCII characters so that data will survive
transmission through ASCII-only channels.
+
+ Non-printable-ASCII characters will be written as "U" escapes like
+ "\u007F" in string literals, and as hex-encoded UTF-8 bytes like "%07F" in
+ URIs.
*/
SERD_WRITE_ASCII = 1U << 0U,
@@ -96,6 +100,18 @@ typedef enum {
implicit context, so it will only be readable in a suitable enviromnent.
*/
SERD_WRITE_CONTEXTUAL = 1U << 6U,
+
+ /**
+ Escape additional characters in RDF Test Cases format.
+
+ This writes "extended" characters as printable ASCII, using "U" escapes in
+ URIs instead of hex-encoding (escapes like "\u007F" instead of "%7F").
+ This is the format used by the outputs in the Turtle test suite (which
+ predates RDF 1.1 NTriples). This style makes NTriples output
+ non-canonical, so it generally shouldn't be used except for compatibility
+ purposes. See <https://www.w3.org/TR/rdf-testcases/>.
+ */
+ SERD_WRITE_ESCAPES = 1U << 7U,
} SerdWriterFlag;
/// Bitwise OR of #SerdWriterFlag values