Fossil SCM

Fix TTY comment line break logic for UTF8 multi-byte characters.

drh 2017-06-15 03:37 trunk
Commit e62161976ef88735ce0aa0a6c85d2daf5d8f4647a3a1427a12ca6626cf69cd81
1 file changed +2 -3
+2 -3
--- src/comformat.c
+++ src/comformat.c
@@ -226,13 +226,12 @@
226226
}else{
227227
charCnt++;
228228
}
229229
assert( c!='\n' || charCnt==0 );
230230
fossil_print("%c", c);
231
- maxChars -= useChars;
232
- if( maxChars==0 ) break;
233
- assert( maxChars>0 );
231
+ if( (c&0x80)==0 || (zLine[index+1]&0xc0)!=0xc0 ) maxChars -= useChars;
232
+ if( maxChars<=0 ) break;
234233
if( c=='\n' ) break;
235234
}
236235
if( charCnt>0 ){
237236
fossil_print("\n");
238237
lineCnt++;
239238
--- src/comformat.c
+++ src/comformat.c
@@ -226,13 +226,12 @@
226 }else{
227 charCnt++;
228 }
229 assert( c!='\n' || charCnt==0 );
230 fossil_print("%c", c);
231 maxChars -= useChars;
232 if( maxChars==0 ) break;
233 assert( maxChars>0 );
234 if( c=='\n' ) break;
235 }
236 if( charCnt>0 ){
237 fossil_print("\n");
238 lineCnt++;
239
--- src/comformat.c
+++ src/comformat.c
@@ -226,13 +226,12 @@
226 }else{
227 charCnt++;
228 }
229 assert( c!='\n' || charCnt==0 );
230 fossil_print("%c", c);
231 if( (c&0x80)==0 || (zLine[index+1]&0xc0)!=0xc0 ) maxChars -= useChars;
232 if( maxChars<=0 ) break;
 
233 if( c=='\n' ) break;
234 }
235 if( charCnt>0 ){
236 fossil_print("\n");
237 lineCnt++;
238

Keyboard Shortcuts

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