Fossil SCM

Allow blob_remove_cr() to be used for both \r\n -> \n as well as \r -> \n conversions.

jan.nijtmans 2013-03-15 11:32 trunk
Commit 4b2c2a519f02525a1e4a10f3e764dc4a16412b81
1 file changed +3 -1
+3 -1
--- src/blob.c
+++ src/blob.c
@@ -1014,19 +1014,21 @@
10141014
}
10151015
}
10161016
#endif
10171017
10181018
/*
1019
-** Remove every \r character from the given blob.
1019
+** Remove every \r character from the given blob. If not followed
1020
+** by \n, insert \n.
10201021
*/
10211022
void blob_remove_cr(Blob *p){
10221023
int i, j;
10231024
char *z;
10241025
blob_materialize(p);
10251026
z = p->aData;
10261027
for(i=j=0; z[i]; i++){
10271028
if( z[i]!='\r' ) z[j++] = z[i];
1029
+ else if( z[i+1]!='\n') z[j++] = '\n';
10281030
}
10291031
z[j] = 0;
10301032
p->nUsed = j;
10311033
}
10321034
10331035
--- src/blob.c
+++ src/blob.c
@@ -1014,19 +1014,21 @@
1014 }
1015 }
1016 #endif
1017
1018 /*
1019 ** Remove every \r character from the given blob.
 
1020 */
1021 void blob_remove_cr(Blob *p){
1022 int i, j;
1023 char *z;
1024 blob_materialize(p);
1025 z = p->aData;
1026 for(i=j=0; z[i]; i++){
1027 if( z[i]!='\r' ) z[j++] = z[i];
 
1028 }
1029 z[j] = 0;
1030 p->nUsed = j;
1031 }
1032
1033
--- src/blob.c
+++ src/blob.c
@@ -1014,19 +1014,21 @@
1014 }
1015 }
1016 #endif
1017
1018 /*
1019 ** Remove every \r character from the given blob. If not followed
1020 ** by \n, insert \n.
1021 */
1022 void blob_remove_cr(Blob *p){
1023 int i, j;
1024 char *z;
1025 blob_materialize(p);
1026 z = p->aData;
1027 for(i=j=0; z[i]; i++){
1028 if( z[i]!='\r' ) z[j++] = z[i];
1029 else if( z[i+1]!='\n') z[j++] = '\n';
1030 }
1031 z[j] = 0;
1032 p->nUsed = j;
1033 }
1034
1035

Keyboard Shortcuts

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