1 #define _POSIX_C_SOURCE 2
12 int zpm_foreach_path(struct zpm *zpm, char *pkgid, char *where,
13 int (*callback)(void *f, int ncols, char **vals, char **cols),
14 void *data, char **errmsg) {
18 if (!zpm || zpm->error || !callback) return 0;
20 s = sqlite3_str_new(zpm->db);
21 sqlite3_str_appendall(s, "select * from packagefiles_pkgid where ");
24 sqlite3_str_appendf(s, "%s", where);
26 sqlite3_str_appendall(s, "true");
30 sqlite3_str_appendf(s, " and printf('%%s-%%s-%%s', package, version, release) = %Q", pkgid);
34 sql = sqlite3_str_value(s);
36 sqlite3_str_finish(s);
41 zpm_exec(zpm, sql, callback, data, errmsg);
42 sqlite3_str_finish(s);
44 fprintf(stderr, "errmsg: %s\n", *errmsg);
52 int zpm_foreach_package(struct zpm *zpm, char *where,
53 int (*callback)(void *cbdata, int ncols, char **vals, char **cols),
54 void *data, char **errmsg) {
58 if (!zpm || zpm->error || !callback) return 0;
60 s = sqlite3_str_new(zpm->db);
61 sqlite3_str_appendall(s, "select * from packages_pkgid");
64 sqlite3_str_appendf(s, " where %s", where);
67 sql = sqlite3_str_value(s);
69 sqlite3_str_finish(s);
74 zpm_exec(zpm, sql, callback, data, errmsg);
75 sqlite3_str_finish(s);
77 fprintf(stderr, "errmsg: %s\n", *errmsg);