History

CWEB — Release 3.3, 1994-12-06.

Andreas Scherer committed 15 years ago

Commit 22cd55e1 parent 6f710fc16 files · +379 −303Browse files

Showing the changes to ctangle.c (1 of 16 files). Show all

Unified · Split

ctangle.c+100−95
@@ -7,7 +7,7 @@ · 6 unmodified lines
77 #include <stdio.h>
88
99 /*:6*//*62:*/
10−#line 874 "ctangle.w"
10+#line 875 "ctangle.w"
1111
1212 #include <ctype.h>
1313 #include <stdlib.h>
@@ -15,7 +15,7 @@ · 1 unmodified line
1515 /*:62*/
1616 #line 62 "ctangle.w"
1717
18−#define banner "This is CTANGLE (Version 3.2)\n" \
18+#define banner "This is CTANGLE (Version 3.3)\n" \
1919
2020 #define max_bytes 90000 \
2121
@@ -47,15 +47,15 @@ · 25 unmodified lines
4747 #define period_ast 026
4848 #define minus_gt_ast 027 \
4949
50−#define xisalpha(c)(isalpha(c)&&((eight_bits)c<0200))
51−#define xisdigit(c)(isdigit(c)&&((eight_bits)c<0200))
52−#define xisspace(c)(isspace(c)&&((eight_bits)c<0200))
53−#define xislower(c)(islower(c)&&((eight_bits)c<0200))
54−#define xisupper(c)(isupper(c)&&((eight_bits)c<0200))
55−#define xisxdigit(c)(isxdigit(c)&&((eight_bits)c<0200)) \
50+#define xisalpha(c) (isalpha(c) &&((eight_bits) c<0200) )
51+#define xisdigit(c) (isdigit(c) &&((eight_bits) c<0200) )
52+#define xisspace(c) (isspace(c) &&((eight_bits) c<0200) )
53+#define xislower(c) (islower(c) &&((eight_bits) c<0200) )
54+#define xisupper(c) (isupper(c) &&((eight_bits) c<0200) )
55+#define xisxdigit(c) (isxdigit(c) &&((eight_bits) c<0200) ) \
5656
57−#define length(c)(c+1)->byte_start-(c)->byte_start
58−#define print_id(c)term_write((c)->byte_start,length((c)))
57+#define length(c) (c+1) ->byte_start-(c) ->byte_start
58+#define print_id(c) term_write((c) ->byte_start,length((c) ) )
5959 #define llink link
6060 #define rlink dummy.Rlink
6161 #define root name_dir->rlink \
@@ -66,9 +66,9 @@ · 4 unmodified lines
6666 #define harmless_message 1
6767 #define error_message 2
6868 #define fatal_message 3
69−#define mark_harmless {if(history==spotless)history= harmless_message;}
69+#define mark_harmless {if(history==spotless) history= harmless_message;}
7070 #define mark_error history= error_message
71−#define confusion(s)fatal("! This can't happen: ",s) \
71+#define confusion(s) fatal("! This can't happen: ",s) \
7272
7373 #define max_file_name_length 60
7474 #define cur_file file[include_depth]
@@ -80,12 +80,12 @@ · 5 unmodified lines
8080 #define show_progress flags['p']
8181 #define show_happiness flags['h'] \
8282
83−#define update_terminal fflush(stdout)
84−#define new_line putchar('\n')
83+#define update_terminal fflush(stdout)
84+#define new_line putchar('\n')
8585 #define putxchar putchar
86−#define term_write(a,b)fflush(stdout),fwrite(a,sizeof(char),b,stdout)
87−#define C_printf(c,a)fprintf(C_file,c,a)
88−#define C_putc(c)putc(c,C_file) \
86+#define term_write(a,b) fflush(stdout) ,fwrite(a,sizeof(char) ,b,stdout)
87+#define C_printf(c,a) fprintf(C_file,c,a)
88+#define C_putc(c) putc(c,C_file) \
8989
9090 #define equiv equiv_or_xref \
9191
@@ -93,7 +93,7 @@ · 1 unmodified line
9393
9494 #define string 02
9595 #define join 0177
96−#define output_defs_flag (2*024000-1) \
96+#define output_defs_flag (2*024000-1) \
9797
9898 #define cur_end cur_state.end_field
9999 #define cur_byte cur_state.byte_field
@@ -125,14 +125,14 @@ · 25 unmodified lines
125125
126126 #define constant 03 \
127127
128−#define isxalpha(c)((c)=='_')
129−#define ishigh(c)((unsigned char)(c)>0177) \
128+#define isxalpha(c) ((c) =='_')
129+#define ishigh(c) ((unsigned char) (c) >0177) \
130130 \
131131
132−#define compress(c)if(loc++<=limit)return(c) \
132+#define compress(c) if(loc++<=limit) return(c) \
133133
134134 #define macro 0
135−#define app_repl(c){if(tok_ptr==tok_mem_end)overflow("token");*tok_ptr++= c;} \
135+#define app_repl(c) {if(tok_ptr==tok_mem_end) overflow("token") ;*tok_ptr++= c;} \
136136
137137
138138 #line 63 "ctangle.w"
@@ -345,15 +345,16 @@ boolean comment_continues= 0; · 206 unmodified lines
345345 #line 871 "ctangle.w"
346346
347347 name_pointer cur_section_name;
348+int no_where;
348349
349350 /*:61*//*75:*/
350−#line 1181 "ctangle.w"
351+#line 1185 "ctangle.w"
351352
352353 text_pointer cur_text;
353354 eight_bits next_control;
354355
355356 /*:75*//*82:*/
356−#line 1328 "ctangle.w"
357+#line 1335 "ctangle.w"
357358
358359 extern sixteen_bits section_count;
359360
@@ -382,15 +383,15 @@ void output_defs(); · 22 unmodified lines
382383 /*:46*//*48:*/
383384 #line 642 "ctangle.w"
384385
385−void out_char();
386+static void out_char();
386387
387388 /*:48*//*90:*/
388−#line 1434 "ctangle.w"
389+#line 1442 "ctangle.w"
389390
390391 void phase_one();
391392
392393 /*:90*//*92:*/
393−#line 1452 "ctangle.w"
394+#line 1460 "ctangle.w"
394395
395396 void skip_limbo();
396397
@@ -457,7 +458,7 @@ ccode['\'']= ord; · 60 unmodified lines
457458 }
458459
459460 /*:57*//*71:*/
460−#line 1105 "ctangle.w"
461+#line 1106 "ctangle.w"
461462 section_text[0]= ' ';
462463
463464 /*:71*/
@@ -717,7 +718,7 @@ pop_level(0); · 253 unmodified lines
717718 /*:47*//*49:*/
718719 #line 645 "ctangle.w"
719720
720−void
721+static void
721722 out_char(cur_char)
722723 eight_bits cur_char;
723724 {
@@ -861,7 +862,7 @@ else loc++; · 137 unmodified lines
861862 }
862863
863864 /*:60*//*63:*/
864−#line 885 "ctangle.w"
865+#line 886 "ctangle.w"
865866
866867 eight_bits
867868 get_next()
@@ -872,10 +873,10 @@ while(1){ · 4 unmodified lines
872873 if(loc>limit){
873874 if(preprocessing&&*(limit-1)!='\\')preprocessing= 0;
874875 if(get_line()==0)return(new_section);
875−else if(print_where){
876+else if(print_where&&!no_where){
876877 print_where= 0;
877878 /*77:*/
878−#line 1208 "ctangle.w"
879+#line 1215 "ctangle.w"
879880
880881 store_two_bytes(0150000);
881882 if(changing)id_first= change_file_name;
@@ -883,11 +884,11 @@ else id_first= cur_file_name; · 1 unmodified line
883884 id_loc= id_first+strlen(id_first);
884885 if(changing)store_two_bytes((sixteen_bits)change_line);
885886 else store_two_bytes((sixteen_bits)cur_line);
886−{int a= id_lookup(id_first,id_loc)-name_dir;app_repl((a/0400)+0200);
887+{int a= id_lookup(id_first,id_loc,0)-name_dir;app_repl((a/0400)+0200);
887888 app_repl(a%0400);}
888889
889890 /*:77*/
890−#line 897 "ctangle.w"
891+#line 898 "ctangle.w"
891892 ;
892893 }
893894 else return('\n');
@@ -901,7 +902,7 @@ else continue; · 7 unmodified lines
901902 }
902903 loc++;
903904 if(xisdigit(c)||c=='\\'||c=='.')/*66:*/
904−#line 963 "ctangle.w"
905+#line 964 "ctangle.w"
905906 {
906907 id_first= loc-1;
907908 if(*id_first=='.'&&!xisdigit(*loc))goto mistake;
@@ -929,11 +930,11 @@ return(constant); · 21 unmodified lines
929930 }
930931
931932 /*:66*/
932−#line 909 "ctangle.w"
933+#line 910 "ctangle.w"
933934
934935 else if(c=='\''||c=='"'||(c=='L'&&(*loc=='\''||*loc=='"')))
935936 /*67:*/
936−#line 994 "ctangle.w"
937+#line 995 "ctangle.w"
937938 {
938939 char delim= c;
939940 id_first= section_text+1;
@@ -976,11 +977,11 @@ return(string); · 36 unmodified lines
976977 }
977978
978979 /*:67*/
979−#line 911 "ctangle.w"
980+#line 912 "ctangle.w"
980981
981982 else if(isalpha(c)||isxalpha(c)||ishigh(c))
982983 /*65:*/
983−#line 957 "ctangle.w"
984+#line 958 "ctangle.w"
984985 {
985986 id_first= --loc;
986987 while(isalpha(*++loc)||isdigit(*loc)||isxalpha(*loc)||ishigh(*loc));
@@ -988,10 +989,10 @@ id_loc= loc;return(identifier); · 1 unmodified line
988989 }
989990
990991 /*:65*/
991−#line 913 "ctangle.w"
992+#line 914 "ctangle.w"
992993
993994 else if(c=='@')/*68:*/
994−#line 1038 "ctangle.w"
995+#line 1039 "ctangle.w"
995996 {
996997 c= ccode[(eight_bits)*loc++];
997998 switch(c){
@@ -1008,11 +1009,11 @@ continue; · 10 unmodified lines
10081009 case section_name:
10091010 cur_section_name_char= *(loc-1);
10101011 /*70:*/
1011−#line 1087 "ctangle.w"
1012+#line 1088 "ctangle.w"
10121013 {
10131014 char*k;
10141015 /*72:*/
1015−#line 1107 "ctangle.w"
1016+#line 1108 "ctangle.w"
10161017
10171018 k= section_text;
10181019 while(1){
@@ -1023,7 +1024,7 @@ loc= buffer+1;break; · 4 unmodified lines
10231024 }
10241025 c= *loc;
10251026 /*73:*/
1026−#line 1131 "ctangle.w"
1027+#line 1132 "ctangle.w"
10271028
10281029 if(c=='@'){
10291030 c= *(loc+1);
@@ -1042,7 +1043,7 @@ err_print("! Nesting of section names not allowed");break; · 12 unmodified lines
10421043 }
10431044
10441045 /*:73*/
1045−#line 1116 "ctangle.w"
1046+#line 1117 "ctangle.w"
10461047 ;
10471048 loc++;if(k<section_text_end)k++;
10481049 if(xisspace(c)){
@@ -1059,7 +1060,7 @@ printf("...");mark_harmless; · 10 unmodified lines
10591060 if(*k==' '&&k>section_text)k--;
10601061
10611062 /*:72*/
1062−#line 1089 "ctangle.w"
1063+#line 1090 "ctangle.w"
10631064 ;
10641065 if(k-section_text>3&&strncmp(k-2,"...",3)==0)
10651066 cur_section_name= section_lookup(section_text+1,k-3,1);
@@ -1082,16 +1083,16 @@ overflow("output files"); · 16 unmodified lines
10821083 }
10831084
10841085 /*:40*/
1085−#line 1095 "ctangle.w"
1086+#line 1096 "ctangle.w"
10861087 ;
10871088 return(section_name);
10881089 }
10891090
10901091 /*:70*/
1091−#line 1053 "ctangle.w"
1092+#line 1054 "ctangle.w"
10921093 ;
10931094 case string:/*74:*/
1094−#line 1153 "ctangle.w"
1095+#line 1154 "ctangle.w"
10951096 {
10961097 id_first= loc++;*(limit+1)= '@';*(limit+2)= '>';
10971098 while(*loc!='@'||*(loc+1)!='>')loc++;
@@ -1102,10 +1103,10 @@ return(string); · 4 unmodified lines
11021103 }
11031104
11041105 /*:74*/
1105−#line 1054 "ctangle.w"
1106+#line 1055 "ctangle.w"
11061107 ;
11071108 case ord:/*69:*/
1108−#line 1066 "ctangle.w"
1109+#line 1067 "ctangle.w"
11091110
11101111 id_first= loc;
11111112 if(*loc=='\\'){
@@ -1128,14 +1129,14 @@ loc++; · 16 unmodified lines
11281129 return(ord);
11291130
11301131 /*:69*/
1131−#line 1055 "ctangle.w"
1132+#line 1056 "ctangle.w"
11321133 ;
11331134 default:return(c);
11341135 }
11351136 }
11361137
11371138 /*:68*/
1138−#line 914 "ctangle.w"
1139+#line 915 "ctangle.w"
11391140
11401141 else if(xisspace(c)){
11411142 if(!preprocessing||loc>limit)continue;
@@ -1144,7 +1145,7 @@ else return(' '); · 2 unmodified lines
11441145 }
11451146 else if(c=='#'&&loc==buffer+1)preprocessing= 1;
11461147 mistake:/*64:*/
1147−#line 935 "ctangle.w"
1148+#line 936 "ctangle.w"
11481149
11491150 switch(c){
11501151 case'+':if(*loc=='+')compress(plus_plus);break;
@@ -1168,14 +1169,14 @@ case'!':if(*loc=='=')compress(not_eq);break; · 17 unmodified lines
11681169 }
11691170
11701171 /*:64*/
1171−#line 921 "ctangle.w"
1172+#line 922 "ctangle.w"
11721173
11731174 return(c);
11741175 }
11751176 }
11761177
11771178 /*:63*//*76:*/
1178−#line 1185 "ctangle.w"
1179+#line 1189 "ctangle.w"
11791180
11801181 void
11811182 scan_repl(t)
@@ -1183,7 +1184,7 @@ eight_bits t; · 1 unmodified line
11831184 {
11841185 sixteen_bits a;
11851186 if(t==section_name){/*77:*/
1186−#line 1208 "ctangle.w"
1187+#line 1215 "ctangle.w"
11871188
11881189 store_two_bytes(0150000);
11891190 if(changing)id_first= change_file_name;
@@ -1191,23 +1192,23 @@ else id_first= cur_file_name; · 1 unmodified line
11911192 id_loc= id_first+strlen(id_first);
11921193 if(changing)store_two_bytes((sixteen_bits)change_line);
11931194 else store_two_bytes((sixteen_bits)cur_line);
1194−{int a= id_lookup(id_first,id_loc)-name_dir;app_repl((a/0400)+0200);
1195+{int a= id_lookup(id_first,id_loc,0)-name_dir;app_repl((a/0400)+0200);
11951196 app_repl(a%0400);}
11961197
11971198 /*:77*/
1198−#line 1191 "ctangle.w"
1199+#line 1195 "ctangle.w"
11991200 ;}
12001201 while(1)switch(a= get_next()){
12011202 /*78:*/
1202−#line 1218 "ctangle.w"
1203+#line 1225 "ctangle.w"
12031204
1204−case identifier:a= id_lookup(id_first,id_loc)-name_dir;
1205+case identifier:a= id_lookup(id_first,id_loc,0)-name_dir;
12051206 app_repl((a/0400)+0200);
12061207 app_repl(a%0400);break;
12071208 case section_name:if(t!=section_name)goto done;
12081209 else{
12091210 /*79:*/
1210−#line 1246 "ctangle.w"
1211+#line 1253 "ctangle.w"
12111212 {
12121213 char*try_loc= loc;
12131214 while(*try_loc==' '&&try_loc<limit)try_loc++;
@@ -1220,13 +1221,13 @@ if(*try_loc=='=')err_print("! Missing `@ ' before a named section"); · 6 unmodified lines
12201221 }
12211222
12221223 /*:79*/
1223−#line 1224 "ctangle.w"
1224+#line 1231 "ctangle.w"
12241225 ;
12251226 a= cur_section_name-name_dir;
12261227 app_repl((a/0400)+0250);
12271228 app_repl(a%0400);
12281229 /*77:*/
1229−#line 1208 "ctangle.w"
1230+#line 1215 "ctangle.w"
12301231
12311232 store_two_bytes(0150000);
12321233 if(changing)id_first= change_file_name;
@@ -1234,11 +1235,11 @@ else id_first= cur_file_name; · 1 unmodified line
12341235 id_loc= id_first+strlen(id_first);
12351236 if(changing)store_two_bytes((sixteen_bits)change_line);
12361237 else store_two_bytes((sixteen_bits)cur_line);
1237−{int a= id_lookup(id_first,id_loc)-name_dir;app_repl((a/0400)+0200);
1238+{int a= id_lookup(id_first,id_loc,0)-name_dir;app_repl((a/0400)+0200);
12381239 app_repl(a%0400);}
12391240
12401241 /*:77*/
1241−#line 1228 "ctangle.w"
1242+#line 1235 "ctangle.w"
12421243 ;break;
12431244 }
12441245 case output_defs_code:
@@ -1246,7 +1247,7 @@ a= output_defs_flag; · 1 unmodified line
12461247 app_repl((a/0400)+0200);
12471248 app_repl(a%0400);
12481249 /*77:*/
1249−#line 1208 "ctangle.w"
1250+#line 1215 "ctangle.w"
12501251
12511252 store_two_bytes(0150000);
12521253 if(changing)id_first= change_file_name;
@@ -1254,15 +1255,15 @@ else id_first= cur_file_name; · 1 unmodified line
12541255 id_loc= id_first+strlen(id_first);
12551256 if(changing)store_two_bytes((sixteen_bits)change_line);
12561257 else store_two_bytes((sixteen_bits)cur_line);
1257−{int a= id_lookup(id_first,id_loc)-name_dir;app_repl((a/0400)+0200);
1258+{int a= id_lookup(id_first,id_loc,0)-name_dir;app_repl((a/0400)+0200);
12581259 app_repl(a%0400);}
12591260
12601261 /*:77*/
1261−#line 1234 "ctangle.w"
1262+#line 1241 "ctangle.w"
12621263 ;break;
12631264 case constant:case string:
12641265 /*80:*/
1265−#line 1257 "ctangle.w"
1266+#line 1264 "ctangle.w"
12661267
12671268 app_repl(a);
12681269 while(id_first<id_loc){
@@ -1276,11 +1277,11 @@ app_repl(*id_first++); · 7 unmodified lines
12761277 app_repl(a);break;
12771278
12781279 /*:80*/
1279−#line 1236 "ctangle.w"
1280+#line 1243 "ctangle.w"
12801281 ;
12811282 case ord:
12821283 /*81:*/
1283−#line 1273 "ctangle.w"
1284+#line 1280 "ctangle.w"
12841285 {
12851286 int c= (eight_bits)*id_first;
12861287 if(c=='\\'){
@@ -1331,7 +1332,7 @@ app_repl(constant); · 44 unmodified lines
13311332 break;
13321333
13331334 /*:81*/
1334−#line 1238 "ctangle.w"
1335+#line 1245 "ctangle.w"
13351336 ;
13361337 case definition:case format_code:case begin_C:if(t!=section_name)goto done;
13371338 else{
@@ -1341,8 +1342,11 @@ err_print("! @d, @f and @c are ignored in C text");continue; · 3 unmodified lines
13411342 case new_section:goto done;
13421343
13431344 /*:78*/
1344−#line 1196 "ctangle.w"
1345+#line 1200 "ctangle.w"
13451346
1347+case')':app_repl(a);
1348+if(t==macro)app_repl(' ');
1349+break;
13461350 default:app_repl(a);
13471351 }
13481352 done:next_control= (eight_bits)a;
@@ -1351,7 +1355,7 @@ cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr; · 2 unmodified lines
13511355 }
13521356
13531357 /*:76*//*83:*/
1354−#line 1335 "ctangle.w"
1358+#line 1342 "ctangle.w"
13551359
13561360 void
13571361 scan_section()
@@ -1359,14 +1363,14 @@ scan_section() · 1 unmodified line
13591363 name_pointer p;
13601364 text_pointer q;
13611365 sixteen_bits a;
1362−section_count++;
1366+section_count++;no_where= 1;
13631367 if(*(loc-1)=='*'&&show_progress){
13641368 printf("*%d",section_count);update_terminal;
13651369 }
13661370 next_control= 0;
13671371 while(1){
13681372 /*84:*/
1369−#line 1373 "ctangle.w"
1373+#line 1381 "ctangle.w"
13701374
13711375 while(next_control<definition)
13721376
@@ -1375,11 +1379,11 @@ loc-= 2;next_control= get_next(); · 2 unmodified lines
13751379 }
13761380
13771381 /*:84*/
1378−#line 1349 "ctangle.w"
1382+#line 1356 "ctangle.w"
13791383 ;
13801384 if(next_control==definition){
13811385 /*85:*/
1382−#line 1380 "ctangle.w"
1386+#line 1388 "ctangle.w"
13831387 {
13841388 while((next_control= get_next())=='\n');
13851389 if(next_control!=identifier){
@@ -1387,18 +1391,18 @@ err_print("! Definition flushed, must start with identifier"); · 1 unmodified line
13871391
13881392 continue;
13891393 }
1390−app_repl(((a= id_lookup(id_first,id_loc)-name_dir)/0400)+0200);
1394+app_repl(((a= id_lookup(id_first,id_loc,0)-name_dir)/0400)+0200);
13911395
13921396 app_repl(a%0400);
13931397 if(*loc!='('){
13941398 app_repl(string);app_repl(' ');app_repl(string);
13951399 }
1396−print_where= 0;scan_repl(macro);
1400+scan_repl(macro);
13971401 cur_text->text_link= 0;
13981402 }
13991403
14001404 /*:85*/
1401−#line 1351 "ctangle.w"
1405+#line 1358 "ctangle.w"
14021406
14031407 continue;
14041408 }
@@ -1408,34 +1412,35 @@ p= name_dir;break; · 3 unmodified lines
14081412 if(next_control==section_name){
14091413 p= cur_section_name;
14101414 /*86:*/
1411−#line 1405 "ctangle.w"
1415+#line 1413 "ctangle.w"
14121416
14131417 while((next_control= get_next())=='+');
14141418 if(next_control!='='&&next_control!=eq_eq)
14151419 continue;
14161420
14171421 /*:86*/
1418−#line 1359 "ctangle.w"
1422+#line 1366 "ctangle.w"
14191423 ;
14201424 break;
14211425 }
14221426 return;
14231427 }
1428+no_where= print_where= 0;
14241429 /*87:*/
1425−#line 1410 "ctangle.w"
1430+#line 1418 "ctangle.w"
14261431
14271432 /*88:*/
1428−#line 1415 "ctangle.w"
1433+#line 1423 "ctangle.w"
14291434
14301435 store_two_bytes((sixteen_bits)(0150000+section_count));
14311436
14321437
14331438 /*:88*/
1434−#line 1411 "ctangle.w"
1439+#line 1419 "ctangle.w"
14351440 ;
14361441 scan_repl(section_name);
14371442 /*89:*/
1438−#line 1419 "ctangle.w"
1443+#line 1427 "ctangle.w"
14391444
14401445 if(p==name_dir||p==0){
14411446 (last_unnamed)->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1452,16 +1457,16 @@ cur_text->text_link= section_flag; · 10 unmodified lines
14521457
14531458
14541459 /*:89*/
1455−#line 1413 "ctangle.w"
1460+#line 1421 "ctangle.w"
14561461 ;
14571462
14581463 /*:87*/
1459−#line 1364 "ctangle.w"
1464+#line 1372 "ctangle.w"
14601465 ;
14611466 }
14621467
14631468 /*:83*//*91:*/
1464−#line 1437 "ctangle.w"
1469+#line 1445 "ctangle.w"
14651470
14661471 void
14671472 phase_one(){
@@ -1475,7 +1480,7 @@ phase= 2; · 7 unmodified lines
14751480 }
14761481
14771482 /*:91*//*93:*/
1478−#line 1455 "ctangle.w"
1483+#line 1463 "ctangle.w"
14791484
14801485 void
14811486 skip_limbo()
@@ -1490,7 +1495,7 @@ c= *loc++; · 8 unmodified lines
14901495 if(ccode[(eight_bits)c]==new_section)break;
14911496 switch(ccode[(eight_bits)c]){
14921497 case translit_code:/*94:*/
1493−#line 1484 "ctangle.w"
1498+#line 1492 "ctangle.w"
14941499
14951500 while(xisspace(*loc)&&loc<limit)loc++;
14961501 loc+= 3;
@@ -1515,7 +1520,7 @@ translit[i-0200][loc-beg]= '\0'; · 18 unmodified lines
15151520 }
15161521
15171522 /*:94*/
1518−#line 1468 "ctangle.w"
1523+#line 1476 "ctangle.w"
15191524 ;break;
15201525 case format_code:case'@':break;
15211526 case control_text:if(c=='q'||c=='Q'){
@@ -1533,7 +1538,7 @@ default:err_print("! Double @ should be used in limbo"); · 11 unmodified lines
15331538 }
15341539
15351540 /*:93*//*95:*/
1536−#line 1510 "ctangle.w"
1541+#line 1518 "ctangle.w"
15371542
15381543 void
15391544 print_stats(){

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t