If a mask is missing, the TempFile class appends it to the filename.
This may be a problem with applications relying on the extension,
so explicitly add a mask.
zipped_ = formats.isZippedFile(filename_);
if (zipped_) {
zipped_ = formats.isZippedFile(filename_);
if (zipped_) {
- TempFile tempfile(filename_.toFilesystemEncoding());
+ string tempname = unzippedFileName(filename_.toFilesystemEncoding());
+ string const ext = getExtension(tempname);
+ if (!ext.empty())
+ tempname = changeExtension(tempname, "");
+ TempFile tempfile(tempname + "-XXXXXX." + ext);
tempfile.setAutoRemove(false);
unzipped_filename_ = tempfile.name();
if (unzipped_filename_.empty()) {
tempfile.setAutoRemove(false);
unzipped_filename_ = tempfile.name();
if (unzipped_filename_.empty()) {