commit c057d4e7ee7a64954d0be7ddb544e175de6a904e Author: Enrico Forestieri <for...@lyx.org> Date: Fri Mar 13 17:24:09 2015 +0100
Make sure an unzipped file has correct extension. 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. diff --git a/src/graphics/GraphicsCacheItem.cpp b/src/graphics/GraphicsCacheItem.cpp index 4d18ce0..9fab10d 100644 --- a/src/graphics/GraphicsCacheItem.cpp +++ b/src/graphics/GraphicsCacheItem.cpp @@ -362,7 +362,11 @@ bool CacheItem::Impl::tryDisplayFormat(FileName & filename, string & from) 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()) {