+#define _POSIX_C_SOURCE 200809L
+
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#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;
}
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 */