aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-01-25 00:08:48 +0000
committerDavid Robillard <d@drobilla.net>2011-01-25 00:08:48 +0000
commit702208e54132477eeff922ebf641ba56540b9456 (patch)
tree7f553f8e8b848b654017d3db66b0fd6c0dbc749c
parent634b5459db03b4cd00539ec45b6a3b23f29481de (diff)
downloadserd-702208e54132477eeff922ebf641ba56540b9456.tar.gz
serd-702208e54132477eeff922ebf641ba56540b9456.tar.bz2
serd-702208e54132477eeff922ebf641ba56540b9456.zip
Fix parsing of numbers that begin with a `.'.
Add number parsing test case. git-svn-id: http://svn.drobilla.net/serd/trunk@56 490d8e77-9747-427b-9fa3-0b8f29cee8a0
-rw-r--r--src/reader.c2
-rw-r--r--tests/test-num.out6
-rw-r--r--tests/test-num.ttl9
3 files changed, 16 insertions, 1 deletions
diff --git a/src/reader.c b/src/reader.c
index 3a4ef452..6d7badbf 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -908,7 +908,7 @@ read_literal(SerdReader reader, Node* dest)
Ref str = 0;
Node datatype = INTERNAL_NODE_NULL;
const uint8_t c = peek_byte(reader);
- if (c == '-' || c == '+' || is_digit(c)) {
+ if (c == '-' || c == '+' || c == '.' || is_digit(c)) {
return read_number(reader, dest);
} else if (c == '\"') {
str = read_quotedString(reader);
diff --git a/tests/test-num.out b/tests/test-num.out
new file mode 100644
index 00000000..447f11df
--- /dev/null
+++ b/tests/test-num.out
@@ -0,0 +1,6 @@
+<http://example.org/eg#thing> <http://example.org/eg#num> "0.1"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.org/eg#thing> <http://example.org/eg#num> "+0.2"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.org/eg#thing> <http://example.org/eg#num> "-0.3"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.org/eg#thing> <http://example.org/eg#num> ".4"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.org/eg#thing> <http://example.org/eg#num> "+.5"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.org/eg#thing> <http://example.org/eg#num> "-.6"^^<http://www.w3.org/2001/XMLSchema#decimal> .
diff --git a/tests/test-num.ttl b/tests/test-num.ttl
new file mode 100644
index 00000000..086ca5ab
--- /dev/null
+++ b/tests/test-num.ttl
@@ -0,0 +1,9 @@
+@prefix eg: <http://example.org/eg#> .
+
+eg:thing eg:num 0.1 .
+eg:thing eg:num +0.2 .
+eg:thing eg:num -0.3 .
+eg:thing eg:num .4 .
+eg:thing eg:num +.5 .
+eg:thing eg:num -.6 .
+