public Hunk(DiffItem item, int prevDist, int nextDist,
int maxA, int maxB)
{
this.item = item;
ctx1Start = Math.Max(item.StartA - prevDist, 0);
int proposedEnd = Math.Min(item.StartA, ctx1Start + prevDist);
ctx1End = Math.Min(proposedEnd, maxA);
if (nextDist >= CONTEXT)
{
ctx2End = Math.Min(item.StartB + item.insertedB + nextDist, maxB);
int proposedStart = Math.Max(item.StartB + item.insertedB, ctx2End - nextDist);
//Console.WriteLine("proposedStart {0}, nextDist {1}", proposedStart, nextDist);
ctx2Start = Math.Min(proposedStart, ctx2End);
}
ctxLineCnt = (ctx1End - ctx1Start) + (ctx2End - ctx2Start);
//Console.WriteLine(String.Format("ctx1Start={0} ctx1End={1} ctx2Start={2} ctx2End={3} ctxLineCnt={4}\nmaxB={5} prevDist={6} nextDist={7}",
// ctx1Start, ctx1End, ctx2Start, ctx2End, ctxLineCnt, maxB, prevDist, nextDist));
}