Fossil SCM

Improve clarity of the new comment printing algorithm.

mistachkin 2014-07-24 05:56 trunk
Commit 8e7d2a6586b2214b8a9c30ffeb101a02bd91c87f
1 file changed +8 -5
+8 -5
--- src/comformat.c
+++ src/comformat.c
@@ -179,10 +179,11 @@
179179
if( !zLine ) return;
180180
if( lineChars<=0 ) return;
181181
comment_print_indent(zLine, indent, trimSpace, &index);
182182
maxChars = lineChars;
183183
for(;;){
184
+ int useChars = 1;
184185
char c = zLine[index];
185186
if( c==0 ){
186187
break;
187188
}else{
188189
if( origBreak && index>0 ){
@@ -193,36 +194,38 @@
193194
}
194195
}
195196
index++;
196197
}
197198
if( c=='\n' ){
198
- charCnt = 0;
199199
lineCnt++;
200
+ charCnt = 0;
201
+ useChars = 0;
200202
}else if( c=='\t' ){
201203
int nextIndex = comment_next_space(zLine, index);
202204
if( nextIndex<=0 || (nextIndex-index)>maxChars ){
203205
break;
204206
}
205207
charCnt++;
206
- if( maxChars<COMMENT_TAB_WIDTH ){
208
+ useChars = COMMENT_TAB_WIDTH;
209
+ if( maxChars<useChars ){
207210
fossil_print(" ");
208211
break;
209212
}
210
- maxChars -= COMMENT_TAB_WIDTH;
211213
}else if( wordBreak && fossil_isspace(c) ){
212214
int nextIndex = comment_next_space(zLine, index);
213215
if( nextIndex<=0 || (nextIndex-index)>maxChars ){
214216
break;
215217
}
216218
charCnt++;
217
- maxChars--;
218219
}else{
219220
charCnt++;
220
- maxChars--;
221221
}
222
+ assert( c!='\n' || charCnt==0 );
222223
fossil_print("%c", c);
224
+ maxChars -= useChars;
223225
if( maxChars==0 ) break;
226
+ assert( maxChars>0 );
224227
if( c=='\n' ) break;
225228
}
226229
if( charCnt>0 ){
227230
fossil_print("\n");
228231
lineCnt++;
229232
--- src/comformat.c
+++ src/comformat.c
@@ -179,10 +179,11 @@
179 if( !zLine ) return;
180 if( lineChars<=0 ) return;
181 comment_print_indent(zLine, indent, trimSpace, &index);
182 maxChars = lineChars;
183 for(;;){
 
184 char c = zLine[index];
185 if( c==0 ){
186 break;
187 }else{
188 if( origBreak && index>0 ){
@@ -193,36 +194,38 @@
193 }
194 }
195 index++;
196 }
197 if( c=='\n' ){
198 charCnt = 0;
199 lineCnt++;
 
 
200 }else if( c=='\t' ){
201 int nextIndex = comment_next_space(zLine, index);
202 if( nextIndex<=0 || (nextIndex-index)>maxChars ){
203 break;
204 }
205 charCnt++;
206 if( maxChars<COMMENT_TAB_WIDTH ){
 
207 fossil_print(" ");
208 break;
209 }
210 maxChars -= COMMENT_TAB_WIDTH;
211 }else if( wordBreak && fossil_isspace(c) ){
212 int nextIndex = comment_next_space(zLine, index);
213 if( nextIndex<=0 || (nextIndex-index)>maxChars ){
214 break;
215 }
216 charCnt++;
217 maxChars--;
218 }else{
219 charCnt++;
220 maxChars--;
221 }
 
222 fossil_print("%c", c);
 
223 if( maxChars==0 ) break;
 
224 if( c=='\n' ) break;
225 }
226 if( charCnt>0 ){
227 fossil_print("\n");
228 lineCnt++;
229
--- src/comformat.c
+++ src/comformat.c
@@ -179,10 +179,11 @@
179 if( !zLine ) return;
180 if( lineChars<=0 ) return;
181 comment_print_indent(zLine, indent, trimSpace, &index);
182 maxChars = lineChars;
183 for(;;){
184 int useChars = 1;
185 char c = zLine[index];
186 if( c==0 ){
187 break;
188 }else{
189 if( origBreak && index>0 ){
@@ -193,36 +194,38 @@
194 }
195 }
196 index++;
197 }
198 if( c=='\n' ){
 
199 lineCnt++;
200 charCnt = 0;
201 useChars = 0;
202 }else if( c=='\t' ){
203 int nextIndex = comment_next_space(zLine, index);
204 if( nextIndex<=0 || (nextIndex-index)>maxChars ){
205 break;
206 }
207 charCnt++;
208 useChars = COMMENT_TAB_WIDTH;
209 if( maxChars<useChars ){
210 fossil_print(" ");
211 break;
212 }
 
213 }else if( wordBreak && fossil_isspace(c) ){
214 int nextIndex = comment_next_space(zLine, index);
215 if( nextIndex<=0 || (nextIndex-index)>maxChars ){
216 break;
217 }
218 charCnt++;
 
219 }else{
220 charCnt++;
 
221 }
222 assert( c!='\n' || charCnt==0 );
223 fossil_print("%c", c);
224 maxChars -= useChars;
225 if( maxChars==0 ) break;
226 assert( maxChars>0 );
227 if( c=='\n' ) break;
228 }
229 if( charCnt>0 ){
230 fossil_print("\n");
231 lineCnt++;
232

Keyboard Shortcuts

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