[Xfce4-commits] <postler:master> Return search value from search_statement() for binding
Christian Dywan
noreply at xfce.org
Mon Jul 11 23:14:07 CEST 2011
Updating branch refs/heads/master
to b4ad25410ee6ae930b3af2e5d1fe093e5471ce75 (commit)
from 2a3f1090e3a522f006d7ec19788dcd9898138a29 (commit)
commit b4ad25410ee6ae930b3af2e5d1fe093e5471ce75
Author: Christian Dywan <christian at twotoasts.de>
Date: Mon Jul 11 22:51:11 2011 +0200
Return search value from search_statement() for binding
If the prepared statement is to be used, the function can't
bind the value by itself.
postler/postler-index.vala | 21 +++++++++++----------
1 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/postler/postler-index.vala b/postler/postler-index.vala
index a8852cb..b5d7b25 100644
--- a/postler/postler-index.vala
+++ b/postler/postler-index.vala
@@ -230,7 +230,7 @@ namespace Postler {
const string[] any_fields = { "subject", "sender", "excerpt" };
static GLib.HashTable<string,string>? dates = null;
- void search_statement (string folder, string sql,
+ string? search_statement (string folder, string sql,
ref Sqlite.Statement statement) throws GLib.Error {
/* file:// or search:field/value */
@@ -302,15 +302,12 @@ namespace Postler {
cond.append (") AND uri NOT LIKE '%/Trash/%' AND uri NOT LIKE '%/Junk/%'");
if (database.prepare_v2 (sql.replace ("$CASE", cond.str),
-1, out statement) != Sqlite.OK)
- throw new GLib.FileError.FAILED (_("Failed to list messages: %s"), database.errmsg ());
- return;
+ throw new GLib.FileError.FAILED (_("Failed to search messages: %s"), database.errmsg ());
+ return null;
}
- if (statement.bind_text (2, "%%%s%%".printf (parts[1]), -1) != Sqlite.OK)
- throw new GLib.FileError.FAILED (_("Failed to list messages: %s"), database.errmsg ());
- return;
+ return "%%%s%%".printf (parts[1]);
}
- if (statement.bind_text (2, folder, -1) != Sqlite.OK)
- throw new GLib.FileError.FAILED (_("Failed to list messages: %s"), database.errmsg ());
+ return folder;
}
public int64[] unread_messages (string folder) throws GLib.Error {
@@ -325,9 +322,11 @@ namespace Postler {
throw new GLib.FileError.FAILED (_("Failed to count unread messages: %s"), database.errmsg ());
}
Sqlite.Statement? temporary_statement = null;
- search_statement (folder, sql, ref temporary_statement);
+ string? search_value = search_statement (folder, sql, ref temporary_statement);
unowned Sqlite.Statement statement = temporary_statement != null
? temporary_statement : statement_unread;
+ if (search_value != null && statement.bind_text (2, search_value, -1) != Sqlite.OK)
+ throw new GLib.FileError.FAILED (_("Failed to count messages: %s"), database.errmsg ());
int result = Sqlite.ERROR;
bool success = row_or_done ((result = statement.step ()));
if (!success) {
@@ -421,9 +420,11 @@ namespace Postler {
}
Sqlite.Statement? temporary_statement = null;
- search_statement (folder, sql, ref temporary_statement);
+ string? search_value = search_statement (folder, sql, ref temporary_statement);
unowned Sqlite.Statement statement = temporary_statement != null
? temporary_statement : statement_list;
+ if (search_value != null && statement.bind_text (2, search_value, -1) != Sqlite.OK)
+ throw new GLib.FileError.FAILED (_("Failed to count messages: %s"), database.errmsg ());
int result = Sqlite.ERROR;
bool success = row_or_done (((result = statement.step ())));
if (!success) {
More information about the Xfce4-commits
mailing list