X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=lib%2Fforeach_path.c;h=561e24f089b1674e88de4991b2a8e1ddd919f213;hb=30aa9bfe1e9a0e682f7c942b8e68054551f14857;hp=4afc122e1d4370861a3bde8cbf34bd2c5036640c;hpb=af49b10669467685a03ca860dd9d7c5fc3a590b5;p=zpackage diff --git a/lib/foreach_path.c b/lib/foreach_path.c index 4afc122..561e24f 100644 --- a/lib/foreach_path.c +++ b/lib/foreach_path.c @@ -31,6 +31,39 @@ void *data, char **errmsg) { } + sql = sqlite3_str_value(s); + if (!sql) { + sqlite3_str_finish(s); + zpm->error = 1; + return 0; + } + + zpm_exec(zpm, sql, callback, data, errmsg); + sqlite3_str_finish(s); + if (*errmsg) { + fprintf(stderr, "errmsg: %s\n", *errmsg); + zpm->error = 2; + return 0; + } + + return 1; +} + +int zpm_foreach_package(struct zpm *zpm, char *where, +int (*callback)(void *cbdata, int ncols, char **vals, char **cols), +void *data, char **errmsg) { + char *sql; + sqlite3_str *s; + + if (!zpm || zpm->error || !callback) return 0; + + s = sqlite3_str_new(zpm->db); + sqlite3_str_appendall(s, "select * from packages_pkgid"); + + if (where) { + sqlite3_str_appendf(s, " where %s", where); + } + sql = sqlite3_str_value(s); if (!sql) { sqlite3_str_finish(s);