diff src/dmres.c @ 958:985225a93aeb

Add error code parameter to dmError() and dmErrorVA().
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 27 Feb 2015 03:58:25 +0200
parents b01d04e44b6f
children d66b0b6c8bf8
line wrap: on
line diff
--- a/src/dmres.c	Fri Feb 27 02:21:57 2015 +0200
+++ b/src/dmres.c	Fri Feb 27 03:58:25 2015 +0200
@@ -340,16 +340,17 @@
     // Search PACK nodelist for file
     if ((node = dmPackFind(handle->lib->packFile->entries, handle->filename)) == NULL)
     {
-        dmError("Entry '%s' not found in PACK file.\n", handle->filename);
-        res = DMERR_NOT_FOUND;
+        res = dmError(DMERR_NOT_FOUND,
+            "Entry '%s' not found in PACK file.\n",
+            handle->filename);
         goto error;
     }
 
     // Seek to entry
     if (fseek(handle->lib->packFile->file, node->offset, SEEK_SET) == -1)
     {
-        dmError("Could not seek node position in PACK file.\n");
-        res = DMERR_FSEEK;
+        res = dmError(DMERR_FSEEK,
+            "Could not seek node position in PACK file.\n");
         goto error;
     }
 
@@ -381,8 +382,8 @@
     cres = inflateInit(&(cstream));
     if (cres != Z_OK)
     {
-        dmError("Could not initialize zlib stream inflation.\n");
-        res = DMERR_INIT_FAIL;
+        res = dmError(DMERR_INIT_FAIL,
+            "Could not initialize zlib stream inflation.\n");
         goto error;
     }
 
@@ -904,8 +905,8 @@
             char *fname = dm_strdup_printf("%s/%s", path, dh->d_name);
             if (stat(fname, &sbuf) == -1)
             {
-                res = dmGetErrno();
-                dmError("Could not stat() %s, #%d: %s\n",
+                res = dmError(dmGetErrno(),
+                    "Could not stat() %s, #%d: %s\n",
                     fname, res, dmErrorStr(res));
                 dmFree(fname);
                 goto out;
@@ -966,14 +967,17 @@
         {
             if ((flags & DRF_USE_STDIO) == 0)
             {
-                dmError("Error opening PACK file '%s', #%d: %s\n",
-                lib->packFilename, ret, dmErrorStr(ret));
-
-                return DMERR_INIT_FAIL;
+                return dmError(DMERR_INIT_FAIL,
+                    "Error opening PACK file '%s', #%d: %s\n",
+                    lib->packFilename, ret, dmErrorStr(ret));
             }
             else
-                dmError("Failed to open PACK, falling back to STDIO, '%s' %d: %s\n",
-                lib->packFilename, ret, dmErrorStr(ret));
+            {
+                // Non-fatal
+                dmError(DMERR_INIT_FAIL,
+                    "Failed to open PACK, falling back to STDIO, '%s' %d: %s\n",
+                    lib->packFilename, ret, dmErrorStr(ret));
+            }
         }
         else
         {
@@ -983,9 +987,9 @@
                 DMResource *res = dmResourceNew(lib, node->filename, node->size);
                 if (res == NULL)
                 {
-                    dmError("Could not allocate memory for resource node '%s' [0x%08x], %d.\n",
+                    return dmError(DMERR_INIT_FAIL,
+                        "Could not allocate memory for resource node '%s' [0x%08x], %d.\n",
                         node->filename, node->flags, node->size);
-                    return DMERR_INIT_FAIL;
                 }
 
                 res->fops = &dfPackFileOps;
@@ -1044,7 +1048,7 @@
         int res = dmPackClose(lib->packFile);
         if (res != DMERR_OK)
         {
-            dmError("Error closing PACK, #%i: %s\n",
+            dmError(res, "Error closing PACK, #%i: %s\n",
                 res, dmErrorStr(res));
         }
 
@@ -1097,7 +1101,7 @@
         // Attempt to preload the resource
         if ((ret = dmResourcePreload(lib->preload)) != DMERR_OK)
         {
-            dmError("Error preloading '%s', %d: %s\n",
+            dmError(ret, "Error preloading '%s', %d: %s\n",
                 lib->preload->filename, ret, dmErrorStr(ret));
             goto error;
         }