The unified diff between revisions [869f0c37..] and [e24ccc23..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'database.cc'
#
#
# patch "database.cc"
# from [181e7b79e4435b2ffa1561ce8b9162a41563ed72]
# to [1ce26993177acbeb3e3d18aba17f43700372fa3c]
#
============================================================
--- database.cc 181e7b79e4435b2ffa1561ce8b9162a41563ed72
+++ database.cc 1ce26993177acbeb3e3d18aba17f43700372fa3c
@@ -12,6 +12,7 @@
#include <vector>
#include <stdarg.h>
+#include <string.h>
#include <boost/shared_ptr.hpp>
#include <boost/lexical_cast.hpp>
@@ -643,24 +644,28 @@ database::execute(char const * query, ..
database::execute(char const * query, ...)
{
va_list ap;
- int res;
- char * errmsg = NULL;
va_start(ap, query);
// log it
char * formatted = sqlite3_vmprintf(query, ap);
- string qq(formatted);
- if (qq.size() > constants::db_log_line_sz)
- qq = qq.substr(0, constants::db_log_line_sz) + string(" ...");
+ string qq;
+
+ if (strlen(formatted) > constants::db_log_line_sz)
+ {
+ qq.assign(formatted, constants::db_log_line_sz);
+ qq.append(" ...");
+ }
+ else
+ {
+ qq = formatted;
+ }
L(F("db.execute(\"%s\")\n") % qq);
- sqlite3_free(formatted);
- va_end(ap);
- va_start(ap, query);
-
// do it
- res = sqlite3_exec_vprintf(sql(), query, NULL, NULL, &errmsg, ap);
+ char * errmsg = NULL;
+ int res = sqlite3_exec(sql(), formatted, NULL, NULL, &errmsg);
+ sqlite3_free(formatted);
va_end(ap);