From 4c6338888ddf1cae535f94bb6c2777f58ff85d3f Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Tue, 8 Aug 2017 09:48:53 +0300 Subject: [PATCH] Save: Fix issues with adding an extension if missing - The code should search for the last '.', not the first. - Case-insensitively compare the extensions. --- src/platform/wxwidgets/loadsave.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/platform/wxwidgets/loadsave.cpp b/src/platform/wxwidgets/loadsave.cpp index 925f86d3..fcbe116a 100644 --- a/src/platform/wxwidgets/loadsave.cpp +++ b/src/platform/wxwidgets/loadsave.cpp @@ -82,8 +82,13 @@ filedialog_output_params show_filedialog(wxWindow* parent, const std::string& ti if(saving && p.types[findex].primaryext != "") { //Append extension if needed. std::string ext = p.types[findex].primaryext; - size_t dpos = filename.find_first_of("."); - if(dpos > filename.length() || filename.substr(dpos + 1) != ext) + size_t dpos = filename.find_last_of("."); + std::string extension; + if(dpos < filename.length()) { + extension = filename.substr(dpos + 1); + std::transform(extension.begin(), extension.end(), extension.begin(), ::tolower); + } + if(extension != ext) filename = filename + "." + ext; } filedialog_output_params r; -- 2.11.4.GIT