Better handling of various content difference situations
This commit is contained in:
parent
2f28ad5c65
commit
6368357ce1
@ -137,7 +137,6 @@ int Compare_2_files(char *adr1, char *adr2, char *adrc, int flag)
|
|||||||
if(s1.st_size > r1count + r1)
|
if(s1.st_size > r1count + r1)
|
||||||
printf("- %s : early EOF after %d bytes\n", adr1, r1count);
|
printf("- %s : early EOF after %d bytes\n", adr1, r1count);
|
||||||
differs= 1;
|
differs= 1;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
r1count+= r1;
|
r1count+= r1;
|
||||||
if(r2==EOF || r2<r1) {
|
if(r2==EOF || r2<r1) {
|
||||||
@ -146,15 +145,15 @@ int Compare_2_files(char *adr1, char *adr2, char *adrc, int flag)
|
|||||||
if(s2.st_size > r2count + r2)
|
if(s2.st_size > r2count + r2)
|
||||||
printf("- %s : early EOF after %d bytes\n", adr2, r2count);
|
printf("- %s : early EOF after %d bytes\n", adr2, r2count);
|
||||||
differs= 1;
|
differs= 1;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
if(r2>r1) {
|
if(r2>r1) {
|
||||||
if(s1.st_size > r1count + r1)
|
if(s1.st_size > r1count + r1)
|
||||||
printf("- %s : early EOF after %d bytes\n", adr1, r1count);
|
printf("- %s : early EOF after %d bytes\n", adr1, r1count);
|
||||||
differs= 1;
|
differs= 1;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
r2count+= r2;
|
r2count+= r2;
|
||||||
|
if(r1>r2)
|
||||||
|
r1= r2;
|
||||||
for(i= 0; i<r1; i++) {
|
for(i= 0; i<r1; i++) {
|
||||||
if(buf1[i]!=buf2[i]) {
|
if(buf1[i]!=buf2[i]) {
|
||||||
if(first_diff<0)
|
if(first_diff<0)
|
||||||
@ -163,10 +162,13 @@ int Compare_2_files(char *adr1, char *adr2, char *adrc, int flag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(diffcount>0) {
|
if(diffcount>0 || r1count!=r2count) {
|
||||||
printf("%s : %s : differs by at least %.f bytes. First at %.f\n",
|
if(first_diff<0)
|
||||||
a, (s1.st_size==s2.st_size || s1.st_mtime==s2.st_mtime ?
|
first_diff= (r1count>r2count ? r2count : r1count);
|
||||||
"CONTENT":"content"), (double) diffcount, (double) first_diff);
|
printf("%s : %s : differs by at least %.f bytes. First at %.f\n", a,
|
||||||
|
(s1.st_size==s2.st_size || s1.st_mtime==s2.st_mtime ?
|
||||||
|
"CONTENT":"content"),
|
||||||
|
(double) (diffcount + abs(r1count-r2count)), (double) first_diff);
|
||||||
differs= 1;
|
differs= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user