From 646935edb37b71225434ce78347f2536945a8ba9 Mon Sep 17 00:00:00 2001 From: jacob1 Date: Tue, 19 Feb 2019 23:24:39 -0500 Subject: [PATCH] Fix local saves with "." having their name cut off, add a warning for a few invalid file names --- src/gui/filebrowser/FileBrowserActivity.cpp | 2 +- src/gui/save/LocalSaveActivity.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gui/filebrowser/FileBrowserActivity.cpp b/src/gui/filebrowser/FileBrowserActivity.cpp index 29839dc15..10115ed57 100644 --- a/src/gui/filebrowser/FileBrowserActivity.cpp +++ b/src/gui/filebrowser/FileBrowserActivity.cpp @@ -69,7 +69,7 @@ class LoadFilesTask: public Task saveFiles.push_back(saveFile); ByteString filename = (*iter).SplitFromEndBy(PATH_SEP).After(); - filename = filename.SplitBy('.').Before(); + filename = filename.SplitFromEndBy('.').Before(); saveFile->SetDisplayName(filename.FromUtf8()); } catch(std::exception & e) diff --git a/src/gui/save/LocalSaveActivity.cpp b/src/gui/save/LocalSaveActivity.cpp index 3bfefb3b8..e74184167 100644 --- a/src/gui/save/LocalSaveActivity.cpp +++ b/src/gui/save/LocalSaveActivity.cpp @@ -90,7 +90,11 @@ void LocalSaveActivity::Save() virtual ~FileOverwriteConfirmation() { } }; - if(filenameField->GetText().length()) + if (filenameField->GetText().Contains('/') || filenameField->GetText().BeginsWith(".")) + { + new ErrorMessage("Error", "Invalid filename."); + } + else if (filenameField->GetText().length()) { ByteString finalFilename = ByteString(LOCAL_SAVE_DIR) + ByteString(PATH_SEP) + filenameField->GetText().ToUtf8() + ".cps"; save.SetDisplayName(filenameField->GetText());