summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mpq-file.c6
-rw-r--r--mpq-fs.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/mpq-file.c b/mpq-file.c
index 608f42d..149f824 100644
--- a/mpq-file.c
+++ b/mpq-file.c
@@ -116,8 +116,12 @@ struct mpq_file_t * mpqlib_open_file(struct mpq_archive_t * mpq_a, int entry) {
struct mpq_file_t * mpqlib_open_filename(struct mpq_archive_t * mpq_a, const char * fname) {
int e;
- if ((e = mpqlib_find_hash_entry_by_name(mpq_a, fname, 0, 0)) < 0)
+ __mpqlib_errno = MPQLIB_ERROR_NO_ERROR;
+
+ if ((e = mpqlib_find_hash_entry_by_name(mpq_a, fname, 0, 0)) < 0) {
+ __mpqlib_errno = MPQLIB_ERROR_FILE_NOT_FOUND;
return NULL;
+ }
return mpqlib_open_file(mpq_a, e);
}
diff --git a/mpq-fs.c b/mpq-fs.c
index c2934f8..f608c24 100644
--- a/mpq-fs.c
+++ b/mpq-fs.c
@@ -5,6 +5,8 @@
#include "hashtab.h"
#include "mpq-fs.h"
#include "mpq-misc.h"
+#include "mpq-errors.h"
+#include "errors.h"
#include "stalloc.h"
#define MAX_FNAME 2048
@@ -122,12 +124,15 @@ struct mpq_file_t * mpqlib_fs_open(const char * _fname) {
hash_entry * entry;
entry = find_file(fname);
+ __mpqlib_errno = MPQLIB_ERROR_NO_ERROR;
free(fname);
if (entry) {
return mpqlib_open_file(entry->mpq_a, entry->entry);
}
+
+ __mpqlib_errno = MPQLIB_ERROR_FILE_NOT_FOUND;
return NULL;
}