Fossil SCM

Automatically adjust the width of printed comments according to the detected terminal width.

mistachkin 2014-06-17 20:54 trunk merge
Commit 0ff6a9e282cf83566d6563b3210aa74c7fb437bc
+1 -1
--- src/bisect.c
+++ src/bisect.c
@@ -390,11 +390,11 @@
390390
for(i=0; i<sizeof(aBisectOption)/sizeof(aBisectOption[0]); i++){
391391
char *z = mprintf("bisect-%s", aBisectOption[i].zName);
392392
fossil_print(" %-15s %-6s ", aBisectOption[i].zName,
393393
db_lget(z, (char*)aBisectOption[i].zDefault));
394394
fossil_free(z);
395
- comment_print(aBisectOption[i].zDesc, 27, 79);
395
+ comment_print(aBisectOption[i].zDesc, 27, -1);
396396
}
397397
}else if( g.argc==4 || g.argc==5 ){
398398
unsigned int i;
399399
n = strlen(g.argv[3]);
400400
for(i=0; i<sizeof(aBisectOption)/sizeof(aBisectOption[0]); i++){
401401
--- src/bisect.c
+++ src/bisect.c
@@ -390,11 +390,11 @@
390 for(i=0; i<sizeof(aBisectOption)/sizeof(aBisectOption[0]); i++){
391 char *z = mprintf("bisect-%s", aBisectOption[i].zName);
392 fossil_print(" %-15s %-6s ", aBisectOption[i].zName,
393 db_lget(z, (char*)aBisectOption[i].zDefault));
394 fossil_free(z);
395 comment_print(aBisectOption[i].zDesc, 27, 79);
396 }
397 }else if( g.argc==4 || g.argc==5 ){
398 unsigned int i;
399 n = strlen(g.argv[3]);
400 for(i=0; i<sizeof(aBisectOption)/sizeof(aBisectOption[0]); i++){
401
--- src/bisect.c
+++ src/bisect.c
@@ -390,11 +390,11 @@
390 for(i=0; i<sizeof(aBisectOption)/sizeof(aBisectOption[0]); i++){
391 char *z = mprintf("bisect-%s", aBisectOption[i].zName);
392 fossil_print(" %-15s %-6s ", aBisectOption[i].zName,
393 db_lget(z, (char*)aBisectOption[i].zDefault));
394 fossil_free(z);
395 comment_print(aBisectOption[i].zDesc, 27, -1);
396 }
397 }else if( g.argc==4 || g.argc==5 ){
398 unsigned int i;
399 n = strlen(g.argv[3]);
400 for(i=0; i<sizeof(aBisectOption)/sizeof(aBisectOption[0]); i++){
401
--- src/comformat.c
+++ src/comformat.c
@@ -19,10 +19,15 @@
1919
** text on a TTY.
2020
*/
2121
#include "config.h"
2222
#include "comformat.h"
2323
#include <assert.h>
24
+#ifdef _WIN32
25
+# include <windows.h>
26
+#else
27
+# include <termios.h>
28
+#endif
2429
2530
/*
2631
** Given a comment string zText, format that string for printing
2732
** on a TTY. Assume that the output cursors is indent spaces from
2833
** the left margin and that a single line can contain no more than
@@ -36,10 +41,27 @@
3641
int doIndent = 0;
3742
char *zBuf;
3843
char zBuffer[400];
3944
int lineCnt = 0;
4045
46
+#if defined(_WIN32)
47
+ if( lineLength<0 ){
48
+ CONSOLE_SCREEN_BUFFER_INFO csbi;
49
+ memset(&csbi, 0, sizeof(CONSOLE_SCREEN_BUFFER_INFO));
50
+ if( GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi) ){
51
+ tlen = csbi.srWindow.Right - csbi.srWindow.Left - indent;
52
+ }
53
+ }
54
+#elif defined(TIOCGWINSZ)
55
+ if( lineLength<0 ){
56
+ struct winsize w;
57
+ memset(&w, 0, sizeof(struct winsize));
58
+ if( ioctl(0, TIOCGWINSZ, &w)!=-1 ){
59
+ tlen = w.ws_col - indent;
60
+ }
61
+ }
62
+#endif
4163
if( zText==0 ) zText = "(NULL)";
4264
if( tlen<=0 ){
4365
tlen = strlen(zText);
4466
}
4567
if( tlen >= (sizeof(zBuffer)) ){
4668
--- src/comformat.c
+++ src/comformat.c
@@ -19,10 +19,15 @@
19 ** text on a TTY.
20 */
21 #include "config.h"
22 #include "comformat.h"
23 #include <assert.h>
 
 
 
 
 
24
25 /*
26 ** Given a comment string zText, format that string for printing
27 ** on a TTY. Assume that the output cursors is indent spaces from
28 ** the left margin and that a single line can contain no more than
@@ -36,10 +41,27 @@
36 int doIndent = 0;
37 char *zBuf;
38 char zBuffer[400];
39 int lineCnt = 0;
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41 if( zText==0 ) zText = "(NULL)";
42 if( tlen<=0 ){
43 tlen = strlen(zText);
44 }
45 if( tlen >= (sizeof(zBuffer)) ){
46
--- src/comformat.c
+++ src/comformat.c
@@ -19,10 +19,15 @@
19 ** text on a TTY.
20 */
21 #include "config.h"
22 #include "comformat.h"
23 #include <assert.h>
24 #ifdef _WIN32
25 # include <windows.h>
26 #else
27 # include <termios.h>
28 #endif
29
30 /*
31 ** Given a comment string zText, format that string for printing
32 ** on a TTY. Assume that the output cursors is indent spaces from
33 ** the left margin and that a single line can contain no more than
@@ -36,10 +41,27 @@
41 int doIndent = 0;
42 char *zBuf;
43 char zBuffer[400];
44 int lineCnt = 0;
45
46 #if defined(_WIN32)
47 if( lineLength<0 ){
48 CONSOLE_SCREEN_BUFFER_INFO csbi;
49 memset(&csbi, 0, sizeof(CONSOLE_SCREEN_BUFFER_INFO));
50 if( GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi) ){
51 tlen = csbi.srWindow.Right - csbi.srWindow.Left - indent;
52 }
53 }
54 #elif defined(TIOCGWINSZ)
55 if( lineLength<0 ){
56 struct winsize w;
57 memset(&w, 0, sizeof(struct winsize));
58 if( ioctl(0, TIOCGWINSZ, &w)!=-1 ){
59 tlen = w.ws_col - indent;
60 }
61 }
62 #endif
63 if( zText==0 ) zText = "(NULL)";
64 if( tlen<=0 ){
65 tlen = strlen(zText);
66 }
67 if( tlen >= (sizeof(zBuffer)) ){
68
--- src/descendants.c
+++ src/descendants.c
@@ -356,11 +356,11 @@
356356
width = atoi(zWidth);
357357
if( (width!=0) && (width<=39) ){
358358
fossil_fatal("-W|--width value must be >39 or 0");
359359
}
360360
}else{
361
- width = 79;
361
+ width = -1;
362362
}
363363
db_find_and_open_repository(0,0);
364364
if( recomputeFlag ) leaf_rebuild();
365365
blob_zero(&sql);
366366
blob_append(&sql, timeline_query_for_tty(), -1);
367367
--- src/descendants.c
+++ src/descendants.c
@@ -356,11 +356,11 @@
356 width = atoi(zWidth);
357 if( (width!=0) && (width<=39) ){
358 fossil_fatal("-W|--width value must be >39 or 0");
359 }
360 }else{
361 width = 79;
362 }
363 db_find_and_open_repository(0,0);
364 if( recomputeFlag ) leaf_rebuild();
365 blob_zero(&sql);
366 blob_append(&sql, timeline_query_for_tty(), -1);
367
--- src/descendants.c
+++ src/descendants.c
@@ -356,11 +356,11 @@
356 width = atoi(zWidth);
357 if( (width!=0) && (width<=39) ){
358 fossil_fatal("-W|--width value must be >39 or 0");
359 }
360 }else{
361 width = -1;
362 }
363 db_find_and_open_repository(0,0);
364 if( recomputeFlag ) leaf_rebuild();
365 blob_zero(&sql);
366 blob_append(&sql, timeline_query_for_tty(), -1);
367
+7 -3
--- src/finfo.c
+++ src/finfo.c
@@ -146,16 +146,20 @@
146146
/* this is the default, no-op */
147147
}
148148
zLimit = find_option("limit","n",1);
149149
zWidth = find_option("width","W",1);
150150
iLimit = zLimit ? atoi(zLimit) : -1;
151
- iWidth = zWidth ? atoi(zWidth) : 79;
152151
zOffset = find_option("offset",0,1);
153152
iOffset = zOffset ? atoi(zOffset) : 0;
154153
iBrief = (find_option("brief","b",0) == 0);
155
- if( (iWidth!=0) && (iWidth<=22) ){
156
- fossil_fatal("-W|--width value must be >22 or 0");
154
+ if( zWidth ){
155
+ iWidth = atoi(zWidth);
156
+ if( (iWidth!=0) && (iWidth<=22) ){
157
+ fossil_fatal("-W|--width value must be >22 or 0");
158
+ }
159
+ }else{
160
+ iWidth = -1;
157161
}
158162
if( g.argc!=3 ){
159163
usage("?-l|--log? ?-b|--brief? FILENAME");
160164
}
161165
file_tree_name(g.argv[2], &fname, 1);
162166
--- src/finfo.c
+++ src/finfo.c
@@ -146,16 +146,20 @@
146 /* this is the default, no-op */
147 }
148 zLimit = find_option("limit","n",1);
149 zWidth = find_option("width","W",1);
150 iLimit = zLimit ? atoi(zLimit) : -1;
151 iWidth = zWidth ? atoi(zWidth) : 79;
152 zOffset = find_option("offset",0,1);
153 iOffset = zOffset ? atoi(zOffset) : 0;
154 iBrief = (find_option("brief","b",0) == 0);
155 if( (iWidth!=0) && (iWidth<=22) ){
156 fossil_fatal("-W|--width value must be >22 or 0");
 
 
 
 
 
157 }
158 if( g.argc!=3 ){
159 usage("?-l|--log? ?-b|--brief? FILENAME");
160 }
161 file_tree_name(g.argv[2], &fname, 1);
162
--- src/finfo.c
+++ src/finfo.c
@@ -146,16 +146,20 @@
146 /* this is the default, no-op */
147 }
148 zLimit = find_option("limit","n",1);
149 zWidth = find_option("width","W",1);
150 iLimit = zLimit ? atoi(zLimit) : -1;
 
151 zOffset = find_option("offset",0,1);
152 iOffset = zOffset ? atoi(zOffset) : 0;
153 iBrief = (find_option("brief","b",0) == 0);
154 if( zWidth ){
155 iWidth = atoi(zWidth);
156 if( (iWidth!=0) && (iWidth<=22) ){
157 fossil_fatal("-W|--width value must be >22 or 0");
158 }
159 }else{
160 iWidth = -1;
161 }
162 if( g.argc!=3 ){
163 usage("?-l|--log? ?-b|--brief? FILENAME");
164 }
165 file_tree_name(g.argv[2], &fname, 1);
166
+1 -1
--- src/info.c
+++ src/info.c
@@ -132,11 +132,11 @@
132132
fossil_print("tags: %s\n", zTags);
133133
}
134134
free(zTags);
135135
if( zComment ){
136136
fossil_print("comment: ");
137
- comment_print(zComment, 14, 79);
137
+ comment_print(zComment, 14, -1);
138138
free(zComment);
139139
}
140140
}
141141
142142
/*
143143
--- src/info.c
+++ src/info.c
@@ -132,11 +132,11 @@
132 fossil_print("tags: %s\n", zTags);
133 }
134 free(zTags);
135 if( zComment ){
136 fossil_print("comment: ");
137 comment_print(zComment, 14, 79);
138 free(zComment);
139 }
140 }
141
142 /*
143
--- src/info.c
+++ src/info.c
@@ -132,11 +132,11 @@
132 fossil_print("tags: %s\n", zTags);
133 }
134 free(zTags);
135 if( zComment ){
136 fossil_print("comment: ");
137 comment_print(zComment, 14, -1);
138 free(zComment);
139 }
140 }
141
142 /*
143
+2 -2
--- src/merge.c
+++ src/merge.c
@@ -47,11 +47,11 @@
4747
indent-1, zLabel,
4848
db_column_text(&q, 3),
4949
db_column_text(&q, 1),
5050
db_column_text(&q, 0),
5151
indent, "");
52
- comment_print(zCom, indent, 78);
52
+ comment_print(zCom, indent, -1);
5353
fossil_free(zCom);
5454
}
5555
db_finalize(&q);
5656
}
5757
@@ -210,11 +210,11 @@
210210
);
211211
if( db_step(&q)==SQLITE_ROW ){
212212
char *zCom = mprintf("Merging fork [%S] at %s by %s: \"%s\"",
213213
db_column_text(&q, 0), db_column_text(&q, 1),
214214
db_column_text(&q, 3), db_column_text(&q, 2));
215
- comment_print(zCom, 0, 79);
215
+ comment_print(zCom, 0, -1);
216216
fossil_free(zCom);
217217
}
218218
db_finalize(&q);
219219
}else{
220220
usage("?OPTIONS? ?VERSION?");
221221
--- src/merge.c
+++ src/merge.c
@@ -47,11 +47,11 @@
47 indent-1, zLabel,
48 db_column_text(&q, 3),
49 db_column_text(&q, 1),
50 db_column_text(&q, 0),
51 indent, "");
52 comment_print(zCom, indent, 78);
53 fossil_free(zCom);
54 }
55 db_finalize(&q);
56 }
57
@@ -210,11 +210,11 @@
210 );
211 if( db_step(&q)==SQLITE_ROW ){
212 char *zCom = mprintf("Merging fork [%S] at %s by %s: \"%s\"",
213 db_column_text(&q, 0), db_column_text(&q, 1),
214 db_column_text(&q, 3), db_column_text(&q, 2));
215 comment_print(zCom, 0, 79);
216 fossil_free(zCom);
217 }
218 db_finalize(&q);
219 }else{
220 usage("?OPTIONS? ?VERSION?");
221
--- src/merge.c
+++ src/merge.c
@@ -47,11 +47,11 @@
47 indent-1, zLabel,
48 db_column_text(&q, 3),
49 db_column_text(&q, 1),
50 db_column_text(&q, 0),
51 indent, "");
52 comment_print(zCom, indent, -1);
53 fossil_free(zCom);
54 }
55 db_finalize(&q);
56 }
57
@@ -210,11 +210,11 @@
210 );
211 if( db_step(&q)==SQLITE_ROW ){
212 char *zCom = mprintf("Merging fork [%S] at %s by %s: \"%s\"",
213 db_column_text(&q, 0), db_column_text(&q, 1),
214 db_column_text(&q, 3), db_column_text(&q, 2));
215 comment_print(zCom, 0, -1);
216 fossil_free(zCom);
217 }
218 db_finalize(&q);
219 }else{
220 usage("?OPTIONS? ?VERSION?");
221
+3 -3
--- src/name.c
+++ src/name.c
@@ -582,11 +582,11 @@
582582
default: zType = "Unknown"; break;
583583
}
584584
fossil_print("type: %s by %s on %s\n", zType, db_column_text(&q,2),
585585
db_column_text(&q, 1));
586586
fossil_print("comment: ");
587
- comment_print(db_column_text(&q,3), 12, 78);
587
+ comment_print(db_column_text(&q,3), 12, -1);
588588
}
589589
db_finalize(&q);
590590
591591
/* Check to see if this object is used as a file in a check-in */
592592
db_prepare(&q,
@@ -604,11 +604,11 @@
604604
fossil_print(" part of [%.10s] by %s on %s\n",
605605
db_column_text(&q, 1),
606606
db_column_text(&q, 3),
607607
db_column_text(&q, 2));
608608
fossil_print(" ");
609
- comment_print(db_column_text(&q,4), 12, 78);
609
+ comment_print(db_column_text(&q,4), 12, -1);
610610
}
611611
db_finalize(&q);
612612
613613
/* Check to see if this object is used as an attachment */
614614
db_prepare(&q,
@@ -639,11 +639,11 @@
639639
db_column_text(&q,7));
640640
}
641641
fossil_print(" by user %s on %s\n",
642642
db_column_text(&q,2), db_column_text(&q,3));
643643
fossil_print(" ");
644
- comment_print(db_column_text(&q,1), 12, 78);
644
+ comment_print(db_column_text(&q,1), 12, -1);
645645
}
646646
db_finalize(&q);
647647
}
648648
649649
/*
650650
--- src/name.c
+++ src/name.c
@@ -582,11 +582,11 @@
582 default: zType = "Unknown"; break;
583 }
584 fossil_print("type: %s by %s on %s\n", zType, db_column_text(&q,2),
585 db_column_text(&q, 1));
586 fossil_print("comment: ");
587 comment_print(db_column_text(&q,3), 12, 78);
588 }
589 db_finalize(&q);
590
591 /* Check to see if this object is used as a file in a check-in */
592 db_prepare(&q,
@@ -604,11 +604,11 @@
604 fossil_print(" part of [%.10s] by %s on %s\n",
605 db_column_text(&q, 1),
606 db_column_text(&q, 3),
607 db_column_text(&q, 2));
608 fossil_print(" ");
609 comment_print(db_column_text(&q,4), 12, 78);
610 }
611 db_finalize(&q);
612
613 /* Check to see if this object is used as an attachment */
614 db_prepare(&q,
@@ -639,11 +639,11 @@
639 db_column_text(&q,7));
640 }
641 fossil_print(" by user %s on %s\n",
642 db_column_text(&q,2), db_column_text(&q,3));
643 fossil_print(" ");
644 comment_print(db_column_text(&q,1), 12, 78);
645 }
646 db_finalize(&q);
647 }
648
649 /*
650
--- src/name.c
+++ src/name.c
@@ -582,11 +582,11 @@
582 default: zType = "Unknown"; break;
583 }
584 fossil_print("type: %s by %s on %s\n", zType, db_column_text(&q,2),
585 db_column_text(&q, 1));
586 fossil_print("comment: ");
587 comment_print(db_column_text(&q,3), 12, -1);
588 }
589 db_finalize(&q);
590
591 /* Check to see if this object is used as a file in a check-in */
592 db_prepare(&q,
@@ -604,11 +604,11 @@
604 fossil_print(" part of [%.10s] by %s on %s\n",
605 db_column_text(&q, 1),
606 db_column_text(&q, 3),
607 db_column_text(&q, 2));
608 fossil_print(" ");
609 comment_print(db_column_text(&q,4), 12, -1);
610 }
611 db_finalize(&q);
612
613 /* Check to see if this object is used as an attachment */
614 db_prepare(&q,
@@ -639,11 +639,11 @@
639 db_column_text(&q,7));
640 }
641 fossil_print(" by user %s on %s\n",
642 db_column_text(&q,2), db_column_text(&q,3));
643 fossil_print(" ");
644 comment_print(db_column_text(&q,1), 12, -1);
645 }
646 db_finalize(&q);
647 }
648
649 /*
650
+1 -1
--- src/search.c
+++ src/search.c
@@ -202,11 +202,11 @@
202202
width = atoi(zWidth);
203203
if( (width!=0) && (width<=20) ){
204204
fossil_fatal("-W|--width value must be >20 or 0");
205205
}
206206
}else{
207
- width = 79;
207
+ width = -1;
208208
}
209209
210210
db_must_be_within_tree();
211211
if( g.argc<2 ) return;
212212
blob_init(&pattern, g.argv[2], -1);
213213
--- src/search.c
+++ src/search.c
@@ -202,11 +202,11 @@
202 width = atoi(zWidth);
203 if( (width!=0) && (width<=20) ){
204 fossil_fatal("-W|--width value must be >20 or 0");
205 }
206 }else{
207 width = 79;
208 }
209
210 db_must_be_within_tree();
211 if( g.argc<2 ) return;
212 blob_init(&pattern, g.argv[2], -1);
213
--- src/search.c
+++ src/search.c
@@ -202,11 +202,11 @@
202 width = atoi(zWidth);
203 if( (width!=0) && (width<=20) ){
204 fossil_fatal("-W|--width value must be >20 or 0");
205 }
206 }else{
207 width = -1;
208 }
209
210 db_must_be_within_tree();
211 if( g.argc<2 ) return;
212 blob_init(&pattern, g.argv[2], -1);
213
+1 -1
--- src/stash.c
+++ src/stash.c
@@ -525,11 +525,11 @@
525525
width = atoi(zWidth);
526526
if( (width!=0) && (width<=46) ){
527527
fossil_fatal("-W|--width value must be >46 or 0");
528528
}
529529
}else{
530
- width = 79;
530
+ width = -1;
531531
}
532532
if( !verboseFlag ){
533533
verboseFlag = find_option("detail","l",0)!=0; /* deprecated */
534534
}
535535
verify_all_options();
536536
--- src/stash.c
+++ src/stash.c
@@ -525,11 +525,11 @@
525 width = atoi(zWidth);
526 if( (width!=0) && (width<=46) ){
527 fossil_fatal("-W|--width value must be >46 or 0");
528 }
529 }else{
530 width = 79;
531 }
532 if( !verboseFlag ){
533 verboseFlag = find_option("detail","l",0)!=0; /* deprecated */
534 }
535 verify_all_options();
536
--- src/stash.c
+++ src/stash.c
@@ -525,11 +525,11 @@
525 width = atoi(zWidth);
526 if( (width!=0) && (width<=46) ){
527 fossil_fatal("-W|--width value must be >46 or 0");
528 }
529 }else{
530 width = -1;
531 }
532 if( !verboseFlag ){
533 verboseFlag = find_option("detail","l",0)!=0; /* deprecated */
534 }
535 verify_all_options();
536
+1 -1
--- src/timeline.c
+++ src/timeline.c
@@ -1780,11 +1780,11 @@
17801780
width = atoi(zWidth);
17811781
if( (width!=0) && (width<=20) ){
17821782
fossil_fatal("-W|--width value must be >20 or 0");
17831783
}
17841784
}else{
1785
- width = 79;
1785
+ width = -1;
17861786
}
17871787
zOffset = find_option("offset",0,1);
17881788
iOffset = zOffset ? atoi(zOffset) : 0;
17891789
if( g.argc>=4 ){
17901790
k = strlen(g.argv[2]);
17911791
--- src/timeline.c
+++ src/timeline.c
@@ -1780,11 +1780,11 @@
1780 width = atoi(zWidth);
1781 if( (width!=0) && (width<=20) ){
1782 fossil_fatal("-W|--width value must be >20 or 0");
1783 }
1784 }else{
1785 width = 79;
1786 }
1787 zOffset = find_option("offset",0,1);
1788 iOffset = zOffset ? atoi(zOffset) : 0;
1789 if( g.argc>=4 ){
1790 k = strlen(g.argv[2]);
1791
--- src/timeline.c
+++ src/timeline.c
@@ -1780,11 +1780,11 @@
1780 width = atoi(zWidth);
1781 if( (width!=0) && (width<=20) ){
1782 fossil_fatal("-W|--width value must be >20 or 0");
1783 }
1784 }else{
1785 width = -1;
1786 }
1787 zOffset = find_option("offset",0,1);
1788 iOffset = zOffset ? atoi(zOffset) : 0;
1789 if( g.argc>=4 ){
1790 k = strlen(g.argv[2]);
1791
+1 -1
--- src/tkt.c
+++ src/tkt.c
@@ -1264,11 +1264,11 @@
12641264
fossil_print(" Change ");
12651265
}
12661266
fossil_print("%h: ",z);
12671267
if( blob_size(&val)>50 || contains_newline(&val)) {
12681268
fossil_print("\n ",blob_str(&val));
1269
- comment_print(blob_str(&val),4,79);
1269
+ comment_print(blob_str(&val),4,-1);
12701270
}else{
12711271
fossil_print("%s\n",blob_str(&val));
12721272
}
12731273
blob_reset(&val);
12741274
}
12751275
--- src/tkt.c
+++ src/tkt.c
@@ -1264,11 +1264,11 @@
1264 fossil_print(" Change ");
1265 }
1266 fossil_print("%h: ",z);
1267 if( blob_size(&val)>50 || contains_newline(&val)) {
1268 fossil_print("\n ",blob_str(&val));
1269 comment_print(blob_str(&val),4,79);
1270 }else{
1271 fossil_print("%s\n",blob_str(&val));
1272 }
1273 blob_reset(&val);
1274 }
1275
--- src/tkt.c
+++ src/tkt.c
@@ -1264,11 +1264,11 @@
1264 fossil_print(" Change ");
1265 }
1266 fossil_print("%h: ",z);
1267 if( blob_size(&val)>50 || contains_newline(&val)) {
1268 fossil_print("\n ",blob_str(&val));
1269 comment_print(blob_str(&val),4,-1);
1270 }else{
1271 fossil_print("%s\n",blob_str(&val));
1272 }
1273 blob_reset(&val);
1274 }
1275

Keyboard Shortcuts

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