[tracker] libtracker-common: Port sparql_builder_object_unvalidated to Vala
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-common: Port sparql_builder_object_unvalidated to Vala
- Date: Thu, 11 Feb 2010 10:23:55 +0000 (UTC)
commit 54119ab09fa4bb4957449b03a87866787280a93a
Author: Jürg Billeter <j bitron ch>
Date: Thu Feb 11 11:20:43 2010 +0100
libtracker-common: Port sparql_builder_object_unvalidated to Vala
src/libtracker-common/Makefile.am | 3 +-
src/libtracker-common/glib-2.0-fixes.vapi | 24 ++++++++++++++++
src/libtracker-common/tracker-sparql-builder.vala | 16 +++++++++++
src/libtracker-common/tracker-statement-list.c | 30 ---------------------
src/libtracker-common/tracker-statement-list.h | 2 -
5 files changed, 42 insertions(+), 33 deletions(-)
---
diff --git a/src/libtracker-common/Makefile.am b/src/libtracker-common/Makefile.am
index e85ec86..972d358 100644
--- a/src/libtracker-common/Makefile.am
+++ b/src/libtracker-common/Makefile.am
@@ -101,7 +101,7 @@ libtracker_commoninclude_HEADERS = \
tracker-utils.h \
tracker-crc32.h
-libtracker-common.vala.stamp: $(libtracker_common_la_VALASOURCES) posix.vapi
+libtracker-common.vala.stamp: $(libtracker_common_la_VALASOURCES) posix.vapi glib-2.0-fixes.vapi
$(AM_V_GEN)$(VALAC) $(GCOV_VALAFLAGS) -C $(VALAFLAGS) --pkg gio-2.0 -H tracker-sparql-builder.h $^
$(AM_V_GEN)touch $@
@@ -148,5 +148,6 @@ EXTRA_DIST = \
$(libtracker_common_la_VALASOURCES) \
libtracker-common.vala.stamp \
posix.vapi \
+ glib-2.0-fixes.vapi \
libtracker-common.vapi
diff --git a/src/libtracker-common/glib-2.0-fixes.vapi b/src/libtracker-common/glib-2.0-fixes.vapi
new file mode 100644
index 0000000..c589777
--- /dev/null
+++ b/src/libtracker-common/glib-2.0-fixes.vapi
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010, Nokia
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+namespace GLib {
+ [CCode (cname = "g_utf8_validate")]
+ public bool utf8_validate (string str, ssize_t max_len, out char* end);
+}
+
diff --git a/src/libtracker-common/tracker-sparql-builder.vala b/src/libtracker-common/tracker-sparql-builder.vala
index 8dcc6f1..7008ccd 100644
--- a/src/libtracker-common/tracker-sparql-builder.vala
+++ b/src/libtracker-common/tracker-sparql-builder.vala
@@ -226,6 +226,22 @@ public class Tracker.SparqlBuilder : Object {
length++;
}
+ public void object_unvalidated (string value) {
+ char* end;
+
+ if (!utf8_validate (value, -1, out end)) {
+ if (value != end) {
+ object_string (value.ndup (end - (char*) value));
+ } else {
+ object_string ("(invalid data)");
+ }
+
+ return;
+ }
+
+ object_string (value);
+ }
+
public void object_boolean (bool literal) {
object (literal ? "true" : "false");
}
diff --git a/src/libtracker-common/tracker-statement-list.c b/src/libtracker-common/tracker-statement-list.c
index cf82ea4..388324a 100644
--- a/src/libtracker-common/tracker-statement-list.c
+++ b/src/libtracker-common/tracker-statement-list.c
@@ -48,36 +48,6 @@ tracker_statement_list_insert (TrackerSparqlBuilder *statements,
}
void
-tracker_sparql_builder_object_unvalidated (TrackerSparqlBuilder *sparql,
- const gchar *value)
-{
- const gchar *end;
-
- g_return_if_fail (TRACKER_IS_SPARQL_BUILDER (sparql));
- g_return_if_fail (value != NULL);
-
- if (!g_utf8_validate (value, -1, &end)) {
- gchar *valid;
-
- /* g_message ("Only inserting %ld/%ld (valid UTF8) bytes for statement list", */
- /* end - value, */
- /* strlen (value)); */
-
- if (value != end) {
- valid = g_strndup (value, end - value);
- tracker_sparql_builder_object_string (sparql, valid);
- g_free (valid);
- } else {
- tracker_sparql_builder_object_string (sparql, "(invalid data)");
- }
-
- return;
- }
-
- tracker_sparql_builder_object_string (sparql, value);
-}
-
-void
tracker_statement_list_insert_with_int64 (TrackerSparqlBuilder *statements,
const gchar *subject,
const gchar *predicate,
diff --git a/src/libtracker-common/tracker-statement-list.h b/src/libtracker-common/tracker-statement-list.h
index 23c5d55..eb475e4 100644
--- a/src/libtracker-common/tracker-statement-list.h
+++ b/src/libtracker-common/tracker-statement-list.h
@@ -32,8 +32,6 @@ G_BEGIN_DECLS
#define SHOULD_VALIDATE_UTF8
-void tracker_sparql_builder_object_unvalidated (TrackerSparqlBuilder *sparql,
- const gchar *value);
void tracker_statement_list_insert (TrackerSparqlBuilder *statements,
const gchar *subject,
const gchar *predicate,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]