diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-10-06 21:06:22 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2020-10-10 10:44:50 +0200 |
commit | ec47ba9706677703015a6ff77a3f48443c494b4c (patch) | |
tree | 80f48f9c9c29bd28d17b3ae49cad4cb15cfe9c5e | |
parent | 8a67edd0df8c586740ad8ffaf80b0c0398a92022 (diff) | |
download | tracker-ec47ba9706677703015a6ff77a3f48443c494b4c.tar.gz |
libtracker-data: Parse LANGTAG in turtle
Allow LANGTAG after STRING_LITERAL* and STRING_LITERAL_LONG. We don't
propagate the language tag so far yet, just parsing of these tags is
fixed.
-rw-r--r-- | src/libtracker-data/tracker-turtle-reader.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/libtracker-data/tracker-turtle-reader.c b/src/libtracker-data/tracker-turtle-reader.c index ccea29d27..f5b3abc97 100644 --- a/src/libtracker-data/tracker-turtle-reader.c +++ b/src/libtracker-data/tracker-turtle-reader.c @@ -294,6 +294,8 @@ parse_terminal (TrackerTurtleReader *reader, if (out) *out = str; + else + g_free (str); return TRUE; } @@ -589,14 +591,18 @@ tracker_turtle_reader_iterate_next (TrackerTurtleReader *reader, parse_terminal (reader, terminal_STRING_LITERAL_LONG2, 3, &str)) { reader->object = g_strcompress (str); g_free (str); - if (!handle_type_cast (reader, error)) - return FALSE; + if (!parse_terminal (reader, terminal_LANGTAG, 0, NULL)) { + if (!handle_type_cast (reader, error)) + return FALSE; + } } else if (parse_terminal (reader, terminal_STRING_LITERAL1, 1, &str) || parse_terminal (reader, terminal_STRING_LITERAL2, 1, &str)) { reader->object = g_strcompress (str); g_free (str); - if (!handle_type_cast (reader, error)) - return FALSE; + if (!parse_terminal (reader, terminal_LANGTAG, 0, NULL)) { + if (!handle_type_cast (reader, error)) + return FALSE; + } } else if (parse_terminal (reader, terminal_DOUBLE, 0, &str) || parse_terminal (reader, terminal_INTEGER, 0, &str)) { reader->object = str; |