--- /dev/null
+#define _POSIX_C_SOURCE 2
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+#include <string.h>
+
+#include "sqlite3.h"
+#include "zpm.h"
+
+int zpm_foreach_path(struct zpm *zpm, char *pkgid,
+int (*callback)(void *f, int ncols, char **vals, char **cols),
+void *data, char **errmsg) {
+
+ char *files = "select * from packagefiles where"
+ " printf('%%s-%%s-%%s', package, version, release) = %Q"
+ " order by path"
+ ;
+
+ char *sql;
+
+ sql = sqlite3_mprintf(files, pkgid);
+ if (!sql) {
+ return 0;
+ zpm->error = 1;
+ }
+
+ zpm_exec(zpm, sql, callback, data, errmsg);
+ if (errmsg) {
+ zpm->error = 2;
+ return 0;
+ }
+
+ return 1;
+}
int zpm_merge(struct zpm *z, struct zpm *src, uint32_t flags);
+#if 0
void uncompresslzma(void *buf, size_t bufsize, FILE *out);
void *compresslzma(void *buf, size_t bufsize, size_t *len);
+#endif
+
#define SQLERROR(x) fprintf(stderr, "%s %d: %s\n", __func__, __LINE__, (x))
int zpm_hash(char *path, char *hash, uint32_t flags);
int zpm_readopts(struct zpm *pkg, int ac, char **av);
int zpm_exec(struct zpm *z, const char *sql, int(*callback)(void *, int, char **, char**), void *arg, char **errmsg);
+int zpm_foreach_path(struct zpm *zpm, char *pkgid,
+int (*callback)(void *f, int ncols, char **vals, char **cols),
+void *data, char **errmsg);
+
#endif