MCPcopy Create free account
hub / github.com/Codeya-IDE/deepin-ide / patch_addPadding

Method patch_addPadding

3rdparty/diff-match-patch/diff_match_patch.cpp:1862–1917  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1860
1861
1862QString diff_match_patch::patch_addPadding(QList<Patch> &patches) {
1863 short paddingLength = Patch_Margin;
1864 QString nullPadding = "";
1865 for (short x = 1; x <= paddingLength; x++) {
1866 nullPadding += QChar((ushort)x);
1867 }
1868
1869 // Bump all the patches forward.
1870 QMutableListIterator<Patch> pointer(patches);
1871 while (pointer.hasNext()) {
1872 Patch &aPatch = pointer.next();
1873 aPatch.start1 += paddingLength;
1874 aPatch.start2 += paddingLength;
1875 }
1876
1877 // Add some padding on start of first diff.
1878 Patch &firstPatch = patches.first();
1879 QList<Diff> &firstPatchDiffs = firstPatch.diffs;
1880 if (firstPatchDiffs.empty() || firstPatchDiffs.first().operation != EQUAL) {
1881 // Add nullPadding equality.
1882 firstPatchDiffs.prepend(Diff(EQUAL, nullPadding));
1883 firstPatch.start1 -= paddingLength; // Should be 0.
1884 firstPatch.start2 -= paddingLength; // Should be 0.
1885 firstPatch.length1 += paddingLength;
1886 firstPatch.length2 += paddingLength;
1887 } else if (paddingLength > firstPatchDiffs.first().text.length()) {
1888 // Grow first equality.
1889 Diff &firstDiff = firstPatchDiffs.first();
1890 int extraLength = paddingLength - firstDiff.text.length();
1891 firstDiff.text = safeMid(nullPadding, firstDiff.text.length(),
1892 paddingLength - firstDiff.text.length()) + firstDiff.text;
1893 firstPatch.start1 -= extraLength;
1894 firstPatch.start2 -= extraLength;
1895 firstPatch.length1 += extraLength;
1896 firstPatch.length2 += extraLength;
1897 }
1898
1899 // Add some padding on end of last diff.
1900 Patch &lastPatch = patches.first();
1901 QList<Diff> &lastPatchDiffs = lastPatch.diffs;
1902 if (lastPatchDiffs.empty() || lastPatchDiffs.last().operation != EQUAL) {
1903 // Add nullPadding equality.
1904 lastPatchDiffs.append(Diff(EQUAL, nullPadding));
1905 lastPatch.length1 += paddingLength;
1906 lastPatch.length2 += paddingLength;
1907 } else if (paddingLength > lastPatchDiffs.last().text.length()) {
1908 // Grow last equality.
1909 Diff &lastDiff = lastPatchDiffs.last();
1910 int extraLength = paddingLength - lastDiff.text.length();
1911 lastDiff.text += nullPadding.left(extraLength);
1912 lastPatch.length1 += extraLength;
1913 lastPatch.length2 += extraLength;
1914 }
1915
1916 return nullPadding;
1917}
1918
1919

Callers

nothing calls this directly

Calls 6

leftMethod · 0.80
DiffClass · 0.70
nextMethod · 0.45
emptyMethod · 0.45
lengthMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected