Fossil SCM
Make stripping of end-of-line CR work correctly now (REALLY!)
Commit
597d1101b48ca5d64f66bf401fcd3444a3d47d15
Parent
6bbcfec27b4ae8c…
2 files changed
+3
-2
+2
-1
+3
-2
| --- src/diff.c | ||
| +++ src/diff.c | ||
| @@ -90,11 +90,11 @@ | ||
| 90 | 90 | }; |
| 91 | 91 | |
| 92 | 92 | /* |
| 93 | 93 | ** Length of a dline |
| 94 | 94 | */ |
| 95 | -#define LENGTH(X) ((X)->h & LENGTH_MASK) | |
| 95 | +#define LENGTH(X) ((X)->n) | |
| 96 | 96 | |
| 97 | 97 | /* |
| 98 | 98 | ** A context for running a raw diff. |
| 99 | 99 | ** |
| 100 | 100 | ** The aEdit[] array describes the raw diff. Each triple of integers in |
| @@ -166,14 +166,15 @@ | ||
| 166 | 166 | |
| 167 | 167 | /* Fill in the array */ |
| 168 | 168 | for(i=0; i<nLine; i++){ |
| 169 | 169 | for(j=0; z[j] && z[j]!='\n'; j++){} |
| 170 | 170 | a[i].z = z; |
| 171 | + k = j; | |
| 171 | 172 | if( diffFlags & DIFF_STRIP_EOLCR ){ |
| 172 | 173 | if( k>0 && z[k-1]=='\r' ){ k--; } |
| 173 | 174 | } |
| 174 | - a[i].n = k = j; | |
| 175 | + a[i].n = k; | |
| 175 | 176 | s = 0; |
| 176 | 177 | if( diffFlags & DIFF_IGNORE_EOLWS ){ |
| 177 | 178 | while( k>0 && fossil_isspace(z[k-1]) ){ k--; } |
| 178 | 179 | } |
| 179 | 180 | if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS ){ |
| 180 | 181 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -90,11 +90,11 @@ | |
| 90 | }; |
| 91 | |
| 92 | /* |
| 93 | ** Length of a dline |
| 94 | */ |
| 95 | #define LENGTH(X) ((X)->h & LENGTH_MASK) |
| 96 | |
| 97 | /* |
| 98 | ** A context for running a raw diff. |
| 99 | ** |
| 100 | ** The aEdit[] array describes the raw diff. Each triple of integers in |
| @@ -166,14 +166,15 @@ | |
| 166 | |
| 167 | /* Fill in the array */ |
| 168 | for(i=0; i<nLine; i++){ |
| 169 | for(j=0; z[j] && z[j]!='\n'; j++){} |
| 170 | a[i].z = z; |
| 171 | if( diffFlags & DIFF_STRIP_EOLCR ){ |
| 172 | if( k>0 && z[k-1]=='\r' ){ k--; } |
| 173 | } |
| 174 | a[i].n = k = j; |
| 175 | s = 0; |
| 176 | if( diffFlags & DIFF_IGNORE_EOLWS ){ |
| 177 | while( k>0 && fossil_isspace(z[k-1]) ){ k--; } |
| 178 | } |
| 179 | if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS ){ |
| 180 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -90,11 +90,11 @@ | |
| 90 | }; |
| 91 | |
| 92 | /* |
| 93 | ** Length of a dline |
| 94 | */ |
| 95 | #define LENGTH(X) ((X)->n) |
| 96 | |
| 97 | /* |
| 98 | ** A context for running a raw diff. |
| 99 | ** |
| 100 | ** The aEdit[] array describes the raw diff. Each triple of integers in |
| @@ -166,14 +166,15 @@ | |
| 166 | |
| 167 | /* Fill in the array */ |
| 168 | for(i=0; i<nLine; i++){ |
| 169 | for(j=0; z[j] && z[j]!='\n'; j++){} |
| 170 | a[i].z = z; |
| 171 | k = j; |
| 172 | if( diffFlags & DIFF_STRIP_EOLCR ){ |
| 173 | if( k>0 && z[k-1]=='\r' ){ k--; } |
| 174 | } |
| 175 | a[i].n = k; |
| 176 | s = 0; |
| 177 | if( diffFlags & DIFF_IGNORE_EOLWS ){ |
| 178 | while( k>0 && fossil_isspace(z[k-1]) ){ k--; } |
| 179 | } |
| 180 | if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS ){ |
| 181 |
+2
-1
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -469,12 +469,13 @@ | ||
| 469 | 469 | if( x<0 || x>DIFF_CONTEXT_MASK ) x = DIFF_CONTEXT_MASK; |
| 470 | 470 | diffFlags += x; |
| 471 | 471 | |
| 472 | 472 | /* The "noopt" parameter disables diff optimization */ |
| 473 | 473 | if( PD("noopt",0)!=0 ) diffFlags |= DIFF_NOOPT; |
| 474 | + diffFlags |= DIFF_STRIP_EOLCR; | |
| 474 | 475 | } |
| 475 | - return diffFlags|DIFF_STRIP_EOLCR; | |
| 476 | + return diffFlags; | |
| 476 | 477 | } |
| 477 | 478 | |
| 478 | 479 | /* |
| 479 | 480 | ** WEBPAGE: vinfo |
| 480 | 481 | ** WEBPAGE: ci |
| 481 | 482 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -469,12 +469,13 @@ | |
| 469 | if( x<0 || x>DIFF_CONTEXT_MASK ) x = DIFF_CONTEXT_MASK; |
| 470 | diffFlags += x; |
| 471 | |
| 472 | /* The "noopt" parameter disables diff optimization */ |
| 473 | if( PD("noopt",0)!=0 ) diffFlags |= DIFF_NOOPT; |
| 474 | } |
| 475 | return diffFlags|DIFF_STRIP_EOLCR; |
| 476 | } |
| 477 | |
| 478 | /* |
| 479 | ** WEBPAGE: vinfo |
| 480 | ** WEBPAGE: ci |
| 481 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -469,12 +469,13 @@ | |
| 469 | if( x<0 || x>DIFF_CONTEXT_MASK ) x = DIFF_CONTEXT_MASK; |
| 470 | diffFlags += x; |
| 471 | |
| 472 | /* The "noopt" parameter disables diff optimization */ |
| 473 | if( PD("noopt",0)!=0 ) diffFlags |= DIFF_NOOPT; |
| 474 | diffFlags |= DIFF_STRIP_EOLCR; |
| 475 | } |
| 476 | return diffFlags; |
| 477 | } |
| 478 | |
| 479 | /* |
| 480 | ** WEBPAGE: vinfo |
| 481 | ** WEBPAGE: ci |
| 482 |