From 39d4fd9cfb9ed7ecbe950b895ddc2311d12eaa2c Mon Sep 17 00:00:00 2001 From: B Stack Date: Sun, 21 Jun 2020 16:14:36 -0400 Subject: WIP: ffs rpm It appears I cannot easily revert to std=c++17 behavior, so all releases with gcc < 10 will fail. --- freefilesync/ffs_no_eraseif.patch | 52 +++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'freefilesync/ffs_no_eraseif.patch') diff --git a/freefilesync/ffs_no_eraseif.patch b/freefilesync/ffs_no_eraseif.patch index f4a7b46..71239e4 100644 --- a/freefilesync/ffs_no_eraseif.patch +++ b/freefilesync/ffs_no_eraseif.patch @@ -11,28 +11,28 @@ diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source //get or create mutex std::weak_ptr& weakPtr = pathLocks[nativePath]; -diff -x '*.swp' -x '*.git*' -x '*.orig' -x '*.rej' -Naur 10.24-0/FreeFileSync/Source/afs/gdrive.cpp 10.24-1/FreeFileSync/Source/afs/gdrive.cpp ---- 10.18-0/FreeFileSync/Source/afs/gdrive.cpp 2019-11-20 16:15:55.828668123 -0500 -+++ 10.24-1/FreeFileSync/Source/afs/gdrive.cpp 2020-05-18 10:30:32.420537123 -0400 -@@ -1578,7 +1578,7 @@ +diff -Naur 10.25-0/FreeFileSync/Source/afs/gdrive.cpp 10.25-1/FreeFileSync/Source/afs/gdrive.cpp +--- 10.25-0/FreeFileSync/Source/afs/gdrive.cpp 2020-06-19 16:17:15.000000000 -0400 ++++ 10.25-1/FreeFileSync/Source/afs/gdrive.cpp 2020-06-20 20:54:52.438669026 -0400 +@@ -1930,7 +1930,7 @@ if (auto it = itemDetails_.find(itemId); it != itemDetails_.end()) { - GoogleItemDetails detailsNew = it->second; + GdriveItemDetails detailsNew = it->second; - std::erase_if(detailsNew.parentIds, [&](const std::string& id) { return id == parentIdOld; }); + eraseIf(detailsNew.parentIds, [&](const std::string& id) { return id == parentIdOld; }); - notifyItemUpdate(stateDelta, itemId, detailsNew); + notifyItemUpdated(stateDelta, itemId, &detailsNew); } else //conflict!!! -@@ -1592,7 +1592,7 @@ - GoogleItemDetails detailsNew = it->second; - detailsNew.itemName = utfTo(newName); +@@ -1944,7 +1944,7 @@ + GdriveItemDetails detailsNew = it->second; + detailsNew.itemName = newName; - std::erase_if(detailsNew.parentIds, [&](const std::string& id) { return id == parentIdFrom || id == parentIdTo; }); // + eraseIf(detailsNew.parentIds, [&](const std::string& id) { return id == parentIdFrom || id == parentIdTo; }); // detailsNew.parentIds.push_back(parentIdTo); //not a duplicate - notifyItemUpdate(stateDelta, itemId, detailsNew); -@@ -1701,7 +1701,7 @@ + notifyItemUpdated(stateDelta, itemId, &detailsNew); +@@ -2095,7 +2095,7 @@ return; //=> avoid misleading changeLog_ entries after Google Drive sync!!! //update change logs (and clean up obsolete entries) @@ -41,7 +41,7 @@ diff -x '*.swp' -x '*.git*' -x '*.orig' -x '*.rej' -Naur 10.24-0/FreeFileSync/So { if (std::shared_ptr iid = weakPtr.lock()) { -@@ -1722,15 +1722,15 @@ +@@ -2116,15 +2116,15 @@ std::vector parentIdsNew = details->parentIds; std::vector parentIdsRemoved = it->second.parentIds; @@ -58,9 +58,9 @@ diff -x '*.swp' -x '*.git*' -x '*.orig' -x '*.rej' -Naur 10.24-0/FreeFileSync/So - std::erase_if(itP->second.childItems, [&](auto itChild) { return itChild == it; }); + eraseIf(itP->second.childItems, [&](auto itChild) { return itChild == it; }); //if all parents are removed, Google Drive will (recursively) delete the item => don't prematurely do this now: wait for change notifications! + //OR: item without parents located in "Shared with me", but referenced via Shortcut => don't remove!!! - it->second = *details; -@@ -1749,7 +1749,7 @@ +@@ -2144,7 +2144,7 @@ { for (const std::string& parentId : it->second.parentIds) //1. delete from parent folders if (auto itP = folderContents_.find(parentId); itP != folderContents_.end()) @@ -69,8 +69,8 @@ diff -x '*.swp' -x '*.git*' -x '*.orig' -x '*.rej' -Naur 10.24-0/FreeFileSync/So itemDetails_.erase(it); } -@@ -1757,7 +1757,7 @@ - if (auto itP = folderContents_.find(itemId); itP != folderContents_.end()) +@@ -2153,7 +2153,7 @@ + itP != folderContents_.end()) { for (auto itChild : itP->second.childItems) //2. delete as parent from child items (don't wait for change notifications of children) - std::erase_if(itChild->second.parentIds, [&](const std::string& id) { return id == itemId; }); @@ -242,18 +242,18 @@ diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source SetString(pos, wxString()); //in contrast to Delete(), this one does not kill the drop-down list and gives a nice visual feedback! //Delete(pos); -diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/file_view.cpp 10.18-2/FreeFileSync/Source/ui/file_view.cpp ---- 10.18-1/FreeFileSync/Source/ui/file_view.cpp 2019-11-20 16:15:55.849668360 -0500 -+++ 10.18-2/FreeFileSync/Source/ui/file_view.cpp 2019-11-20 17:57:30.562558429 -0500 -@@ -253,7 +253,7 @@ - rowPositionsFirstChild_.clear(); - +diff -Naur 10.25-0/FreeFileSync/Source/ui/file_view.cpp 10.25-1/FreeFileSync/Source/ui/file_view.cpp +--- 10.25-0/FreeFileSync/Source/ui/file_view.cpp 2020-06-19 16:17:15.000000000 -0400 ++++ 10.25-1/FreeFileSync/Source/ui/file_view.cpp 2020-06-20 20:55:25.978009894 -0400 +@@ -321,7 +321,7 @@ + void FileView::removeInvalidRows() + { //remove rows that have been deleted meanwhile -- std::erase_if(sortedRef_, [&](const RefIndex& refIdx) { return !FileSystemObject::retrieve(refIdx.objId); }); -+ eraseIf(sortedRef_, [&](const RefIndex& refIdx) { return !FileSystemObject::retrieve(refIdx.objId); }); - } - +- std::erase_if(sortedRef_, [&](const FileSystemObject::ObjectId& objId) { return !FileSystemObject::retrieve(objId); }); ++ eraseIf(sortedRef_, [&](const FileSystemObject::ObjectId& objId) { return !FileSystemObject::retrieve(objId); }); + viewRef_ .clear(); + rowPositions_ .clear(); diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/folder_history_box.h 10.18-2/FreeFileSync/Source/ui/folder_history_box.h --- 10.18-1/FreeFileSync/Source/ui/folder_history_box.h 2019-11-20 16:15:55.849668360 -0500 +++ 10.18-2/FreeFileSync/Source/ui/folder_history_box.h 2019-11-20 17:57:30.562558429 -0500 -- cgit