diff options
Diffstat (limited to 'gui')
-rw-r--r-- | gui/downloaddialog.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gui/downloaddialog.cpp b/gui/downloaddialog.cpp index 28a29fcb64..05d87c21d8 100644 --- a/gui/downloaddialog.cpp +++ b/gui/downloaddialog.cpp @@ -137,13 +137,15 @@ void DownloadDialog::selectDirectories() { Common::String localPath = dir.getPath(); //simple heuristic to determine which path separator to use - int backslashes = 0; - for (uint32 i = 0; i < localPath.size(); ++i) - if (localPath[i] == '/') --backslashes; - else if (localPath[i] == '\\') ++backslashes; - - if (backslashes > 0) localPath += '\\' + remoteDirectory.name(); - else localPath += '/' + remoteDirectory.name(); + if (localPath.size() && localPath.lastChar() != '/' && localPath.lastChar() != '\\') { + int backslashes = 0; + for (uint32 i = 0; i < localPath.size(); ++i) + if (localPath[i] == '/') --backslashes; + else if (localPath[i] == '\\') ++backslashes; + + if (backslashes > 0) localPath += '\\' + remoteDirectory.name(); + else localPath += '/' + remoteDirectory.name(); + } else localPath += remoteDirectory.name(); CloudMan.startDownload(remoteDirectory.path(), localPath); CloudMan.setDownloadTarget(this); |