MCPcopy Create free account
hub / github.com/Lotus6/AutoRepeater / patch_addPadding

Method patch_addPadding

src/burp/Utils/diff_match_patch.java:2069–2122  ·  view source on GitHub ↗

Add some padding on text start and end so that edges can match something. Intended to be called only from within patch_apply. @param patches Array of Patch objects. @return The padding string added to each side.

(LinkedList<Patch> patches)

Source from the content-addressed store, hash-verified

2067 * @return The padding string added to each side.
2068 */
2069 public String patch_addPadding(LinkedList<Patch> patches) {
2070 short paddingLength = this.Patch_Margin;
2071 String nullPadding = "";
2072 for (short x = 1; x <= paddingLength; x++) {
2073 nullPadding += String.valueOf((char) x);
2074 }
2075
2076 // Bump all the patches forward.
2077 for (Patch aPatch : patches) {
2078 aPatch.start1 += paddingLength;
2079 aPatch.start2 += paddingLength;
2080 }
2081
2082 // Add some padding on start of first diff.
2083 Patch patch = patches.getFirst();
2084 LinkedList<Diff> diffs = patch.diffs;
2085 if (diffs.isEmpty() || diffs.getFirst().operation != Operation.EQUAL) {
2086 // Add nullPadding equality.
2087 diffs.addFirst(new Diff(Operation.EQUAL, nullPadding));
2088 patch.start1 -= paddingLength; // Should be 0.
2089 patch.start2 -= paddingLength; // Should be 0.
2090 patch.length1 += paddingLength;
2091 patch.length2 += paddingLength;
2092 } else if (paddingLength > diffs.getFirst().text.length()) {
2093 // Grow first equality.
2094 Diff firstDiff = diffs.getFirst();
2095 int extraLength = paddingLength - firstDiff.text.length();
2096 firstDiff.text = nullPadding.substring(firstDiff.text.length())
2097 + firstDiff.text;
2098 patch.start1 -= extraLength;
2099 patch.start2 -= extraLength;
2100 patch.length1 += extraLength;
2101 patch.length2 += extraLength;
2102 }
2103
2104 // Add some padding on end of last diff.
2105 patch = patches.getLast();
2106 diffs = patch.diffs;
2107 if (diffs.isEmpty() || diffs.getLast().operation != Operation.EQUAL) {
2108 // Add nullPadding equality.
2109 diffs.addLast(new Diff(Operation.EQUAL, nullPadding));
2110 patch.length1 += paddingLength;
2111 patch.length2 += paddingLength;
2112 } else if (paddingLength > diffs.getLast().text.length()) {
2113 // Grow last equality.
2114 Diff lastDiff = diffs.getLast();
2115 int extraLength = paddingLength - lastDiff.text.length();
2116 lastDiff.text += nullPadding.substring(0, extraLength);
2117 patch.length1 += extraLength;
2118 patch.length2 += extraLength;
2119 }
2120
2121 return nullPadding;
2122 }
2123
2124 /**
2125 * Look through the patches and break up any which are longer than the

Callers 1

patch_applyMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected