X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=lib%2Fscript_hash.c;h=60c87ede8eb4e1b23ab107f40f93de479d0f01bd;hb=e7ce7c71c84e3e2a394562a6adec73062759f5df;hp=d4f03fafbff9f4940d645cdf2033e8ce0e25e4a0;hpb=7fa585701657aa1969f2116e71bfcb18c00ca7f0;p=zpackage diff --git a/lib/script_hash.c b/lib/script_hash.c index d4f03fa..60c87ed 100644 --- a/lib/script_hash.c +++ b/lib/script_hash.c @@ -1,3 +1,5 @@ +#define _POSIX_C_SOURCE 200809L + #include #include #include @@ -6,16 +8,19 @@ #include "zpm.h" int zpm_script_hash(struct zpm *zpm, char *pkgstr, char *phase, char *hash) { - char *pkgid; - char *template = "select hash from scripts_pkgid where pkgid = %q and phase = %q"; + char *pkgid = 0; + char *template = "select hash from scripts_pkgid where pkgid = %Q and stage = %Q"; sqlite3_stmt *st; pkgid = zpm_findpkg(zpm, pkgstr); st = zpm_dbquery(zpm, template, pkgid, phase); + free(pkgid); if (!st) { + zpm->error = 1; + zpm->errmsg = strdup(sqlite3_errmsg(zpm->db)); return 0; } @@ -26,6 +31,7 @@ int zpm_script_hash(struct zpm *zpm, char *pkgstr, char *phase, char *hash) { hash[ZPM_HASH_STRLEN] = 0; break; default: zpm->error = 1; /* fall through */ + zpm->errmsg = strdup(sqlite3_errmsg(zpm->db)); case SQLITE_DONE: sqlite3_finalize(st); return 0; break; /* not found */