Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix diffs that use the DIFF_IGNORE_EOLWS flag. Add a message for diffs that involve only EOL whitespace changes. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | diff-eolws |
Files: | files | file ages | folders |
SHA1: |
8f885df20975e896aad7ff7c6cac794e |
User & Date: | joel 2014-03-03 06:44:32.667 |
References
2014-03-03
| ||
15:00 | Bug-fix: correct calculation of hash-value for lines with different eol-spacing. Taken from [8f885df209], but without the other enhancements. Eliminate some double semicolons. ... (check-in: 7a0f4af6 user: jan.nijtmans tags: trunk) | |
Context
2014-03-03
| ||
08:22 | Try to fix it more better so it'll work with CLI diffs. Add --ignore-space-at-eol option (name taken from Git) to diff cmd. ... (check-in: 554607d3 user: joel tags: diff-eolws) | |
06:44 | Fix diffs that use the DIFF_IGNORE_EOLWS flag. Add a message for diffs that involve only EOL whitespace changes. ... (check-in: 8f885df2 user: joel tags: diff-eolws) | |
2014-02-28
| ||
20:00 | re-generate other makefiles ... (check-in: d3b2daba user: jan.nijtmans tags: trunk) | |
Changes
Changes to src/diff.c.
︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #define DIFF_CANNOT_COMPUTE_SYMLINK \ "cannot compute difference between symlink and regular file\n" #define DIFF_TOO_MANY_CHANGES \ "more than 10,000 changes\n" /* ** Maximum length of a line in a text file, in bytes. (2**13 = 8192 bytes) */ #define LENGTH_MASK_SZ 13 #define LENGTH_MASK ((1<<LENGTH_MASK_SZ)-1) #endif /* INTERFACE */ | > > > | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #define DIFF_CANNOT_COMPUTE_SYMLINK \ "cannot compute difference between symlink and regular file\n" #define DIFF_TOO_MANY_CHANGES \ "more than 10,000 changes\n" #define DIFF_EOLWS_ONLY \ "only end-of-line whitespace changed\n" /* ** Maximum length of a line in a text file, in bytes. (2**13 = 8192 bytes) */ #define LENGTH_MASK_SZ 13 #define LENGTH_MASK ((1<<LENGTH_MASK_SZ)-1) #endif /* INTERFACE */ |
︙ | ︙ | |||
160 161 162 163 164 165 166 | /* Fill in the array */ for(i=0; i<nLine; i++){ a[i].z = z; for(j=0; z[j] && z[j]!='\n'; j++){} k = j; while( ignoreWS && k>0 && fossil_isspace(z[k-1]) ){ k--; } | | | | 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | /* Fill in the array */ for(i=0; i<nLine; i++){ a[i].z = z; for(j=0; z[j] && z[j]!='\n'; j++){} k = j; while( ignoreWS && k>0 && fossil_isspace(z[k-1]) ){ k--; } for(h=0, x=0; x<k; x++){ h = h ^ (h<<2) ^ z[x]; } a[i].h = h = (h<<LENGTH_MASK_SZ) | k; h2 = h % nLine; a[i].iNext = a[h2].iHash; a[h2].iHash = i+1; z += j+1; } /* Return results */ |
︙ | ︙ | |||
1785 1786 1787 1788 1789 1790 1791 | /* Compute the difference */ diff_all(&c); if( (diffFlags & DIFF_NOTTOOBIG)!=0 ){ int i, m, n; int *a = c.aEdit; int mx = c.nEdit; for(i=m=n=0; i<mx; i+=3){ m += a[i]; n += a[i+1]+a[i+2]; } | | > > | > | 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 | /* Compute the difference */ diff_all(&c); if( (diffFlags & DIFF_NOTTOOBIG)!=0 ){ int i, m, n; int *a = c.aEdit; int mx = c.nEdit; for(i=m=n=0; i<mx; i+=3){ m += a[i]; n += a[i+1]+a[i+2]; } if( n==0 || n>10000 ){ fossil_free(c.aFrom); fossil_free(c.aTo); fossil_free(c.aEdit); if( pOut ) { diff_errmsg(pOut, n==0 ? DIFF_EOLWS_ONLY : DIFF_TOO_MANY_CHANGES, diffFlags); } return 0; } } if( (diffFlags & DIFF_NOOPT)==0 ){ diff_optimize(&c); } |
︙ | ︙ |