summaryrefslogtreecommitdiffstats
path: root/docs/release/src/osd/winui/screenshot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'docs/release/src/osd/winui/screenshot.cpp')
-rw-r--r--docs/release/src/osd/winui/screenshot.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/docs/release/src/osd/winui/screenshot.cpp b/docs/release/src/osd/winui/screenshot.cpp
index f250a7f38d0..868c3b0a91d 100644
--- a/docs/release/src/osd/winui/screenshot.cpp
+++ b/docs/release/src/osd/winui/screenshot.cpp
@@ -1,4 +1,5 @@
// For licensing and usage information, read docs/winui_license.txt
+// MASTER
//****************************************************************************
/***************************************************************************
@@ -385,6 +386,26 @@ static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name
}
zip.reset();
}
+ else
+ {
+ fname = std::string(dir_name) + PATH_SEPARATOR + std::string(zip_name) + ".7z";
+ ziperr = util::archive_file::open_zip(fname, zip);
+
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ int res = zip->search(filename, false);
+ if (res >= 0)
+ {
+ *buffer = malloc(zip->current_uncompressed_length());
+ ziperr = zip->decompress(*buffer, zip->current_uncompressed_length());
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file);
+ }
+ }
+ zip.reset();
+ }
+ }
return filerr;
}