commit ee6583ff94497c290898444da5ce3853b89e937d
Author: Enrico Forestieri <[email protected]>
Date: Fri Mar 13 18:12:08 2015 +0100
Make sure that a generated temporary filename doesn't end with a dot.
This may happen if the extension is empty, and a filename ending with
a dot may give troubles on Windows.
diff --git a/src/graphics/GraphicsCacheItem.cpp
b/src/graphics/GraphicsCacheItem.cpp
index 9fab10d..2e8c415 100644
--- a/src/graphics/GraphicsCacheItem.cpp
+++ b/src/graphics/GraphicsCacheItem.cpp
@@ -364,9 +364,10 @@ bool CacheItem::Impl::tryDisplayFormat(FileName &
filename, string & from)
if (zipped_) {
string tempname =
unzippedFileName(filename_.toFilesystemEncoding());
string const ext = getExtension(tempname);
+ tempname = changeExtension(tempname, "") + "-XXXXXX";
if (!ext.empty())
- tempname = changeExtension(tempname, "");
- TempFile tempfile(tempname + "-XXXXXX." + ext);
+ tempname = addExtension(tempname, ext);
+ TempFile tempfile(tempname);
tempfile.setAutoRemove(false);
unzipped_filename_ = tempfile.name();
if (unzipped_filename_.empty()) {