return 1;
}
+/* wrapper for sqlite3_exec */
+int zpm_exec(struct zpm *z, const char *sql, int(*callback)(void *, int, char **, char**), void *arg, char **errmsg) {
+ return sqlite3_exec(z->db, sql, callback, arg, errmsg);
+}
+
int zpm_rollback(struct zpm *z) {
char *errstr = 0;
sqlite3_exec(z->db, "rollback;", NULL, NULL, &errstr);
return 1;
}
+static int zpm_sqlite_vercmp(void *not_used, int unknown, const void *a,
+ int unk2, const void *b) {
+ /* not sure what the ints are, possibly string lengths */
+ not_used = 0; /* suppress warning */
+ unknown = 0; /* suppress warning */
+ unk2 = 0;
+ return zpm_vercmp(a, b);
+}
+
+int zpm_addvercmp(struct zpm *pkg) {
+ return sqlite3_create_collation(
+ pkg->db, "vercmp", SQLITE_UTF8, NULL,
+ zpm_sqlite_vercmp
+ );
+}
+
/* set package struct variables, database, environment, then command line */
int zpm_readopts(struct zpm *pkg, int ac, char **av) {
char *ev;