OSDN Git Service

MergeEditView.cpp: Fix an issue where WinMerge couldn't merge deleted word level...
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 1 Sep 2019 07:28:33 +0000 (16:28 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 1 Sep 2019 07:28:33 +0000 (16:28 +0900)
Src/MergeEditView.cpp

index 3a94165..230b68d 100644 (file)
@@ -366,8 +366,10 @@ void CMergeEditView::GetFullySelectedDiffs(int & firstDiff, int & lastDiff, int
                                vector<WordDiff> worddiffs = pd->GetWordDiffArrayInDiffBlock(firstDiff);
                                for (size_t i = 0; i < worddiffs.size(); ++i)
                                {
+                                       int worddiffLen = worddiffs[i].end[m_nThisPane] - worddiffs[i].begin[m_nThisPane];
                                        if (worddiffs[i].endline[m_nThisPane] > firstLine ||
-                                               (firstLine == worddiffs[i].endline[m_nThisPane] && worddiffs[i].end[m_nThisPane] - 1 >= ptStart.x))
+                                               (firstLine == worddiffs[i].endline[m_nThisPane] && 
+                                                worddiffs[i].end[m_nThisPane] - (worddiffLen == 0 ? 0 : 1) >= ptStart.x))
                                        {
                                                firstWordDiff = static_cast<int>(i);
                                                break;