psi_dump() & psi_validate()
[m6w6/ext-psi] / src / parser.re
index 0922ba1b0f23f6ceb3debb4b9ffbe8c058aa77ae..7ab169e0f5f7120b9c6fc16838870b1273dd0f3a 100644 (file)
@@ -1,6 +1,8 @@
 #include <stddef.h>
 #include <stdio.h>
 #include <assert.h>
+#include <errno.h>
+#include <string.h>
 
 #include "parser.h"
 #include "parser_proc.h"
@@ -14,15 +16,11 @@ PSI_Parser *PSI_ParserInit(PSI_Parser *P, const char *filename, psi_error_cb err
 {
        FILE *fp;
 
-       if (!P) {
-               P = malloc(sizeof(*P));
-       }
-       memset(P, 0, sizeof(*P));
-
        fp = fopen(filename, "r");
 
        if (!fp) {
-               perror(filename);
+               error(NULL, PSI_WARNING, "Could not open '%s' for reading: %s",
+                               filename, strerror(errno));
                return NULL;
        }