diff --git a/src/sdl-instead/unpack.c b/src/sdl-instead/unpack.c index c11be3c..6660218 100644 --- a/src/sdl-instead/unpack.c +++ b/src/sdl-instead/unpack.c @@ -224,8 +224,6 @@ const char *password; char c = *(filename_withoutpath - 1); *(filename_withoutpath - 1) = '\0'; makedir(write_filename); - if (!*zip_game_dirname) - strcpy(zip_game_dirname, filename_inzip); *(filename_withoutpath - 1) = c; fout = fopen64(write_filename, "wb"); } @@ -235,6 +233,12 @@ const char *password; } } + if ((filename_withoutpath != (char *)filename_inzip) && + !*zip_game_dirname) { + strcpy(zip_game_dirname, filename_inzip); + zip_game_dirname[strcspn(zip_game_dirname,"/\\")] = 0; + } + if (!*zip_game_dirname) { err = -1; fprintf(stderr, "No dir in zip...\n");