summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xfix-offsets10
1 files changed, 9 insertions, 1 deletions
diff --git a/fix-offsets b/fix-offsets
index e036a46..5635c8b 100755
--- a/fix-offsets
+++ b/fix-offsets
@@ -113,16 +113,24 @@ def proceed(opts, args):
avg /= cnt
ts[i] = False
for i in xrange(len_ts):
+ hunk = p.hunks[i]
+ if i > 0 and hunk.startsrc < p.hunks[i-1].startsrc: #+ p.hunks[i-1].linessrc:
+ #print >>sys.stderr, "Critical adjustment: {0}".format(i+1)
+ p.hunks[i-1].startsrc = hunk.startsrc - p.hunks[i-1].linessrc
+ for ii in xrange(i-1, len_ts):
+ ts[i] = True
+ break
ts[i] = ts[i] or abs(tres[i] - avg) > avg_limit
if i > 0:
ts[i] = ts[i] or abs(tres[i] - tres[i-1]) > (avg_limit/2)
if i < len_ts - 1:
ts[i] = ts[i] or abs(tres[i] - tres[i+1]) > (avg_limit/2)
if ts[i]:
- hunk = p.hunks[i]
delta = int(tres[i] + (tres[i] - avg) / 1.25)
hunk.startsrc += delta
hunk.starttgt += delta
+ else:
+ continue
avg_limit *= 1.25
for i in xrange(len_ts):
delta = tres[i]