X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fzip%2Fioapi.c;h=5b6fcc63ee27ce94849acd0e826da67ca701f1f6;hb=refs%2Fheads%2Fmaster-next-major-release;hp=0aa6347ac4106620b6c3d3aa851dd5b7f08e57ec;hpb=c42db18f39053cf2ec85943c37a20b8caa742d09;p=rocksndiamonds.git diff --git a/src/libgame/zip/ioapi.c b/src/libgame/zip/ioapi.c index 0aa6347a..5a31fcbf 100644 --- a/src/libgame/zip/ioapi.c +++ b/src/libgame/zip/ioapi.c @@ -121,7 +121,11 @@ static voidpf ZCALLBACK fopen64_file_func(ZIP_UNUSED voidpf opaque, const void * if ((filename != NULL) && (mode_fopen != NULL)) { - file = fopen64((const char*)filename, mode_fopen); + const char *fd_prefix = "fd:"; + if (strncmp(filename, fd_prefix, strlen(fd_prefix)) == 0) + file = fdopen(dup(atoi(&((const char*)filename)[strlen(fd_prefix)])), mode_fopen); + else + file = fopen64((const char*)filename, mode_fopen); return file_build_ioposix(file, (const char*)filename); } return file;