added optional button to restart game (door, panel and touch variants)
[rocksndiamonds.git] / src / libgame / zip / miniunz.c
index b068486e457ffb190eae8f754e0682fd01ef2106..1ca632a96bb262f9069475f94eb7a8bc50824dac 100644 (file)
@@ -389,7 +389,7 @@ static int miniunz_extract_currentfile(unzFile uf, int opt_extract_without_path,
     err = unzGetCurrentFileInfo64(uf, &file_info, filename_inzip, sizeof(filename_inzip), NULL, 0, NULL, 0);
     if (err != UNZ_OK)
     {
-        debug_printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
+        debug_printf("error %d with zipfile in unzGetCurrentFileInfo\n", err);
         return err;
     }
 
@@ -628,18 +628,25 @@ char **zip_extract(char *filename, char *directory)
        return NULL;
     }
 
-    if (CHDIR(directory))      // change to target directory
+    if (CHDIR(directory) != 0)         // change to target directory
     {
-      debug_printf("Cannot change to directory '%s'!\n", directory);
+        debug_printf("Cannot change to directory '%s'!\n", directory);
 
-      unzClose(uf);
+        unzClose(uf);
 
-      return NULL;
+        return NULL;
     }
 
     int success = (miniunz_extract_all(uf, 0, 1, NULL) == UNZ_OK);
 
-    CHDIR(last_directory);     // change back to previous directory
+    if (CHDIR(last_directory) != 0)    // change back to previous directory
+    {
+        debug_printf("Cannot change to directory '%s'!\n", last_directory);
+
+        unzClose(uf);
+
+        return NULL;
+    }
 
     unzClose(uf);