Fossil SCM

Make stripping of end-of-line CR work correctly now (REALLY!)

jan.nijtmans 2014-03-17 12:47 UTC trunk
Commit 597d1101b48ca5d64f66bf401fcd3444a3d47d15
2 files changed +3 -2 +2 -1
+3 -2
--- src/diff.c
+++ src/diff.c
@@ -90,11 +90,11 @@
9090
};
9191
9292
/*
9393
** Length of a dline
9494
*/
95
-#define LENGTH(X) ((X)->h & LENGTH_MASK)
95
+#define LENGTH(X) ((X)->n)
9696
9797
/*
9898
** A context for running a raw diff.
9999
**
100100
** The aEdit[] array describes the raw diff. Each triple of integers in
@@ -166,14 +166,15 @@
166166
167167
/* Fill in the array */
168168
for(i=0; i<nLine; i++){
169169
for(j=0; z[j] && z[j]!='\n'; j++){}
170170
a[i].z = z;
171
+ k = j;
171172
if( diffFlags & DIFF_STRIP_EOLCR ){
172173
if( k>0 && z[k-1]=='\r' ){ k--; }
173174
}
174
- a[i].n = k = j;
175
+ a[i].n = k;
175176
s = 0;
176177
if( diffFlags & DIFF_IGNORE_EOLWS ){
177178
while( k>0 && fossil_isspace(z[k-1]) ){ k--; }
178179
}
179180
if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS ){
180181
--- 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 @@
469469
if( x<0 || x>DIFF_CONTEXT_MASK ) x = DIFF_CONTEXT_MASK;
470470
diffFlags += x;
471471
472472
/* The "noopt" parameter disables diff optimization */
473473
if( PD("noopt",0)!=0 ) diffFlags |= DIFF_NOOPT;
474
+ diffFlags |= DIFF_STRIP_EOLCR;
474475
}
475
- return diffFlags|DIFF_STRIP_EOLCR;
476
+ return diffFlags;
476477
}
477478
478479
/*
479480
** WEBPAGE: vinfo
480481
** WEBPAGE: ci
481482
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button