aboutsummaryrefslogtreecommitdiffstats
path: root/src/byte_source.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-02-24 20:44:32 -0500
committerDavid Robillard <d@drobilla.net>2023-12-02 18:49:08 -0500
commitf74a7448036d6fbe3f6562aa6e87d7e7478f0341 (patch)
tree8b220b7c6ca2f560f3e15dfc69d0a904636c196a /src/byte_source.c
parent343124df71010055c2c1e6cdcadd13d23b2c013a (diff)
downloadserd-f74a7448036d6fbe3f6562aa6e87d7e7478f0341.tar.gz
serd-f74a7448036d6fbe3f6562aa6e87d7e7478f0341.tar.bz2
serd-f74a7448036d6fbe3f6562aa6e87d7e7478f0341.zip
Factor out serd_byte_source_skip_bom()
Diffstat (limited to 'src/byte_source.c')
-rw-r--r--src/byte_source.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/byte_source.c b/src/byte_source.c
index 6ec2084a..8959b1e6 100644
--- a/src/byte_source.c
+++ b/src/byte_source.c
@@ -123,3 +123,19 @@ serd_byte_source_prepare(SerdByteSource* const source)
return serd_byte_source_advance(source);
}
+
+SerdStatus
+serd_byte_source_skip_bom(SerdByteSource* const source)
+{
+ if (serd_byte_source_peek(source) == 0xEF) {
+ if (serd_byte_source_advance(source) ||
+ serd_byte_source_peek(source) != 0xBB ||
+ serd_byte_source_advance(source) ||
+ serd_byte_source_peek(source) != 0xBF ||
+ serd_byte_source_advance(source)) {
+ return SERD_BAD_SYNTAX;
+ }
+ }
+
+ return SERD_SUCCESS;
+}