[rygel] media-export: Add custom has_prefix function
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] media-export: Add custom has_prefix function
- Date: Thu, 26 Aug 2010 14:57:09 +0000 (UTC)
commit 58b299f15c9f877a226611b62ca015dfca31244f
Author: Jens Georg <mail jensge org>
Date: Wed Aug 25 20:04:39 2010 +0300
media-export: Add custom has_prefix function
This function is used for a caseless derivedFrom search
.../media-export/rygel-media-export-database.vala | 29 ++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/src/plugins/media-export/rygel-media-export-database.vala b/src/plugins/media-export/rygel-media-export-database.vala
index f53e12e..dc6c4f5 100644
--- a/src/plugins/media-export/rygel-media-export-database.vala
+++ b/src/plugins/media-export/rygel-media-export-database.vala
@@ -43,6 +43,26 @@ internal class Rygel.MediaExport.Database : Object {
*/
public delegate bool RowCallback (Sqlite.Statement stmt);
+ private static void utf8_has_prefix (Sqlite.Context context,
+ Sqlite.Value[] args)
+ requires (args.length == 2) {
+ if (args[0].to_text () == null ||
+ args[1].to_text () == null) {
+ context.result_int (0);
+
+ return;
+ }
+
+ var stra = args[0].to_text ().casefold ();
+ var strb = args[1].to_text ().casefold ();
+
+ if (stra.has_prefix (strb)) {
+ context.result_int (1);
+ } else {
+ context.result_int (0);
+ }
+ }
+
private static void utf8_like (Sqlite.Context context,
Sqlite.Value[] args)
requires (args.length == 2) {
@@ -108,6 +128,15 @@ internal class Rygel.MediaExport.Database : Object {
Database.utf8_like,
null,
null);
+
+ this.db.create_function ("has_prefix",
+ 2,
+ Sqlite.UTF8,
+ null,
+ Database.utf8_has_prefix,
+ null,
+ null);
+
this.db.create_collation ("CASEFOLD",
Sqlite.UTF8,
Database.utf8_collate);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]