X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=lib%2Fdbquery.c;h=f68eb4ab2489c2bdf3a6b121cafee2822ac78e95;hb=09c80a1f8918d888063f4d1a75921a99fe5f0b5c;hp=11131645d9b4d388c7229665515b588492a4164e;hpb=c907b8ec08b06a4a256fd12b79b4bcf5088fbb19;p=zpackage diff --git a/lib/dbquery.c b/lib/dbquery.c index 1113164..f68eb4a 100644 --- a/lib/dbquery.c +++ b/lib/dbquery.c @@ -2,6 +2,7 @@ #include #include +#include #include "sqlite3.h" #include "zpm.h" @@ -39,6 +40,7 @@ sqlite3_stmt *zpm_dbqueryv(struct zpm *zpm, char *query, va_list args) { zpm->error = rv; return 0; } + sqlite3_free(sql); return st; } @@ -83,6 +85,27 @@ void zpm_db_run(struct zpm *zpm, char *query, ...) { return ; } +int zpm_findhash(struct zpm *zpm, char *find, char *dest) { + int count; + char *found; + + count = zpm_db_int(zpm, "select count(*) from files where hash like '%q%%';", find); + if (count != 1) { + return count; + } + if (dest) { + found = zpm_db_string(zpm, "select hash from files where hash like '%s%%' limit 1;", find); + if (find) { + strcpy(dest, found); + free(found); + } else { + count = 0; + } + } + return count; + +} + char *zpm_db_string(struct zpm *zpm, char *query, ...) { sqlite3_stmt *st; va_list args;