Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save RubenVerborgh/6a1781a62ee9ccc1924d74146c6cd6a3 to your computer and use it in GitHub Desktop.
Save RubenVerborgh/6a1781a62ee9ccc1924d74146c6cd6a3 to your computer and use it in GitHub Desktop.
Index: src/reader.c
===================================================================
--- src/reader.c (revision 505)
+++ src/reader.c (working copy)
@@ -760,14 +760,24 @@
return r_err(reader, SERD_ERR_BAD_SYNTAX, "unexpected `%c'\n", c);
}
Ref ref = push_node(reader, SERD_LITERAL, "", 0);
- push_byte(reader, ref, eat_byte_safe(reader, c));
- while ((c = peek_byte(reader)) && in_range(c, 'a', 'z')) {
- push_byte(reader, ref, eat_byte_safe(reader, c));
+ push_byte(reader, ref, eat_byte_safe(reader, c) | 0x60);
+ while ((c = peek_byte(reader))) {
+ if (in_range(c, 'a', 'z'))
+ push_byte(reader, ref, eat_byte_safe(reader, c));
+ else if (in_range(c, 'A', 'Z'))
+ push_byte(reader, ref, eat_byte_safe(reader, c) | 0x60);
+ else
+ break;
}
while (peek_byte(reader) == '-') {
push_byte(reader, ref, eat_byte_safe(reader, '-'));
- while ((c = peek_byte(reader)) && (is_alpha(c) || is_digit(c))) {
- push_byte(reader, ref, eat_byte_safe(reader, c));
+ while ((c = peek_byte(reader))) {
+ if (is_digit(c) || in_range(c, 'a', 'z'))
+ push_byte(reader, ref, eat_byte_safe(reader, c));
+ else if (in_range(c, 'A', 'Z'))
+ push_byte(reader, ref, eat_byte_safe(reader, c) | 0x60);
+ else
+ break;
}
}
return ref;
Index: src/reader.c
===================================================================
--- src/reader.c (revision 505)
+++ src/reader.c (working copy)
@@ -761,7 +761,7 @@
}
Ref ref = push_node(reader, SERD_LITERAL, "", 0);
push_byte(reader, ref, eat_byte_safe(reader, c));
- while ((c = peek_byte(reader)) && in_range(c, 'a', 'z')) {
+ while ((c = peek_byte(reader)) && is_alpha(c)) {
push_byte(reader, ref, eat_byte_safe(reader, c));
}
while (peek_byte(reader) == '-') {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment