History

Plan 9 from Bell Labs Fourth Edition 2005-01-29

David du Colombier committed 21 years ago

Commit 27e10911 parent 1b13ae89 files · +62 −26Browse files

Showing the changes to sys/src/cmd/diff/diffio.c (1 of 9 files). Show all

Unified · Split

sys/src/cmd/diff/diffio.c+22−6
@@ -302,6 +302,7 @@ change(int a, int b, int c, int d) · 301 unmodified lines
302302 range(a, b, " ");
303303 break;
304304 case 'c':
305+ case 'a':
305306 if(nchanges%1024 == 0)
306307 changes = erealloc(changes, (nchanges+1024)*sizeof(changes[0]));
307308 ch = &changes[nchanges++];
@@ -348,24 +349,39 @@ flushchanges(void) · 40 unmodified lines
348349
349350 for(i=0; i<nchanges; ){
350351 j = changeset(i);
351− a = changes[i].a;
352− b = changes[j-1].b;
353− c = changes[i].c;
354− d = changes[j-1].d;
352+ a = changes[i].a-Lines;
353+ b = changes[j-1].b+Lines;
354+ c = changes[i].c-Lines;
355+ d = changes[j-1].d+Lines;
356+ if(a < 1)
357+ a = 1;
358+ if(c < 1)
359+ c = 1;
360+ if(b > len[0])
361+ b = len[0];
362+ if(d > len[1])
363+ d = len[1];
364+ if(mode == 'a'){
365+ a = 1;
366+ b = len[0];
367+ c = 1;
368+ d = len[1];
369+ j = nchanges;
370+ }
355371 Bprint(&stdout, "%s:", file1);
356372 range(a, b, ",");
357373 Bprint(&stdout, " - ");
358374 Bprint(&stdout, "%s:", file2);
359375 range(c, d, ",");
360376 Bputc(&stdout, '\n');
361− at = a-Lines;
377+ at = a;
362378 for(; i<j; i++){
363379 fetch(ixold, at, changes[i].a-1, input[0], " ");
364380 fetch(ixold, changes[i].a, changes[i].b, input[0], "< ");
365381 fetch(ixnew, changes[i].c, changes[i].d, input[1], "> ");
366382 at = changes[i].b+1;
367383 }
368− fetch(ixold, at, b+Lines, input[0], " ");
384+ fetch(ixold, at, b, input[0], " ");
369385 }
370386 nchanges = 0;
371387 }