From fe850695479818faa75e3d05079c0e40b96ab15b Mon Sep 17 00:00:00 2001
From: philippegorley <philippe.gorley@savoirfairelinux.com>
Date: Wed, 7 Nov 2018 13:57:44 -0500
Subject: [PATCH] file transfer: rename duplicate files

Add duplicate number after filename, but before extension, and start
count at 1 instead of 0.

Before, it would be '(0)file.jpg', now it is 'file (1).jpg'.

Change-Id: I8bb35cfce63447cf024e5b5dfb18a0410b507ef6
---
 src/chatview.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/chatview.cpp b/src/chatview.cpp
index 6b783afc..85f484ab 100644
--- a/src/chatview.cpp
+++ b/src/chatview.cpp
@@ -252,8 +252,12 @@ webkit_chat_container_script_dialog(GtkWidget* webview, gchar *interaction, Chat
                 auto wantedFilename = filename + info.displayName;
                 auto duplicate = 0;
                 while (std::ifstream(wantedFilename).good()) {
-                    wantedFilename = filename + "(" + std::to_string(duplicate) + ")" + info.displayName;
                     ++duplicate;
+                    auto extensionIdx = info.displayName.find_last_of(".");
+                    if (extensionIdx == std::string::npos)
+                        wantedFilename = filename + info.displayName + " (" + std::to_string(duplicate) + ")";
+                    else
+                        wantedFilename = filename + info.displayName.substr(0, extensionIdx) + " (" + std::to_string(duplicate) + ")" + info.displayName.substr(extensionIdx);
                 }
                 model->acceptTransfer(priv->conversation_->uid, interactionId, wantedFilename);
             } catch (...) {
-- 
GitLab