# # # patch "guitone/src/model/GetFile.cpp" # from [8e75d44d5d80e8fa38a7ab7ebe0f58844b20e315] # to [804d622b89d86576e92a3dd043b792ebf1366a26] # ============================================================ --- guitone/src/model/GetFile.cpp 8e75d44d5d80e8fa38a7ab7ebe0f58844b20e315 +++ guitone/src/model/GetFile.cpp 804d622b89d86576e92a3dd043b792ebf1366a26 @@ -108,7 +108,6 @@ void GetFile::applyDiff(Diff * diff, Fil void GetFile::applyDiff(Diff * diff, FileVersion version) { int curLine = 0; - int leftLastHunk = 0, rightLastHunk = 0; qDebug("GetFile::applyDiff"); @@ -116,31 +115,27 @@ void GetFile::applyDiff(Diff * diff, Fil { DiffHunk * hunk = diff->hunks.at(i); - qDebug("GetFile::applyDiff: hunk: %d", i); - // skip unrelated left/right lines - if ((version == Left || version == Both) && hunk->leftStart > 0) + if ((version == Left || version == Both)) { - curLine += hunk->leftStart - leftLastHunk; + curLine = hunk->leftStart; } if (version == Right && hunk->rightStart > 0) { - curLine += hunk->rightStart - rightLastHunk; + curLine = hunk->rightStart; } qDebug("GetFile::applyDiff: current line: %d", curLine); - leftLastHunk = hunk->leftStart + hunk->leftCount; - rightLastHunk = hunk->rightStart + hunk->rightCount; - int leftLastLine = 0, rightLastLine = 0; for (int j=0, t=hunk->lineGroups.size(); jlineGroups.at(j); - qDebug("GetFile::applyDiff: linegroup: %d, %d", j, group->state); + qDebug("GetFile::applyDiff: linegroup: %d, State: %d", j, group->state); + qDebug("StartPos: %d, ChangeLen: %d", group->startPos, group->changeLen); qDebug("Lines: %s", qPrintable(group->contents.join("\\n"))); if (version == Left) @@ -230,11 +225,10 @@ void GetFile::applyDiff(Diff * diff, Fil // mark deleted lines for (int k = curLine, l = k+group->changeLen; kmarker = ContentLine::Removed; } int oldLineStart = curLine; - curLine += group->changeLen; // go to the next add part j += 1; @@ -245,7 +239,7 @@ void GetFile::applyDiff(Diff * diff, Fil qDebug("adding %d added lines", group->changeLen); for (int x=0, y=group->contents.size(); xcontents.at(x), @@ -254,9 +248,10 @@ void GetFile::applyDiff(Diff * diff, Fil ) ); } - curLine += group->changeLen; - qDebug("renumbering the following contents starting from %d", curLine); + int lineDiff = hunk->rightCount - hunk->leftCount; + curLine += lineDiff; + // raise the line count for the other items for (int x=curLine, y=fileContents.size(); xnumber, fileContents.at(i)->marker); - } - + reset(); }