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_status 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);
33 sql = sqlite3_str_value(s);
35 sqlite3_str_finish(s);
40 zpm_exec(zpm, sql, callback, data, errmsg);
41 sqlite3_str_finish(s);
43 fprintf(stderr, "errmsg: %s\n", *errmsg);
51 int zpm_foreach_package(struct zpm *zpm, char *where,
52 int (*callback)(void *cbdata, int ncols, char **vals, char **cols),
53 void *data, char **errmsg) {
57 if (!zpm || zpm->error || !callback) return 0;
59 s = sqlite3_str_new(zpm->db);
60 sqlite3_str_appendall(s, "select * from packages_pkgid");
63 sqlite3_str_appendf(s, " where %s", where);
66 sql = sqlite3_str_value(s);
68 sqlite3_str_finish(s);
73 zpm_exec(zpm, sql, callback, data, errmsg);
74 sqlite3_str_finish(s);
76 fprintf(stderr, "errmsg: %s\n", *errmsg);