]> pd.if.org Git - zpackage/blobdiff - lib/seterror.c
add support for notes
[zpackage] / lib / seterror.c
diff --git a/lib/seterror.c b/lib/seterror.c
new file mode 100644 (file)
index 0000000..337c722
--- /dev/null
@@ -0,0 +1,31 @@
+#define _POSIX_C_SOURCE 200809L
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+
+#include "zpm.h"
+
+void zpm_seterror(struct zpm *zpm, char *msgfmt, ...) {
+       char msg[1024];
+       va_list ap;
+
+       if (zpm->errmsg) {
+               free(zpm->errmsg);
+               zpm->errmsg = 0;
+       }
+
+       if (msgfmt != NULL) {
+               va_start(ap, msgfmt);
+               vsnprintf(msg, sizeof msg, msgfmt, ap);
+               va_end(ap);
+
+               msg[1023] = 0;
+               if (zpm->errmsg) {
+                       free(zpm->errmsg);
+               }
+
+               zpm->errmsg = strdup(msg);
+       }
+}