texlive[57874] Build/source/texk/web2c: [CWEB] Code review.

commits+ascherer at tug.org commits+ascherer at tug.org
Wed Feb 24 19:19:47 CET 2021


Revision: 57874
          http://tug.org/svn/texlive?view=revision&revision=57874
Author:   ascherer
Date:     2021-02-24 19:19:47 +0100 (Wed, 24 Feb 2021)
Log Message:
-----------
[CWEB] Code review.

Compactify single function declarations.

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/ChangeLog
    trunk/Build/source/texk/web2c/ctangleboot.cin
    trunk/Build/source/texk/web2c/cwebboot.cin
    trunk/Build/source/texk/web2c/cwebdir/ChangeLog
    trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h
    trunk/Build/source/texk/web2c/cwebdir/common.c
    trunk/Build/source/texk/web2c/cwebdir/common.h
    trunk/Build/source/texk/web2c/cwebdir/common.w
    trunk/Build/source/texk/web2c/cwebdir/ctangle.c
    trunk/Build/source/texk/web2c/cwebdir/ctangle.w
    trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
    trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
    trunk/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
    trunk/Build/source/texk/web2c/cwebdir/cweave.w

Modified: trunk/Build/source/texk/web2c/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ChangeLog	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/ChangeLog	2021-02-24 18:19:47 UTC (rev 57874)
@@ -1,3 +1,8 @@
+2021-02-24  Andreas Scherer  <https://ascherer.github.io>
+
+	* ctangleboot.cin,
+	* cwebboot.cin: Code review.
+
 2021-02-22  Andreas Scherer  <https://ascherer.github.io>
 
 	* ctangleboot.cin,

Modified: trunk/Build/source/texk/web2c/ctangleboot.cin
===================================================================
--- trunk/Build/source/texk/web2c/ctangleboot.cin	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/ctangleboot.cin	2021-02-24 18:19:47 UTC (rev 57874)
@@ -281,7 +281,7 @@
 typedef text*text_pointer;
 
 /*:19*//*31:*/
-#line 270 "cwebdir/ctangle.w"
+#line 269 "cwebdir/ctangle.w"
 
 typedef struct{
 eight_bits*end_field;
@@ -311,7 +311,7 @@
 static text_pointer last_unnamed;
 
 /*:26*//*32:*/
-#line 286 "cwebdir/ctangle.w"
+#line 285 "cwebdir/ctangle.w"
 
 static output_state cur_state;
 
@@ -320,18 +320,18 @@
 static stack_pointer stack_ptr;
 
 /*:32*//*37:*/
-#line 362 "cwebdir/ctangle.w"
+#line 361 "cwebdir/ctangle.w"
 
 static int cur_val;
 
 /*:37*//*42:*/
-#line 454 "cwebdir/ctangle.w"
+#line 452 "cwebdir/ctangle.w"
 
 static eight_bits out_state;
 static boolean protect;
 
 /*:42*//*45:*/
-#line 486 "cwebdir/ctangle.w"
+#line 483 "cwebdir/ctangle.w"
 
 static name_pointer output_files[max_files];
 static name_pointer*cur_out_file,*end_output_files,*an_output_file;
@@ -339,33 +339,33 @@
 static char output_file_name[longest_name+1];
 
 /*:45*//*52:*/
-#line 586 "cwebdir/ctangle.w"
+#line 582 "cwebdir/ctangle.w"
 
 static boolean output_defs_seen= false;
 
 /*:52*//*57:*/
-#line 695 "cwebdir/ctangle.w"
+#line 691 "cwebdir/ctangle.w"
 
 static char translit[128][translit_length];
 
 /*:57*//*62:*/
-#line 774 "cwebdir/ctangle.w"
+#line 770 "cwebdir/ctangle.w"
 
 static eight_bits ccode[256];
 
 /*:62*//*66:*/
-#line 834 "cwebdir/ctangle.w"
+#line 830 "cwebdir/ctangle.w"
 
 static boolean comment_continues= false;
 
 /*:66*//*68:*/
-#line 873 "cwebdir/ctangle.w"
+#line 869 "cwebdir/ctangle.w"
 
 static name_pointer cur_section_name;
 static boolean no_where;
 
 /*:68*//*82:*/
-#line 1187 "cwebdir/ctangle.w"
+#line 1182 "cwebdir/ctangle.w"
 
 static text_pointer cur_text;
 static eight_bits next_control;
@@ -408,70 +408,61 @@
 extern void print_stats(void);
 extern void cb_show_banner(void);
 
-/*:16*//*29:*/
-#line 231 "cwebdir/ctangle.w"
-
+/*:16*//*30:*/
+#line 241 "cwebdir/ctangle.w"
 static void store_two_bytes(sixteen_bits);
 
-/*:29*//*34:*/
-#line 310 "cwebdir/ctangle.w"
+/*:30*//*35:*/
+#line 324 "cwebdir/ctangle.w"
 
 static void push_level(name_pointer);
 static void pop_level(boolean);
 
-/*:34*//*38:*/
-#line 369 "cwebdir/ctangle.w"
-
+/*:35*//*39:*/
+#line 397 "cwebdir/ctangle.w"
 static void get_output(void);
 
-/*:38*//*43:*/
-#line 462 "cwebdir/ctangle.w"
-
+/*:39*//*44:*/
+#line 473 "cwebdir/ctangle.w"
 static void flush_buffer(void);
 
-/*:43*//*48:*/
-#line 517 "cwebdir/ctangle.w"
-
+/*:44*//*49:*/
+#line 549 "cwebdir/ctangle.w"
 static void phase_two(void);
 
-/*:48*//*53:*/
-#line 589 "cwebdir/ctangle.w"
+/*:49*//*53:*/
+#line 585 "cwebdir/ctangle.w"
 
 static void output_defs(void);
 static void out_char(eight_bits);
 
-/*:53*//*64:*/
-#line 798 "cwebdir/ctangle.w"
+/*:53*//*65:*/
+#line 810 "cwebdir/ctangle.w"
 
 static eight_bits skip_ahead(void);
 static boolean skip_comment(boolean);
 
-/*:64*//*69:*/
-#line 885 "cwebdir/ctangle.w"
-
+/*:65*//*70:*/
+#line 924 "cwebdir/ctangle.w"
 static eight_bits get_next(void);
 
-/*:69*//*83:*/
-#line 1191 "cwebdir/ctangle.w"
-
+/*:70*//*84:*/
+#line 1208 "cwebdir/ctangle.w"
 static void scan_repl(eight_bits);
 
-/*:83*//*90:*/
-#line 1348 "cwebdir/ctangle.w"
-
+/*:84*//*91:*/
+#line 1379 "cwebdir/ctangle.w"
 static void scan_section(void);
 
-/*:90*//*98:*/
-#line 1455 "cwebdir/ctangle.w"
-
+/*:91*//*99:*/
+#line 1460 "cwebdir/ctangle.w"
 static void phase_one(void);
 
-/*:98*//*100:*/
-#line 1473 "cwebdir/ctangle.w"
-
+/*:99*//*101:*/
+#line 1494 "cwebdir/ctangle.w"
 static void skip_limbo(void);
 
-/*:100*/
+/*:101*/
 #line 72 "cwebdir/ctangle.w"
 
 
@@ -501,12 +492,12 @@
 last_unnamed= text_info;text_info->text_link= 0;
 
 /*:27*//*46:*/
-#line 496 "cwebdir/ctangle.w"
+#line 493 "cwebdir/ctangle.w"
 
 cur_out_file= end_output_files= output_files+max_files;
 
 /*:46*//*58:*/
-#line 698 "cwebdir/ctangle.w"
+#line 694 "cwebdir/ctangle.w"
 
 {
 int i;
@@ -514,7 +505,7 @@
 }
 
 /*:58*//*63:*/
-#line 777 "cwebdir/ctangle.w"
+#line 773 "cwebdir/ctangle.w"
 {
 int c;
 for(c= 0;c<256;c++)ccode[c]= ignore;
@@ -534,7 +525,7 @@
 }
 
 /*:63*//*78:*/
-#line 1108 "cwebdir/ctangle.w"
+#line 1103 "cwebdir/ctangle.w"
 section_text[0]= ' ';
 
 /*:78*//*116:*/
@@ -579,22 +570,22 @@
 void
 init_p(name_pointer p,eight_bits t){(void)p;(void)t;}
 
-/*:25*//*30:*/
-#line 234 "cwebdir/ctangle.w"
+/*:25*//*29:*/
+#line 231 "cwebdir/ctangle.w"
 
-void
+static void
 store_two_bytes(
 sixteen_bits x)
 {
 #line 65 "cwebdir/ctang-w2c.ch"
 if(tok_ptr+2> tok_mem_end)overflow(_("token"));
-#line 240 "cwebdir/ctangle.w"
+#line 237 "cwebdir/ctangle.w"
 *tok_ptr++= x>>8;
 *tok_ptr++= x&0377;
 }
 
-/*:30*//*35:*/
-#line 314 "cwebdir/ctangle.w"
+/*:29*//*34:*/
+#line 309 "cwebdir/ctangle.w"
 
 static void
 push_level(
@@ -602,7 +593,7 @@
 {
 #line 71 "cwebdir/ctang-w2c.ch"
 if(stack_ptr==stack_end)overflow(_("stack"));
-#line 320 "cwebdir/ctangle.w"
+#line 315 "cwebdir/ctangle.w"
 *stack_ptr= cur_state;
 stack_ptr++;
 if(p!=NULL){
@@ -612,8 +603,8 @@
 }
 }
 
-/*:35*//*36:*/
-#line 333 "cwebdir/ctangle.w"
+/*:34*//*36:*/
+#line 332 "cwebdir/ctangle.w"
 
 static void
 pop_level(
@@ -628,8 +619,8 @@
 if(stack_ptr> stack)cur_state= *stack_ptr;
 }
 
-/*:36*//*39:*/
-#line 372 "cwebdir/ctangle.w"
+/*:36*//*38:*/
+#line 368 "cwebdir/ctangle.w"
 
 static void
 get_output(void)
@@ -652,7 +643,7 @@
 case 0:cur_val= a;out_char(identifier);break;
 case 1:if(a==output_defs_flag)output_defs();
 else/*40:*/
-#line 404 "cwebdir/ctangle.w"
+#line 402 "cwebdir/ctangle.w"
 
 {
 a-= 024000;
@@ -660,7 +651,7 @@
 else if(a!=0){
 #line 77 "cwebdir/ctang-w2c.ch"
 fputs(_("\n! Not present: <"),stdout);
-#line 410 "cwebdir/ctangle.w"
+#line 408 "cwebdir/ctangle.w"
 print_section_name(a+name_dir);err_print(">");
 
 }
@@ -668,7 +659,7 @@
 }
 
 /*:40*/
-#line 393 "cwebdir/ctangle.w"
+#line 389 "cwebdir/ctangle.w"
 
 break;
 default:cur_val= a-050000;if(cur_val> 0)cur_section= cur_val;
@@ -677,8 +668,8 @@
 }
 }
 
-/*:39*//*44:*/
-#line 465 "cwebdir/ctangle.w"
+/*:38*//*43:*/
+#line 460 "cwebdir/ctangle.w"
 
 static void
 flush_buffer(void)
@@ -692,8 +683,8 @@
 cur_line++;
 }
 
-/*:44*//*49:*/
-#line 520 "cwebdir/ctangle.w"
+/*:43*//*48:*/
+#line 514 "cwebdir/ctangle.w"
 
 static void
 phase_two(void){
@@ -700,27 +691,27 @@
 web_file_open= false;
 cur_line= 1;
 /*33:*/
-#line 299 "cwebdir/ctangle.w"
+#line 298 "cwebdir/ctangle.w"
 
 stack_ptr= stack+1;cur_name= name_dir;cur_repl= text_info->text_link+text_info;
 cur_byte= cur_repl->tok_start;cur_end= (cur_repl+1)->tok_start;cur_section= 0;
 
 /*:33*/
-#line 525 "cwebdir/ctangle.w"
+#line 519 "cwebdir/ctangle.w"
 
 /*51:*/
-#line 582 "cwebdir/ctangle.w"
+#line 578 "cwebdir/ctangle.w"
 
 if(!output_defs_seen)
 output_defs();
 
 /*:51*/
-#line 526 "cwebdir/ctangle.w"
+#line 520 "cwebdir/ctangle.w"
 
 if(text_info->text_link==0&&cur_out_file==end_output_files){
 #line 89 "cwebdir/ctang-w2c.ch"
 fputs(_("\n! No program text was specified."),stdout);mark_harmless;
-#line 529 "cwebdir/ctangle.w"
+#line 523 "cwebdir/ctangle.w"
 
 }
 else{
@@ -728,13 +719,13 @@
 if(show_progress)
 #line 95 "cwebdir/ctang-w2c.ch"
 printf(_("\nWriting the output file (%s):"),C_file_name);
-#line 535 "cwebdir/ctangle.w"
+#line 529 "cwebdir/ctangle.w"
 }
 else{
 if(show_progress){
 #line 101 "cwebdir/ctang-w2c.ch"
 fputs(_("\nWriting the output files:"),stdout);
-#line 539 "cwebdir/ctangle.w"
+#line 533 "cwebdir/ctangle.w"
 
 printf(" (%s)",C_file_name);
 update_terminal;
@@ -978,22 +969,22 @@
 
 }
 strcpy(check_file_name,"");
-#line 577 "cwebdir/ctangle.w"
+#line 573 "cwebdir/ctangle.w"
 
 /*:50*/
-#line 547 "cwebdir/ctangle.w"
+#line 541 "cwebdir/ctangle.w"
 
 if(show_happiness){
 if(show_progress)new_line;
 #line 107 "cwebdir/ctang-w2c.ch"
 fputs(_("Done."),stdout);
-#line 551 "cwebdir/ctangle.w"
+#line 545 "cwebdir/ctangle.w"
 }
 }
 }
 
-/*:49*//*54:*/
-#line 593 "cwebdir/ctangle.w"
+/*:48*//*54:*/
+#line 589 "cwebdir/ctangle.w"
 
 static void
 output_defs(void)
@@ -1021,7 +1012,7 @@
 }
 #line 159 "cwebdir/ctang-w2c.ch"
 else if(a<050000){confusion(_("macro defs have strange char"));}
-#line 619 "cwebdir/ctangle.w"
+#line 615 "cwebdir/ctangle.w"
 else{
 cur_val= a-050000;cur_section= cur_val;out_char(section_number);
 }
@@ -1035,7 +1026,7 @@
 }
 
 /*:54*//*55:*/
-#line 636 "cwebdir/ctangle.w"
+#line 632 "cwebdir/ctangle.w"
 
 static void
 out_char(
@@ -1048,7 +1039,7 @@
 if(protect||out_state==verbatim)C_putc('\\');
 flush_buffer();if(out_state!=verbatim)out_state= normal;break;
 /*59:*/
-#line 704 "cwebdir/ctangle.w"
+#line 700 "cwebdir/ctangle.w"
 
 case identifier:
 if(out_state==num_or_id)C_putc(' ');
@@ -1063,10 +1054,10 @@
 out_state= num_or_id;break;
 
 /*:59*/
-#line 647 "cwebdir/ctangle.w"
+#line 643 "cwebdir/ctangle.w"
 
 /*60:*/
-#line 717 "cwebdir/ctangle.w"
+#line 713 "cwebdir/ctangle.w"
 
 case section_number:
 if(cur_val> 0)C_printf("/*%d:*/",cur_val);
@@ -1093,10 +1084,10 @@
 break;
 
 /*:60*/
-#line 648 "cwebdir/ctangle.w"
+#line 644 "cwebdir/ctangle.w"
 
 /*56:*/
-#line 666 "cwebdir/ctangle.w"
+#line 662 "cwebdir/ctangle.w"
 
 case plus_plus:C_putc('+');C_putc('+');out_state= normal;break;
 case minus_minus:C_putc('-');C_putc('-');out_state= normal;break;
@@ -1117,7 +1108,7 @@
 break;
 
 /*:56*/
-#line 649 "cwebdir/ctangle.w"
+#line 645 "cwebdir/ctangle.w"
 
 case'=':case'>':C_putc(cur_char);C_putc(' ');
 out_state= normal;break;
@@ -1135,8 +1126,8 @@
 }
 }
 
-/*:55*//*65:*/
-#line 802 "cwebdir/ctangle.w"
+/*:55*//*64:*/
+#line 794 "cwebdir/ctangle.w"
 
 static eight_bits
 skip_ahead(void)
@@ -1153,8 +1144,8 @@
 }
 }
 
-/*:65*//*67:*/
-#line 837 "cwebdir/ctangle.w"
+/*:64*//*67:*/
+#line 833 "cwebdir/ctangle.w"
 
 static boolean skip_comment(
 boolean is_long_comment)
@@ -1167,7 +1158,7 @@
 else{
 #line 165 "cwebdir/ctang-w2c.ch"
 err_print(_("! Input ended in mid-comment"));
-#line 848 "cwebdir/ctangle.w"
+#line 844 "cwebdir/ctangle.w"
 
 return comment_continues= false;
 }
@@ -1182,7 +1173,7 @@
 if(ccode[(eight_bits)*loc]==new_section){
 #line 171 "cwebdir/ctang-w2c.ch"
 err_print(_("! Section name ended in mid-comment"));loc--;
-#line 861 "cwebdir/ctangle.w"
+#line 857 "cwebdir/ctangle.w"
 
 return comment_continues= false;
 }
@@ -1191,8 +1182,8 @@
 }
 }
 
-/*:67*//*70:*/
-#line 888 "cwebdir/ctangle.w"
+/*:67*//*69:*/
+#line 881 "cwebdir/ctangle.w"
 
 static eight_bits
 get_next(void)
@@ -1206,7 +1197,7 @@
 else if(print_where&&!no_where){
 print_where= false;
 /*85:*/
-#line 1220 "cwebdir/ctangle.w"
+#line 1214 "cwebdir/ctangle.w"
 
 store_two_bytes(0150000);
 if(changing&&include_depth==change_depth){
@@ -1221,7 +1212,7 @@
 app_repl(a_l%0400);}
 
 /*:85*/
-#line 900 "cwebdir/ctangle.w"
+#line 893 "cwebdir/ctangle.w"
 
 }
 else return'\n';
@@ -1235,7 +1226,7 @@
 }
 loc++;
 if(xisdigit(c)||c=='.')/*73:*/
-#line 969 "cwebdir/ctangle.w"
+#line 964 "cwebdir/ctangle.w"
 {
 id_first= loc-1;
 if(*id_first=='.'&&!xisdigit(*loc))goto mistake;
@@ -1260,13 +1251,13 @@
 }
 
 /*:73*/
-#line 912 "cwebdir/ctangle.w"
+#line 905 "cwebdir/ctangle.w"
 
 else if(c=='\''||c=='"'
 ||((c=='L'||c=='u'||c=='U')&&(*loc=='\''||*loc=='"'))
 ||((c=='u'&&*loc=='8')&&(*(loc+1)=='\''||*(loc+1)=='"')))
 /*74:*/
-#line 997 "cwebdir/ctangle.w"
+#line 992 "cwebdir/ctangle.w"
 {
 char delim= c;
 id_first= section_text+1;
@@ -1280,13 +1271,13 @@
 if(*(limit-1)!='\\'){
 #line 177 "cwebdir/ctang-w2c.ch"
 err_print(_("! String didn't end"));loc= limit;break;
-#line 1009 "cwebdir/ctangle.w"
+#line 1004 "cwebdir/ctangle.w"
 
 }
 if(get_line()==false){
 #line 183 "cwebdir/ctang-w2c.ch"
 err_print(_("! Input ended in middle of string"));loc= buffer;break;
-#line 1013 "cwebdir/ctangle.w"
+#line 1008 "cwebdir/ctangle.w"
 
 }
 else if(++id_loc<=section_text_end)*id_loc= '\n';
@@ -1306,7 +1297,7 @@
 if(id_loc>=section_text_end){
 #line 189 "cwebdir/ctang-w2c.ch"
 fputs(_("\n! String too long: "),stdout);
-#line 1031 "cwebdir/ctangle.w"
+#line 1026 "cwebdir/ctangle.w"
 
 term_write(section_text+1,25);
 err_print("...");
@@ -1316,11 +1307,11 @@
 }
 
 /*:74*/
-#line 916 "cwebdir/ctangle.w"
+#line 909 "cwebdir/ctangle.w"
 
 else if(isalpha(c)||isxalpha(c)||ishigh(c))
 /*72:*/
-#line 962 "cwebdir/ctangle.w"
+#line 957 "cwebdir/ctangle.w"
 {
 id_first= --loc;
 while(isalpha((eight_bits)*++loc)||isdigit((eight_bits)*loc)
@@ -1329,10 +1320,10 @@
 }
 
 /*:72*/
-#line 918 "cwebdir/ctangle.w"
+#line 911 "cwebdir/ctangle.w"
 
 else if(c=='@')/*75:*/
-#line 1042 "cwebdir/ctangle.w"
+#line 1037 "cwebdir/ctangle.w"
 {
 c= ccode[(eight_bits)*loc++];
 switch(c){
@@ -1339,7 +1330,7 @@
 case ignore:continue;
 #line 195 "cwebdir/ctang-w2c.ch"
 case translit_code:err_print(_("! Use @l in limbo only"));continue;
-#line 1047 "cwebdir/ctangle.w"
+#line 1042 "cwebdir/ctangle.w"
 
 case control_text:while((c= skip_ahead())=='@');
 
@@ -1346,17 +1337,17 @@
 if(*(loc-1)!='>')
 #line 201 "cwebdir/ctang-w2c.ch"
 err_print(_("! Double @ should be used in control text"));
-#line 1052 "cwebdir/ctangle.w"
+#line 1047 "cwebdir/ctangle.w"
 
 continue;
 case section_name:
 cur_section_name_char= *(loc-1);
 /*77:*/
-#line 1090 "cwebdir/ctangle.w"
+#line 1085 "cwebdir/ctangle.w"
 {
 char*k;
 /*79:*/
-#line 1110 "cwebdir/ctangle.w"
+#line 1105 "cwebdir/ctangle.w"
 
 k= section_text;
 while(true){
@@ -1363,13 +1354,13 @@
 if(loc> limit&&get_line()==false){
 #line 219 "cwebdir/ctang-w2c.ch"
 err_print(_("! Input ended in section name"));
-#line 1115 "cwebdir/ctangle.w"
+#line 1110 "cwebdir/ctangle.w"
 
 loc= buffer+1;break;
 }
 c= *loc;
 /*80:*/
-#line 1134 "cwebdir/ctangle.w"
+#line 1129 "cwebdir/ctangle.w"
 
 if(c=='@'){
 c= *(loc+1);
@@ -1379,13 +1370,13 @@
 if(ccode[(eight_bits)c]==new_section){
 #line 231 "cwebdir/ctang-w2c.ch"
 err_print(_("! Section name didn't end"));break;
-#line 1142 "cwebdir/ctangle.w"
+#line 1137 "cwebdir/ctangle.w"
 
 }
 if(ccode[(eight_bits)c]==section_name){
 #line 237 "cwebdir/ctang-w2c.ch"
 err_print(_("! Nesting of section names not allowed"));break;
-#line 1146 "cwebdir/ctangle.w"
+#line 1141 "cwebdir/ctangle.w"
 
 }
 *(++k)= '@';loc++;
@@ -1392,7 +1383,7 @@
 }
 
 /*:80*/
-#line 1119 "cwebdir/ctangle.w"
+#line 1114 "cwebdir/ctangle.w"
 
 loc++;if(k<section_text_end)k++;
 if(xisspace(c)){
@@ -1403,7 +1394,7 @@
 if(k>=section_text_end){
 #line 225 "cwebdir/ctang-w2c.ch"
 fputs(_("\n! Section name too long: "),stdout);
-#line 1128 "cwebdir/ctangle.w"
+#line 1123 "cwebdir/ctangle.w"
 
 term_write(section_text+1,25);
 printf("...");mark_harmless;
@@ -1411,7 +1402,7 @@
 if(*k==' '&&k> section_text)k--;
 
 /*:79*/
-#line 1092 "cwebdir/ctangle.w"
+#line 1087 "cwebdir/ctangle.w"
 
 if(k-section_text> 3&&strncmp(k-2,"...",3)==0)
 cur_section_name= section_lookup(section_text+1,k-3,1);
@@ -1418,7 +1409,7 @@
 else cur_section_name= section_lookup(section_text+1,k,0);
 if(cur_section_name_char=='(')
 /*47:*/
-#line 500 "cwebdir/ctangle.w"
+#line 497 "cwebdir/ctangle.w"
 
 {
 for(an_output_file= cur_out_file;
@@ -1430,28 +1421,28 @@
 else{
 #line 83 "cwebdir/ctang-w2c.ch"
 overflow(_("output files"));
-#line 510 "cwebdir/ctangle.w"
+#line 507 "cwebdir/ctangle.w"
 }
 }
 }
 
 /*:47*/
-#line 1098 "cwebdir/ctangle.w"
+#line 1093 "cwebdir/ctangle.w"
 
 return section_name;
 }
 
 /*:77*/
-#line 1056 "cwebdir/ctangle.w"
+#line 1051 "cwebdir/ctangle.w"
 
 case string:/*81:*/
-#line 1156 "cwebdir/ctangle.w"
+#line 1151 "cwebdir/ctangle.w"
 {
 id_first= loc++;*(limit+1)= '@';*(limit+2)= '>';
 while(*loc!='@'||*(loc+1)!='>')loc++;
 #line 243 "cwebdir/ctang-w2c.ch"
 if(loc>=limit)err_print(_("! Verbatim string didn't end"));
-#line 1160 "cwebdir/ctangle.w"
+#line 1155 "cwebdir/ctangle.w"
 
 id_loc= loc;loc+= 2;
 return string;
@@ -1458,10 +1449,10 @@
 }
 
 /*:81*/
-#line 1057 "cwebdir/ctangle.w"
+#line 1052 "cwebdir/ctangle.w"
 
 case ord:/*76:*/
-#line 1069 "cwebdir/ctangle.w"
+#line 1064 "cwebdir/ctangle.w"
 
 id_first= loc;
 if(*loc=='\\'){
@@ -1472,7 +1463,7 @@
 if(*(loc+1)!='@')
 #line 207 "cwebdir/ctang-w2c.ch"
 err_print(_("! Double @ should be used in ASCII constant"));
-#line 1078 "cwebdir/ctangle.w"
+#line 1073 "cwebdir/ctangle.w"
 
 else loc++;
 }
@@ -1480,7 +1471,7 @@
 if(loc> limit){
 #line 213 "cwebdir/ctang-w2c.ch"
 err_print(_("! String didn't end"));loc= limit-1;break;
-#line 1084 "cwebdir/ctangle.w"
+#line 1079 "cwebdir/ctangle.w"
 
 }
 }
@@ -1488,7 +1479,7 @@
 return ord;
 
 /*:76*/
-#line 1058 "cwebdir/ctangle.w"
+#line 1053 "cwebdir/ctangle.w"
 
 default:return c;
 }
@@ -1495,7 +1486,7 @@
 }
 
 /*:75*/
-#line 919 "cwebdir/ctangle.w"
+#line 912 "cwebdir/ctangle.w"
 
 else if(xisspace(c)){
 if(!preprocessing||loc> limit)continue;
@@ -1504,7 +1495,7 @@
 }
 else if(c=='#'&&loc==buffer+1)preprocessing= 1;
 mistake:/*71:*/
-#line 940 "cwebdir/ctangle.w"
+#line 935 "cwebdir/ctangle.w"
 
 switch(c){
 case'+':if(*loc=='+')compress(plus_plus);break;
@@ -1528,14 +1519,14 @@
 }
 
 /*:71*/
-#line 926 "cwebdir/ctangle.w"
+#line 919 "cwebdir/ctangle.w"
 
 return c;
 }
 }
 
-/*:70*//*84:*/
-#line 1194 "cwebdir/ctangle.w"
+/*:69*//*83:*/
+#line 1186 "cwebdir/ctangle.w"
 
 static void
 scan_repl(
@@ -1543,7 +1534,7 @@
 {
 sixteen_bits a;
 if(t==section_name){/*85:*/
-#line 1220 "cwebdir/ctangle.w"
+#line 1214 "cwebdir/ctangle.w"
 
 store_two_bytes(0150000);
 if(changing&&include_depth==change_depth){
@@ -1558,11 +1549,11 @@
 app_repl(a_l%0400);}
 
 /*:85*/
-#line 1200 "cwebdir/ctangle.w"
+#line 1192 "cwebdir/ctangle.w"
 }
 while(true)switch(a= get_next()){
 /*86:*/
-#line 1233 "cwebdir/ctangle.w"
+#line 1227 "cwebdir/ctangle.w"
 
 case identifier:a= id_lookup(id_first,id_loc,0)-name_dir;
 app_repl((a/0400)+0200);
@@ -1570,7 +1561,7 @@
 case section_name:if(t!=section_name)goto done;
 else{
 /*87:*/
-#line 1266 "cwebdir/ctangle.w"
+#line 1260 "cwebdir/ctangle.w"
 {
 char*try_loc= loc;
 while(*try_loc==' '&&try_loc<limit)try_loc++;
@@ -1578,7 +1569,7 @@
 while(*try_loc==' '&&try_loc<limit)try_loc++;
 #line 273 "cwebdir/ctang-w2c.ch"
 if(*try_loc=='=')err_print(_("! Missing `@ ' before a named section"));
-#line 1272 "cwebdir/ctangle.w"
+#line 1266 "cwebdir/ctangle.w"
 
 
 
@@ -1585,13 +1576,13 @@
 }
 
 /*:87*/
-#line 1239 "cwebdir/ctangle.w"
+#line 1233 "cwebdir/ctangle.w"
 
 a= cur_section_name-name_dir;
 app_repl((a/0400)+0250);
 app_repl(a%0400);
 /*85:*/
-#line 1220 "cwebdir/ctangle.w"
+#line 1214 "cwebdir/ctangle.w"
 
 store_two_bytes(0150000);
 if(changing&&include_depth==change_depth){
@@ -1606,12 +1597,12 @@
 app_repl(a_l%0400);}
 
 /*:85*/
-#line 1243 "cwebdir/ctangle.w"
+#line 1237 "cwebdir/ctangle.w"
 break;
 }
 #line 261 "cwebdir/ctang-w2c.ch"
 case output_defs_code:if(t!=section_name)err_print(_("! Misplaced @h"));
-#line 1246 "cwebdir/ctangle.w"
+#line 1240 "cwebdir/ctangle.w"
 
 else{
 output_defs_seen= true;
@@ -1619,7 +1610,7 @@
 app_repl((a/0400)+0200);
 app_repl(a%0400);
 /*85:*/
-#line 1220 "cwebdir/ctangle.w"
+#line 1214 "cwebdir/ctangle.w"
 
 store_two_bytes(0150000);
 if(changing&&include_depth==change_depth){
@@ -1634,13 +1625,13 @@
 app_repl(a_l%0400);}
 
 /*:85*/
-#line 1252 "cwebdir/ctangle.w"
+#line 1246 "cwebdir/ctangle.w"
 
 }
 break;
 case constant:case string:
 /*88:*/
-#line 1277 "cwebdir/ctangle.w"
+#line 1271 "cwebdir/ctangle.w"
 
 app_repl(a);
 while(id_first<id_loc){
@@ -1648,7 +1639,7 @@
 if(*(id_first+1)=='@')id_first++;
 #line 279 "cwebdir/ctang-w2c.ch"
 else err_print(_("! Double @ should be used in string"));
-#line 1283 "cwebdir/ctangle.w"
+#line 1277 "cwebdir/ctangle.w"
 
 }
 app_repl(*id_first++);
@@ -1656,11 +1647,11 @@
 app_repl(a);break;
 
 /*:88*/
-#line 1256 "cwebdir/ctangle.w"
+#line 1250 "cwebdir/ctangle.w"
 
 case ord:
 /*89:*/
-#line 1293 "cwebdir/ctangle.w"
+#line 1287 "cwebdir/ctangle.w"
 {
 int c= (eight_bits)*id_first;
 if(c=='\\'){
@@ -1699,7 +1690,7 @@
 case'\"':c= '\"';break;
 #line 285 "cwebdir/ctang-w2c.ch"
 default:err_print(_("! Unrecognized escape sequence"));
-#line 1330 "cwebdir/ctangle.w"
+#line 1324 "cwebdir/ctangle.w"
 
 }
 }
@@ -1713,19 +1704,19 @@
 break;
 
 /*:89*/
-#line 1258 "cwebdir/ctangle.w"
+#line 1252 "cwebdir/ctangle.w"
 
 case definition:case format_code:case begin_C:if(t!=section_name)goto done;
 else{
 #line 267 "cwebdir/ctang-w2c.ch"
 err_print(_("! @d, @f and @c are ignored in C text"));continue;
-#line 1262 "cwebdir/ctangle.w"
+#line 1256 "cwebdir/ctangle.w"
 
 }
 case new_section:goto done;
 
 /*:86*/
-#line 1205 "cwebdir/ctangle.w"
+#line 1197 "cwebdir/ctangle.w"
 
 case')':app_repl(a);
 if(t==macro)app_repl(' ');
@@ -1735,12 +1726,12 @@
 done:next_control= (eight_bits)a;
 #line 255 "cwebdir/ctang-w2c.ch"
 if(text_ptr> text_info_end)overflow(_("text"));
-#line 1213 "cwebdir/ctangle.w"
+#line 1205 "cwebdir/ctangle.w"
 cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr;
 }
 
-/*:84*//*91:*/
-#line 1355 "cwebdir/ctangle.w"
+/*:83*//*90:*/
+#line 1346 "cwebdir/ctangle.w"
 
 static void
 scan_section(void)
@@ -1755,7 +1746,7 @@
 next_control= 0;
 while(true){
 /*92:*/
-#line 1394 "cwebdir/ctangle.w"
+#line 1387 "cwebdir/ctangle.w"
 
 while(next_control<definition)
 
@@ -1764,17 +1755,17 @@
 }
 
 /*:92*/
-#line 1369 "cwebdir/ctangle.w"
+#line 1360 "cwebdir/ctangle.w"
 
 if(next_control==definition){
 /*93:*/
-#line 1401 "cwebdir/ctangle.w"
+#line 1394 "cwebdir/ctangle.w"
 {
 while((next_control= get_next())=='\n');
 if(next_control!=identifier){
 #line 291 "cwebdir/ctang-w2c.ch"
 err_print(_("! Definition flushed, must start with identifier"));
-#line 1405 "cwebdir/ctangle.w"
+#line 1398 "cwebdir/ctangle.w"
 
 continue;
 }
@@ -1789,7 +1780,7 @@
 }
 
 /*:93*/
-#line 1371 "cwebdir/ctangle.w"
+#line 1362 "cwebdir/ctangle.w"
 
 continue;
 }
@@ -1799,7 +1790,7 @@
 if(next_control==section_name){
 p= cur_section_name;
 /*94:*/
-#line 1426 "cwebdir/ctangle.w"
+#line 1419 "cwebdir/ctangle.w"
 
 while((next_control= get_next())=='+');
 if(next_control!='='&&next_control!=eq_eq)
@@ -1806,7 +1797,7 @@
 continue;
 
 /*:94*/
-#line 1379 "cwebdir/ctangle.w"
+#line 1370 "cwebdir/ctangle.w"
 
 break;
 }
@@ -1814,20 +1805,20 @@
 }
 no_where= print_where= false;
 /*95:*/
-#line 1431 "cwebdir/ctangle.w"
+#line 1424 "cwebdir/ctangle.w"
 
 /*96:*/
-#line 1436 "cwebdir/ctangle.w"
+#line 1429 "cwebdir/ctangle.w"
 
 store_two_bytes((sixteen_bits)(0150000+section_count));
 
 
 /*:96*/
-#line 1432 "cwebdir/ctangle.w"
+#line 1425 "cwebdir/ctangle.w"
 
 scan_repl(section_name);
 /*97:*/
-#line 1440 "cwebdir/ctangle.w"
+#line 1433 "cwebdir/ctangle.w"
 
 if(p==name_dir||p==0){
 (last_unnamed)->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1844,16 +1835,16 @@
 
 
 /*:97*/
-#line 1434 "cwebdir/ctangle.w"
+#line 1427 "cwebdir/ctangle.w"
 
 
 /*:95*/
-#line 1385 "cwebdir/ctangle.w"
+#line 1376 "cwebdir/ctangle.w"
 
 }
 
-/*:91*//*99:*/
-#line 1458 "cwebdir/ctangle.w"
+/*:90*//*98:*/
+#line 1448 "cwebdir/ctangle.w"
 
 static void
 phase_one(void){
@@ -1866,8 +1857,8 @@
 phase= 2;
 }
 
-/*:99*//*101:*/
-#line 1476 "cwebdir/ctangle.w"
+/*:98*//*100:*/
+#line 1465 "cwebdir/ctangle.w"
 
 static void
 skip_limbo(void)
@@ -1882,7 +1873,7 @@
 if(ccode[(eight_bits)c]==new_section)break;
 switch(ccode[(eight_bits)c]){
 case translit_code:/*102:*/
-#line 1505 "cwebdir/ctangle.w"
+#line 1496 "cwebdir/ctangle.w"
 
 while(xisspace(*loc)&&loc<limit)loc++;
 loc+= 3;
@@ -1890,7 +1881,7 @@
 ||(*(loc-3)>='0'&&*(loc-3)<='7')||!xisspace(*(loc-1)))
 #line 309 "cwebdir/ctang-w2c.ch"
 err_print(_("! Improper hex number following @l"));
-#line 1511 "cwebdir/ctangle.w"
+#line 1502 "cwebdir/ctangle.w"
 
 else{
 unsigned int i;
@@ -1902,7 +1893,7 @@
 if(loc-beg>=translit_length)
 #line 315 "cwebdir/ctang-w2c.ch"
 err_print(_("! Replacement string in @l too long"));
-#line 1521 "cwebdir/ctangle.w"
+#line 1512 "cwebdir/ctangle.w"
 
 else{
 strncpy(translit[i-0200],beg,(size_t)(loc-beg));
@@ -1911,7 +1902,7 @@
 }
 
 /*:102*/
-#line 1489 "cwebdir/ctangle.w"
+#line 1478 "cwebdir/ctangle.w"
 break;
 case format_code:case'@':break;
 case control_text:if(c=='q'||c=='Q'){
@@ -1919,13 +1910,13 @@
 if(*(loc-1)!='>')
 #line 297 "cwebdir/ctang-w2c.ch"
 err_print(_("! Double @ should be used in control text"));
-#line 1495 "cwebdir/ctangle.w"
+#line 1484 "cwebdir/ctangle.w"
 
 break;
 }
 #line 303 "cwebdir/ctang-w2c.ch"
 default:err_print(_("! Double @ should be used in limbo"));
-#line 1499 "cwebdir/ctangle.w"
+#line 1488 "cwebdir/ctangle.w"
 
 }
 }
@@ -1932,8 +1923,8 @@
 }
 }
 
-/*:101*//*103:*/
-#line 1531 "cwebdir/ctangle.w"
+/*:100*//*103:*/
+#line 1522 "cwebdir/ctangle.w"
 
 void
 print_stats(void){
@@ -1946,7 +1937,7 @@
 printf(_("%ld bytes (out of %ld)\n"),
 (ptrdiff_t)(byte_ptr-byte_mem),(long)max_bytes);
 printf(_("%ld tokens (out of %ld)\n"),
-#line 1542 "cwebdir/ctangle.w"
+#line 1533 "cwebdir/ctangle.w"
 (ptrdiff_t)(tok_ptr-tok_mem),(long)max_toks);
 }
 

Modified: trunk/Build/source/texk/web2c/cwebboot.cin
===================================================================
--- trunk/Build/source/texk/web2c/cwebboot.cin	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebboot.cin	2021-02-24 18:19:47 UTC (rev 57874)
@@ -290,10 +290,11 @@
 
 /*:18*//*19:*/
 #line 92 "cwebdir/common.w"
+
 int phase;
 
 /*:19*//*21:*/
-#line 129 "cwebdir/common.w"
+#line 130 "cwebdir/common.w"
 
 char section_text[longest_name+1];
 char*section_text_end= section_text+longest_name;
@@ -301,7 +302,7 @@
 char*id_loc;
 
 /*:21*//*22:*/
-#line 149 "cwebdir/common.w"
+#line 150 "cwebdir/common.w"
 
 char buffer[long_buf_size];
 char*buffer_end= buffer+buf_size-2;
@@ -332,7 +333,7 @@
 static char*change_limit;
 
 /*:26*//*37:*/
-#line 401 "cwebdir/common.w"
+#line 399 "cwebdir/common.w"
 
 sixteen_bits section_count;
 boolean changed_section[max_sections];
@@ -341,7 +342,7 @@
 boolean print_where= false;
 
 /*:37*//*43:*/
-#line 598 "cwebdir/common.w"
+#line 596 "cwebdir/common.w"
 
 char byte_mem[max_bytes];
 char*byte_mem_end= byte_mem+max_bytes-1;
@@ -349,13 +350,13 @@
 name_pointer name_dir_end= name_dir+max_names-1;
 
 /*:43*//*44:*/
-#line 609 "cwebdir/common.w"
+#line 607 "cwebdir/common.w"
 
 char*byte_ptr;
 name_pointer name_ptr;
 
 /*:44*//*46:*/
-#line 629 "cwebdir/common.w"
+#line 627 "cwebdir/common.w"
 
 name_pointer hash[hash_size];
 hash_pointer hash_end= hash+hash_size-1;
@@ -362,12 +363,12 @@
 hash_pointer h;
 
 /*:46*//*65:*/
-#line 1017 "cwebdir/common.w"
+#line 1014 "cwebdir/common.w"
 
 int history= spotless;
 
 /*:65*//*73:*/
-#line 1138 "cwebdir/common.w"
+#line 1135 "cwebdir/common.w"
 
 int argc;
 char**argv;
@@ -377,11 +378,11 @@
 #line 431 "cwebdir/comm-w2c.ch"
 char scn_file_name[max_file_name_length];
 char check_file_name[max_file_name_length];
-#line 1145 "cwebdir/common.w"
+#line 1142 "cwebdir/common.w"
 boolean flags[128];
 
 /*:73*//*83:*/
-#line 1286 "cwebdir/common.w"
+#line 1282 "cwebdir/common.w"
 
 FILE*C_file;
 FILE*tex_file;
@@ -392,7 +393,7 @@
 #line 576 "cwebdir/comm-w2c.ch"
 FILE*active_file;
 char*found_filename;
-#line 1292 "cwebdir/common.w"
+#line 1288 "cwebdir/common.w"
 
 #line 593 "cwebdir/comm-w2c.ch"
 /*:83*//*86:*/
@@ -449,39 +450,35 @@
 extern void print_stats(void);
 extern void cb_show_banner(void);
 
-/*:15*//*23:*/
-#line 159 "cwebdir/common.w"
-
+/*:15*//*24:*/
+#line 180 "cwebdir/common.w"
 static boolean input_ln(FILE*);
 
-/*:23*//*27:*/
-#line 231 "cwebdir/common.w"
-
+/*:24*//*28:*/
+#line 241 "cwebdir/common.w"
 static void prime_the_change_buffer(void);
 
-/*:27*//*32:*/
-#line 303 "cwebdir/common.w"
-
+/*:28*//*33:*/
+#line 340 "cwebdir/common.w"
 static void check_change(void);
 
-/*:32*//*55:*/
-#line 776 "cwebdir/common.w"
+/*:33*//*55:*/
+#line 774 "cwebdir/common.w"
 
 static int web_strcmp(char*,int,char*,int);
 static name_pointer add_section_name(name_pointer,int,char*,char*,int);
 static void extend_section_name(name_pointer,char*,char*,int);
 
-/*:55*//*63:*/
-#line 972 "cwebdir/common.w"
-
+/*:55*//*64:*/
+#line 1002 "cwebdir/common.w"
 static int section_name_cmp(char**,int,name_pointer);
 
-/*:63*//*75:*/
-#line 1170 "cwebdir/common.w"
-
+/*:64*//*76:*/
+#line 1197 "cwebdir/common.w"
 static void scan_args(void);
 
-/*:75*//*96:*/
+#line 496 "cwebdir/comm-w2c.ch"
+/*:76*//*96:*/
 #line 808 "cwebdir/comm-w2c.ch"
 
 static void cb_usage(const_string str);
@@ -492,7 +489,7 @@
 
 
 /*:1*//*20:*/
-#line 98 "cwebdir/common.w"
+#line 99 "cwebdir/common.w"
 
 void
 common_init(void)
@@ -499,7 +496,7 @@
 {
 #line 78 "cwebdir/comm-w2c.ch"
 /*45:*/
-#line 613 "cwebdir/common.w"
+#line 611 "cwebdir/common.w"
 
 name_dir->byte_start= byte_ptr= byte_mem;
 name_ptr= name_dir+1;
@@ -507,7 +504,7 @@
 root= NULL;
 
 /*:45*//*47:*/
-#line 636 "cwebdir/common.w"
+#line 634 "cwebdir/common.w"
 
 for(h= hash;h<=hash_end;*h++= NULL);
 
@@ -543,18 +540,18 @@
 #line 85 "cwebdir/comm-w2c.ch"
 
 /*74:*/
-#line 1151 "cwebdir/common.w"
+#line 1148 "cwebdir/common.w"
 
 #line 438 "cwebdir/comm-w2c.ch"
 make_xrefs= true;
 temporary_output= true;
-#line 1153 "cwebdir/common.w"
+#line 1150 "cwebdir/common.w"
 show_stats= false;
 
 /*:74*/
 #line 86 "cwebdir/comm-w2c.ch"
 
-#line 104 "cwebdir/common.w"
+#line 105 "cwebdir/common.w"
 /*84:*/
 #line 593 "cwebdir/comm-w2c.ch"
 
@@ -587,16 +584,16 @@
 if((tex_file= fopen(check_file_name,"wb"))==NULL)
 fatal(_("! Cannot open output file "),check_file_name);
 }
-#line 1304 "cwebdir/common.w"
+#line 1300 "cwebdir/common.w"
 
 #line 628 "cwebdir/comm-w2c.ch"
 /*:84*/
-#line 104 "cwebdir/common.w"
+#line 105 "cwebdir/common.w"
 
 }
 
-/*:20*//*24:*/
-#line 162 "cwebdir/common.w"
+/*:20*//*23:*/
+#line 160 "cwebdir/common.w"
 
 static boolean input_ln(
 FILE*fp)
@@ -608,12 +605,12 @@
 while(k<=buffer_end&&(c= getc(fp))!=EOF&&c!='\n')
 #line 92 "cwebdir/comm-w2c.ch"
 if((*(k++)= c)!=' '&&c!='\r')limit= k;
-#line 172 "cwebdir/common.w"
+#line 170 "cwebdir/common.w"
 if(k> buffer_end)
 if((c= getc(fp))!=EOF&&c!='\n'){
 #line 98 "cwebdir/comm-w2c.ch"
 ungetc(c,fp);loc= buffer;err_print(_("! Input line too long"));
-#line 175 "cwebdir/common.w"
+#line 173 "cwebdir/common.w"
 
 }
 if(c==EOF&&limit==buffer)return false;
@@ -621,8 +618,8 @@
 return true;
 }
 
-/*:24*//*28:*/
-#line 234 "cwebdir/common.w"
+/*:23*//*27:*/
+#line 231 "cwebdir/common.w"
 
 static void
 prime_the_change_buffer(void)
@@ -629,7 +626,7 @@
 {
 change_limit= change_buffer;
 /*29:*/
-#line 248 "cwebdir/common.w"
+#line 247 "cwebdir/common.w"
 
 while(true){
 change_line++;
@@ -642,16 +639,16 @@
 loc= buffer+2;
 #line 109 "cwebdir/comm-w2c.ch"
 err_print(_("! Missing @x in change file"));
-#line 259 "cwebdir/common.w"
+#line 258 "cwebdir/common.w"
 
 }
 }
 
 /*:29*/
-#line 239 "cwebdir/common.w"
+#line 236 "cwebdir/common.w"
 
 /*30:*/
-#line 265 "cwebdir/common.w"
+#line 264 "cwebdir/common.w"
 
 do{
 change_line++;
@@ -658,7 +655,7 @@
 if(!input_ln(change_file)){
 #line 115 "cwebdir/comm-w2c.ch"
 err_print(_("! Change file ended after @x"));
-#line 270 "cwebdir/common.w"
+#line 269 "cwebdir/common.w"
 
 return;
 }
@@ -665,10 +662,10 @@
 }while(limit==buffer);
 
 /*:30*/
-#line 240 "cwebdir/common.w"
+#line 237 "cwebdir/common.w"
 
 /*31:*/
-#line 275 "cwebdir/common.w"
+#line 274 "cwebdir/common.w"
 
 {
 change_limit= change_buffer+(ptrdiff_t)(limit-buffer);
@@ -676,12 +673,12 @@
 }
 
 /*:31*/
-#line 241 "cwebdir/common.w"
+#line 238 "cwebdir/common.w"
 
 }
 
-/*:28*//*33:*/
-#line 306 "cwebdir/common.w"
+/*:27*//*32:*/
+#line 302 "cwebdir/common.w"
 
 static void
 check_change(void)
@@ -698,7 +695,7 @@
 if(!input_ln(change_file)){
 #line 121 "cwebdir/comm-w2c.ch"
 err_print(_("! Change file ended before @y"));
-#line 321 "cwebdir/common.w"
+#line 317 "cwebdir/common.w"
 
 change_limit= change_buffer;changing= false;
 return;
@@ -706,12 +703,12 @@
 if(limit> buffer+1&&buffer[0]=='@'){
 char xyz_code= xisupper(buffer[1])?tolower((eight_bits)buffer[1]):buffer[1];
 /*34:*/
-#line 344 "cwebdir/common.w"
+#line 342 "cwebdir/common.w"
 
 if(xyz_code=='x'||xyz_code=='z'){
 #line 133 "cwebdir/comm-w2c.ch"
 loc= buffer+2;err_print(_("! Where is the matching @y?"));
-#line 347 "cwebdir/common.w"
+#line 345 "cwebdir/common.w"
 
 }
 else if(xyz_code=='y'){
@@ -720,7 +717,7 @@
 printf("\n! Hmm... %d ",n);
 #line 139 "cwebdir/comm-w2c.ch"
 err_print(_("of the preceding lines failed to match"));
-#line 354 "cwebdir/common.w"
+#line 352 "cwebdir/common.w"
 
 }
 change_depth= include_depth;
@@ -728,11 +725,11 @@
 }
 
 /*:34*/
-#line 328 "cwebdir/common.w"
+#line 324 "cwebdir/common.w"
 
 }
 /*31:*/
-#line 275 "cwebdir/common.w"
+#line 274 "cwebdir/common.w"
 
 {
 change_limit= change_buffer+(ptrdiff_t)(limit-buffer);
@@ -740,7 +737,7 @@
 }
 
 /*:31*/
-#line 330 "cwebdir/common.w"
+#line 326 "cwebdir/common.w"
 
 changing= false;cur_line++;
 while(!input_ln(cur_file)){
@@ -747,7 +744,7 @@
 if(include_depth==0){
 #line 127 "cwebdir/comm-w2c.ch"
 err_print(_("! CWEB file ended during a change"));
-#line 335 "cwebdir/common.w"
+#line 331 "cwebdir/common.w"
 
 input_has_ended= true;return;
 }
@@ -757,8 +754,8 @@
 }
 }
 
-/*:33*//*35:*/
-#line 364 "cwebdir/common.w"
+/*:32*//*35:*/
+#line 362 "cwebdir/common.w"
 
 void
 reset_input(void)
@@ -765,7 +762,7 @@
 {
 limit= buffer;loc= buffer+1;buffer[0]= ' ';
 /*36:*/
-#line 379 "cwebdir/common.w"
+#line 377 "cwebdir/common.w"
 
 #line 149 "cwebdir/comm-w2c.ch"
 if((found_filename= kpse_find_cweb(web_file_name))==NULL||
@@ -778,7 +775,7 @@
 ((strncmp(found_filename,"./",2)==0)?2:0));
 free(found_filename);
 }else fatal(_("! Filename too long\n"),found_filename);
-#line 385 "cwebdir/common.w"
+#line 383 "cwebdir/common.w"
 
 
 web_file_open= true;
@@ -793,10 +790,10 @@
 ((strncmp(found_filename,"./",2)==0)?2:0));
 free(found_filename);
 }else fatal(_("! Filename too long\n"),found_filename);
-#line 390 "cwebdir/common.w"
+#line 388 "cwebdir/common.w"
 
 /*:36*/
-#line 369 "cwebdir/common.w"
+#line 367 "cwebdir/common.w"
 
 include_depth= 0;cur_line= 0;change_line= 0;
 change_depth= include_depth;
@@ -805,7 +802,7 @@
 }
 
 /*:35*//*38:*/
-#line 408 "cwebdir/common.w"
+#line 406 "cwebdir/common.w"
 
 boolean get_line(void)
 {
@@ -812,13 +809,13 @@
 restart:
 if(changing&&include_depth==change_depth)
 /*41:*/
-#line 516 "cwebdir/common.w"
+#line 514 "cwebdir/common.w"
 {
 change_line++;
 if(!input_ln(change_file)){
 #line 274 "cwebdir/comm-w2c.ch"
 err_print(_("! Change file ended without @z"));
-#line 520 "cwebdir/common.w"
+#line 518 "cwebdir/common.w"
 
 buffer[0]= '@';buffer[1]= 'z';limit= buffer+2;
 }
@@ -836,7 +833,7 @@
 loc= buffer+2;
 #line 280 "cwebdir/comm-w2c.ch"
 err_print(_("! Where is the matching @z?"));
-#line 536 "cwebdir/common.w"
+#line 534 "cwebdir/common.w"
 
 }
 else if(buffer[1]=='z'){
@@ -847,11 +844,11 @@
 }
 
 /*:41*/
-#line 413 "cwebdir/common.w"
+#line 411 "cwebdir/common.w"
 
 if(!changing||include_depth> change_depth){
 /*40:*/
-#line 499 "cwebdir/common.w"
+#line 497 "cwebdir/common.w"
 {
 cur_line++;
 while(!input_ln(cur_file)){
@@ -870,7 +867,7 @@
 }
 
 /*:40*/
-#line 415 "cwebdir/common.w"
+#line 413 "cwebdir/common.w"
 
 if(changing&&include_depth==change_depth)goto restart;
 }
@@ -882,7 +879,7 @@
 if(loc>=limit){
 #line 180 "cwebdir/comm-w2c.ch"
 err_print(_("! Include file name not given"));
-#line 425 "cwebdir/common.w"
+#line 423 "cwebdir/common.w"
 
 goto restart;
 }
@@ -889,18 +886,18 @@
 if(include_depth>=max_include_depth-1){
 #line 186 "cwebdir/comm-w2c.ch"
 err_print(_("! Too many nested includes"));
-#line 430 "cwebdir/common.w"
+#line 428 "cwebdir/common.w"
 
 goto restart;
 }
 include_depth++;
 /*39:*/
-#line 453 "cwebdir/common.w"
+#line 451 "cwebdir/common.w"
 {
 #line 223 "cwebdir/comm-w2c.ch"
 char*cur_file_name_end= cur_file_name+max_file_name_length-1;
 char*k= cur_file_name;
-#line 458 "cwebdir/common.w"
+#line 456 "cwebdir/common.w"
 
 if(*loc=='"'){
 loc++;
@@ -921,17 +918,17 @@
 ((strncmp(found_filename,"./",2)==0)?2:0));
 free(found_filename);
 }else fatal(_("! Filename too long\n"),found_filename);
-#line 469 "cwebdir/common.w"
+#line 467 "cwebdir/common.w"
 cur_line= 0;print_where= true;
 goto restart;
 }
 #line 268 "cwebdir/comm-w2c.ch"
 include_depth--;err_print(_("! Cannot open include file"));goto restart;
-#line 497 "cwebdir/common.w"
+#line 495 "cwebdir/common.w"
 }
 
 /*:39*/
-#line 434 "cwebdir/common.w"
+#line 432 "cwebdir/common.w"
 
 }
 return true;
@@ -939,7 +936,7 @@
 
 #line 201 "cwebdir/comm-w2c.ch"
 /*:38*//*42:*/
-#line 548 "cwebdir/common.w"
+#line 546 "cwebdir/common.w"
 
 void
 check_complete(void){
@@ -949,13 +946,13 @@
 changing= true;change_depth= include_depth;loc= buffer;
 #line 286 "cwebdir/comm-w2c.ch"
 err_print(_("! Change file entry did not match"));
-#line 556 "cwebdir/common.w"
+#line 554 "cwebdir/common.w"
 
 }
 }
 
 /*:42*//*48:*/
-#line 641 "cwebdir/common.w"
+#line 639 "cwebdir/common.w"
 
 name_pointer
 id_lookup(
@@ -970,7 +967,7 @@
 if(last==NULL)for(last= first;*last!='\0';last++);
 l= (int)(last-first);
 /*49:*/
-#line 664 "cwebdir/common.w"
+#line 662 "cwebdir/common.w"
 
 h= (eight_bits)*i;
 while(++i<last)h= (h+h+(int)((eight_bits)*i))%hash_size;
@@ -977,10 +974,10 @@
 
 
 /*:49*/
-#line 654 "cwebdir/common.w"
+#line 652 "cwebdir/common.w"
 
 /*50:*/
-#line 672 "cwebdir/common.w"
+#line 670 "cwebdir/common.w"
 
 p= hash[h];
 while(p&&!names_match(p,first,l,t))p= p->link;
@@ -990,15 +987,15 @@
 }
 
 /*:50*/
-#line 655 "cwebdir/common.w"
+#line 653 "cwebdir/common.w"
 
 if(p==name_ptr)/*51:*/
-#line 683 "cwebdir/common.w"
+#line 681 "cwebdir/common.w"
 {
 #line 293 "cwebdir/comm-w2c.ch"
 if(byte_ptr+l> byte_mem_end)overflow(_("byte memory"));
 if(name_ptr>=name_dir_end)overflow(_("name"));
-#line 686 "cwebdir/common.w"
+#line 684 "cwebdir/common.w"
 strncpy(byte_ptr,first,l);
 (++name_ptr)->byte_start= byte_ptr+= l;
 init_p(p,t);
@@ -1005,13 +1002,13 @@
 }
 
 /*:51*/
-#line 656 "cwebdir/common.w"
+#line 654 "cwebdir/common.w"
 
 return p;
 }
 
 /*:48*//*52:*/
-#line 715 "cwebdir/common.w"
+#line 713 "cwebdir/common.w"
 
 void
 print_section_name(
@@ -1032,7 +1029,7 @@
 }
 
 /*:52*//*53:*/
-#line 734 "cwebdir/common.w"
+#line 732 "cwebdir/common.w"
 
 void
 sprint_section_name(
@@ -1055,7 +1052,7 @@
 }
 
 /*:53*//*54:*/
-#line 755 "cwebdir/common.w"
+#line 753 "cwebdir/common.w"
 
 void
 print_prefix_name(
@@ -1068,7 +1065,7 @@
 }
 
 /*:54*//*56:*/
-#line 781 "cwebdir/common.w"
+#line 779 "cwebdir/common.w"
 
 static int web_strcmp(
 char*j,
@@ -1086,7 +1083,7 @@
 }
 
 /*:56*//*57:*/
-#line 810 "cwebdir/common.w"
+#line 808 "cwebdir/common.w"
 
 static name_pointer
 add_section_name(
@@ -1102,7 +1099,7 @@
 #line 301 "cwebdir/comm-w2c.ch"
 if(s+name_len> byte_mem_end)overflow(_("byte memory"));
 if(name_ptr+1>=name_dir_end)overflow(_("name"));
-#line 824 "cwebdir/common.w"
+#line 822 "cwebdir/common.w"
 (++name_ptr)->byte_start= byte_ptr= s+name_len;
 if(ispref){
 *(byte_ptr-1)= ' ';
@@ -1119,7 +1116,7 @@
 }
 
 /*:57*//*58:*/
-#line 839 "cwebdir/common.w"
+#line 837 "cwebdir/common.w"
 
 static void
 extend_section_name(
@@ -1133,7 +1130,7 @@
 int name_len= (int)(last-first)+ispref;
 #line 308 "cwebdir/comm-w2c.ch"
 if(name_ptr>=name_dir_end)overflow(_("name"));
-#line 851 "cwebdir/common.w"
+#line 849 "cwebdir/common.w"
 while(q->link!=name_dir)q= q->link;
 q->link= name_ptr;
 s= name_ptr->byte_start;
@@ -1140,7 +1137,7 @@
 name_ptr->link= name_dir;
 #line 314 "cwebdir/comm-w2c.ch"
 if(s+name_len> byte_mem_end)overflow(_("byte memory"));
-#line 856 "cwebdir/common.w"
+#line 854 "cwebdir/common.w"
 (++name_ptr)->byte_start= byte_ptr= s+name_len;
 strncpy(s,first,name_len);
 if(ispref)*(byte_ptr-1)= ' ';
@@ -1147,7 +1144,7 @@
 }
 
 /*:58*//*59:*/
-#line 867 "cwebdir/common.w"
+#line 865 "cwebdir/common.w"
 
 name_pointer
 section_lookup(
@@ -1162,7 +1159,7 @@
 
 int name_len= (int)(last-first)+1;
 /*60:*/
-#line 891 "cwebdir/common.w"
+#line 889 "cwebdir/common.w"
 
 while(p){
 c= web_strcmp(first,name_len,first_chunk(p),prefix_length(p));
@@ -1174,12 +1171,12 @@
 if(r!=NULL){
 #line 320 "cwebdir/comm-w2c.ch"
 fputs(_("\n! Ambiguous prefix: matches <"),stdout);
-#line 901 "cwebdir/common.w"
+#line 899 "cwebdir/common.w"
 
 print_prefix_name(p);
 #line 326 "cwebdir/comm-w2c.ch"
 fputs(_(">\n and <"),stdout);
-#line 904 "cwebdir/common.w"
+#line 902 "cwebdir/common.w"
 print_prefix_name(r);
 err_print(">");
 return name_dir;
@@ -1193,19 +1190,19 @@
 }
 
 /*:60*/
-#line 881 "cwebdir/common.w"
+#line 879 "cwebdir/common.w"
 
 /*61:*/
-#line 916 "cwebdir/common.w"
+#line 914 "cwebdir/common.w"
 
 if(r==NULL)
 return add_section_name(par,c,first,last+1,ispref);
 
 /*:61*/
-#line 882 "cwebdir/common.w"
+#line 880 "cwebdir/common.w"
 
 /*62:*/
-#line 924 "cwebdir/common.w"
+#line 922 "cwebdir/common.w"
 
 switch(section_name_cmp(&first,name_len,r)){
 
@@ -1213,7 +1210,7 @@
 if(!ispref){
 #line 332 "cwebdir/comm-w2c.ch"
 fputs(_("\n! New name is a prefix of <"),stdout);
-#line 930 "cwebdir/common.w"
+#line 928 "cwebdir/common.w"
 
 print_section_name(r);
 err_print(">");
@@ -1227,7 +1224,7 @@
 case bad_extension:
 #line 338 "cwebdir/comm-w2c.ch"
 fputs(_("\n! New name extends <"),stdout);
-#line 942 "cwebdir/common.w"
+#line 940 "cwebdir/common.w"
 
 print_section_name(r);
 err_print(">");
@@ -1235,12 +1232,12 @@
 default:
 #line 344 "cwebdir/comm-w2c.ch"
 fputs(_("\n! Section name incompatible with <"),stdout);
-#line 948 "cwebdir/common.w"
+#line 946 "cwebdir/common.w"
 
 print_prefix_name(r);
 #line 350 "cwebdir/comm-w2c.ch"
 fputs(_(">,\n which abbreviates <"),stdout);
-#line 951 "cwebdir/common.w"
+#line 949 "cwebdir/common.w"
 print_section_name(r);
 err_print(">");
 return r;
@@ -1247,12 +1244,12 @@
 }
 
 /*:62*/
-#line 883 "cwebdir/common.w"
+#line 881 "cwebdir/common.w"
 
 }
 
-/*:59*//*64:*/
-#line 975 "cwebdir/common.w"
+/*:59*//*63:*/
+#line 970 "cwebdir/common.w"
 
 static int section_name_cmp(
 char**pfirst,
@@ -1285,8 +1282,8 @@
 }
 }
 
-/*:64*//*66:*/
-#line 1027 "cwebdir/common.w"
+/*:63*//*66:*/
+#line 1024 "cwebdir/common.w"
 
 void
 err_print(
@@ -1295,7 +1292,7 @@
 char*k,*l;
 printf(*s=='!'?"\n%s":"%s",s);
 if(web_file_open)/*67:*/
-#line 1047 "cwebdir/common.w"
+#line 1044 "cwebdir/common.w"
 
 {if(changing&&include_depth==change_depth)
 #line 358 "cwebdir/comm-w2c.ch"
@@ -1302,7 +1299,7 @@
 printf(_(". (l. %d of change file)\n"),change_line);
 else if(include_depth==0)printf(_(". (l. %d)\n"),cur_line);
 else printf(_(". (l. %d of include file %s)\n"),cur_line,cur_file_name);
-#line 1052 "cwebdir/common.w"
+#line 1049 "cwebdir/common.w"
 l= (loc>=limit?limit:loc);
 if(l> buffer){
 for(k= buffer;k<l;k++)
@@ -1317,13 +1314,13 @@
 }
 
 /*:67*/
-#line 1034 "cwebdir/common.w"
+#line 1031 "cwebdir/common.w"
 
 update_terminal;mark_error;
 }
 
 /*:66*//*68:*/
-#line 1079 "cwebdir/common.w"
+#line 1076 "cwebdir/common.w"
 
 int wrap_up(void){
 if(show_progress)new_line;
@@ -1331,7 +1328,7 @@
 print_stats();
 #line 388 "cwebdir/comm-w2c.ch"
 /*69:*/
-#line 1089 "cwebdir/common.w"
+#line 1086 "cwebdir/common.w"
 
 switch(history){
 #line 412 "cwebdir/comm-w2c.ch"
@@ -1343,7 +1340,7 @@
 puts(_("(Pardon me, but I think I spotted something wrong.)"));break;
 case fatal_message:
 puts(_("(That was a fatal error, my friend.)"));
-#line 1097 "cwebdir/common.w"
+#line 1094 "cwebdir/common.w"
 }
 
 /*:69*/
@@ -1368,11 +1365,11 @@
 case fatal_message:return RETURN_FAIL;
 default:return RETURN_OK;
 }
-#line 1087 "cwebdir/common.w"
+#line 1084 "cwebdir/common.w"
 }
 
 /*:68*//*70:*/
-#line 1105 "cwebdir/common.w"
+#line 1102 "cwebdir/common.w"
 void
 fatal(
 const char*s,const char*t)
@@ -1383,7 +1380,7 @@
 }
 
 /*:70*//*71:*/
-#line 1116 "cwebdir/common.w"
+#line 1113 "cwebdir/common.w"
 void
 overflow(
 const char*t)
@@ -1390,12 +1387,12 @@
 {
 #line 425 "cwebdir/comm-w2c.ch"
 printf(_("\n! Sorry, %s capacity exceeded"),t);fatal("","");
-#line 1121 "cwebdir/common.w"
+#line 1118 "cwebdir/common.w"
 }
 
 
-/*:71*//*76:*/
-#line 1173 "cwebdir/common.w"
+/*:71*//*75:*/
+#line 1167 "cwebdir/common.w"
 
 static void
 scan_args(void)
@@ -1418,7 +1415,7 @@
 strcpy(change_file_name,"/dev/null");
 #endif
 
-#line 1184 "cwebdir/common.w"
+#line 1178 "cwebdir/common.w"
 while(--argc> 0){
 if((**(++argv)=='-'||**argv=='+')&&*(*argv+1))/*80:*/
 #line 510 "cwebdir/comm-w2c.ch"
@@ -1468,7 +1465,7 @@
 
 cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
 
-#line 1279 "cwebdir/common.w"
+#line 1275 "cwebdir/common.w"
 
 #line 563 "cwebdir/comm-w2c.ch"
 /*:81*/
@@ -1481,13 +1478,13 @@
 use_language= ++dot_pos;
 break;
 }else
-#line 1265 "cwebdir/common.w"
+#line 1261 "cwebdir/common.w"
  flags[(eight_bits)*dot_pos]= flag_change;
 }
 
 #line 555 "cwebdir/comm-w2c.ch"
 /*:80*/
-#line 1185 "cwebdir/common.w"
+#line 1179 "cwebdir/common.w"
 
 else{
 s= name_pos= *argv;dot_pos= NULL;
@@ -1499,9 +1496,9 @@
 else s++;
 }
 
-#line 1193 "cwebdir/common.w"
+#line 1187 "cwebdir/common.w"
 if(!found_web)/*77:*/
-#line 1210 "cwebdir/common.w"
+#line 1206 "cwebdir/common.w"
 
 {
 if(s-*argv> max_file_name_length-5)
@@ -1508,11 +1505,11 @@
 /*82:*/
 #line 563 "cwebdir/comm-w2c.ch"
 fatal(_("! Filename too long\n"),*argv);
-#line 1281 "cwebdir/common.w"
+#line 1277 "cwebdir/common.w"
 
 
 /*:82*/
-#line 1213 "cwebdir/common.w"
+#line 1209 "cwebdir/common.w"
 
 if(dot_pos==NULL)
 sprintf(web_file_name,"%s.w",*argv);
@@ -1520,7 +1517,7 @@
 strcpy(web_file_name,*argv);
 *dot_pos= 0;
 }
-#line 1221 "cwebdir/common.w"
+#line 1217 "cwebdir/common.w"
 sprintf(tex_file_name,"%s.tex",name_pos);
 sprintf(idx_file_name,"%s.idx",name_pos);
 sprintf(scn_file_name,"%s.scn",name_pos);
@@ -1529,10 +1526,10 @@
 }
 
 /*:77*/
-#line 1194 "cwebdir/common.w"
+#line 1188 "cwebdir/common.w"
 
 else if(!found_change)/*78:*/
-#line 1228 "cwebdir/common.w"
+#line 1224 "cwebdir/common.w"
 
 {
 if(strcmp(*argv,"-")!=0){
@@ -1540,11 +1537,11 @@
 /*82:*/
 #line 563 "cwebdir/comm-w2c.ch"
 fatal(_("! Filename too long\n"),*argv);
-#line 1281 "cwebdir/common.w"
+#line 1277 "cwebdir/common.w"
 
 
 /*:82*/
-#line 1232 "cwebdir/common.w"
+#line 1228 "cwebdir/common.w"
 
 if(dot_pos==NULL)
 sprintf(change_file_name,"%s.ch",*argv);
@@ -1554,10 +1551,10 @@
 }
 
 /*:78*/
-#line 1195 "cwebdir/common.w"
+#line 1189 "cwebdir/common.w"
 
 else if(!found_out)/*79:*/
-#line 1240 "cwebdir/common.w"
+#line 1236 "cwebdir/common.w"
 
 {
 if(s-*argv> max_file_name_length-5)
@@ -1564,11 +1561,11 @@
 /*82:*/
 #line 563 "cwebdir/comm-w2c.ch"
 fatal(_("! Filename too long\n"),*argv);
-#line 1281 "cwebdir/common.w"
+#line 1277 "cwebdir/common.w"
 
 
 /*:82*/
-#line 1243 "cwebdir/common.w"
+#line 1239 "cwebdir/common.w"
 
 if(dot_pos==NULL){
 sprintf(tex_file_name,"%s.tex",*argv);
@@ -1588,7 +1585,7 @@
 }
 
 /*:79*/
-#line 1196 "cwebdir/common.w"
+#line 1190 "cwebdir/common.w"
 
 else/*81:*/
 #line 555 "cwebdir/comm-w2c.ch"
@@ -1595,11 +1592,11 @@
 
 cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
 
-#line 1279 "cwebdir/common.w"
+#line 1275 "cwebdir/common.w"
 
 #line 563 "cwebdir/comm-w2c.ch"
 /*:81*/
-#line 1197 "cwebdir/common.w"
+#line 1191 "cwebdir/common.w"
 
 }
 }
@@ -1608,16 +1605,15 @@
 
 cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
 
-#line 1279 "cwebdir/common.w"
+#line 1275 "cwebdir/common.w"
 
 #line 563 "cwebdir/comm-w2c.ch"
 /*:81*/
-#line 1200 "cwebdir/common.w"
+#line 1194 "cwebdir/common.w"
 
 }
 
-#line 496 "cwebdir/comm-w2c.ch"
-/*:76*//*97:*/
+/*:75*//*97:*/
 #line 812 "cwebdir/comm-w2c.ch"
 
 static void cb_usage(const_string str)

Modified: trunk/Build/source/texk/web2c/cwebdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ChangeLog	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/ChangeLog	2021-02-24 18:19:47 UTC (rev 57874)
@@ -1,9 +1,22 @@
 2021-02-24  Andreas Scherer  <https://ascherer.github.io>
 
+	* comm-w2c.h,
+	* common.c,
+	* common.h
+	* common.w,
+	* ctangle.c,
+	* ctangle.w,
+	* ctwill-mini.ch,
+	* ctwill-w2c.ch,
+	* cweav-w2c.ch,
 	* cweave.w: Fix spacing for |#include| in TeX comment.
 
 2021-02-24  Andreas Scherer  <https://ascherer.github.io>
 
+	* cweave.w: Fix spacing for |#include| in TeX comment.
+
+2021-02-24  Andreas Scherer  <https://ascherer.github.io>
+
 	* common.w,
 	* ctangle.w,
 	* cweave.w: Fine print for single '@' characters in TeX text.

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h	2021-02-24 18:19:47 UTC (rev 57874)
@@ -186,7 +186,7 @@
 extern void init_p(name_pointer,eight_bits);@/
 extern void print_prefix_name(name_pointer);@/
 extern void print_section_name(name_pointer);@/
-extern void sprint_section_name(char *,name_pointer);@/
+extern void sprint_section_name(char *,name_pointer);
 
 @ Code related to error handling:
 @d spotless 0 /* |history| value for normal jobs */
@@ -244,7 +244,7 @@
 @<Predecl...@>=
 extern void common_init(void);@/
 extern void print_stats(void);@/
-extern void cb_show_banner(void);@/
+extern void cb_show_banner(void);
 
 @ The following parameters were sufficient in the original \.{WEB} to
 handle \TEX/, so they should be sufficient for most applications of

Modified: trunk/Build/source/texk/web2c/cwebdir/common.c
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.c	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/common.c	2021-02-24 18:19:47 UTC (rev 57874)
@@ -232,10 +232,11 @@
 
 /*:18*//*19:*/
 #line 92 "common.w"
+
 int phase;
 
 /*:19*//*21:*/
-#line 129 "common.w"
+#line 130 "common.w"
 
 char section_text[longest_name+1];
 char*section_text_end= section_text+longest_name;
@@ -243,7 +244,7 @@
 char*id_loc;
 
 /*:21*//*22:*/
-#line 149 "common.w"
+#line 150 "common.w"
 
 char buffer[long_buf_size];
 char*buffer_end= buffer+buf_size-2;
@@ -274,7 +275,7 @@
 static char*change_limit;
 
 /*:26*//*37:*/
-#line 401 "common.w"
+#line 399 "common.w"
 
 sixteen_bits section_count;
 boolean changed_section[max_sections];
@@ -283,7 +284,7 @@
 boolean print_where= false;
 
 /*:37*//*43:*/
-#line 598 "common.w"
+#line 596 "common.w"
 
 char byte_mem[max_bytes];
 char*byte_mem_end= byte_mem+max_bytes-1;
@@ -291,13 +292,13 @@
 name_pointer name_dir_end= name_dir+max_names-1;
 
 /*:43*//*44:*/
-#line 609 "common.w"
+#line 607 "common.w"
 
 char*byte_ptr;
 name_pointer name_ptr;
 
 /*:44*//*46:*/
-#line 629 "common.w"
+#line 627 "common.w"
 
 name_pointer hash[hash_size];
 hash_pointer hash_end= hash+hash_size-1;
@@ -304,12 +305,12 @@
 hash_pointer h;
 
 /*:46*//*65:*/
-#line 1017 "common.w"
+#line 1014 "common.w"
 
 int history= spotless;
 
 /*:65*//*73:*/
-#line 1138 "common.w"
+#line 1135 "common.w"
 
 int argc;
 char**argv;
@@ -320,7 +321,7 @@
 boolean flags[128];
 
 /*:73*//*83:*/
-#line 1286 "common.w"
+#line 1282 "common.w"
 
 FILE*C_file;
 FILE*tex_file;
@@ -365,50 +366,45 @@
 extern void common_init(void);
 extern void print_stats(void);
 
-/*:15*//*23:*/
-#line 159 "common.w"
-
+/*:15*//*24:*/
+#line 180 "common.w"
 static boolean input_ln(FILE*);
 
-/*:23*//*27:*/
-#line 231 "common.w"
-
+/*:24*//*28:*/
+#line 241 "common.w"
 static void prime_the_change_buffer(void);
 
-/*:27*//*32:*/
-#line 303 "common.w"
-
+/*:28*//*33:*/
+#line 340 "common.w"
 static void check_change(void);
 
-/*:32*//*55:*/
-#line 776 "common.w"
+/*:33*//*55:*/
+#line 774 "common.w"
 
 static int web_strcmp(char*,int,char*,int);
 static name_pointer add_section_name(name_pointer,int,char*,char*,int);
 static void extend_section_name(name_pointer,char*,char*,int);
 
-/*:55*//*63:*/
-#line 972 "common.w"
-
+/*:55*//*64:*/
+#line 1002 "common.w"
 static int section_name_cmp(char**,int,name_pointer);
 
-/*:63*//*75:*/
-#line 1170 "common.w"
-
+/*:64*//*76:*/
+#line 1197 "common.w"
 static void scan_args(void);
 
-/*:75*/
+/*:76*/
 #line 71 "common.w"
 
 
 /*:1*//*20:*/
-#line 98 "common.w"
+#line 99 "common.w"
 
 void
 common_init(void)
 {
 /*45:*/
-#line 613 "common.w"
+#line 611 "common.w"
 
 name_dir->byte_start= byte_ptr= byte_mem;
 name_ptr= name_dir+1;
@@ -416,24 +412,24 @@
 root= NULL;
 
 /*:45*//*47:*/
-#line 636 "common.w"
+#line 634 "common.w"
 
 for(h= hash;h<=hash_end;*h++= NULL);
 
 /*:47*/
-#line 102 "common.w"
+#line 103 "common.w"
 
 /*74:*/
-#line 1151 "common.w"
+#line 1148 "common.w"
 
 show_banner= show_happiness= show_progress= make_xrefs= true;
 show_stats= false;
 
 /*:74*/
-#line 103 "common.w"
+#line 104 "common.w"
 
 /*84:*/
-#line 1293 "common.w"
+#line 1289 "common.w"
 
 scan_args();
 if(program==ctangle){
@@ -447,12 +443,12 @@
 }
 
 /*:84*/
-#line 104 "common.w"
+#line 105 "common.w"
 
 }
 
-/*:20*//*24:*/
-#line 162 "common.w"
+/*:20*//*23:*/
+#line 160 "common.w"
 
 static boolean input_ln(
 FILE*fp)
@@ -473,8 +469,8 @@
 return true;
 }
 
-/*:24*//*28:*/
-#line 234 "common.w"
+/*:23*//*27:*/
+#line 231 "common.w"
 
 static void
 prime_the_change_buffer(void)
@@ -481,7 +477,7 @@
 {
 change_limit= change_buffer;
 /*29:*/
-#line 248 "common.w"
+#line 247 "common.w"
 
 while(true){
 change_line++;
@@ -498,10 +494,10 @@
 }
 
 /*:29*/
-#line 239 "common.w"
+#line 236 "common.w"
 
 /*30:*/
-#line 265 "common.w"
+#line 264 "common.w"
 
 do{
 change_line++;
@@ -513,10 +509,10 @@
 }while(limit==buffer);
 
 /*:30*/
-#line 240 "common.w"
+#line 237 "common.w"
 
 /*31:*/
-#line 275 "common.w"
+#line 274 "common.w"
 
 {
 change_limit= change_buffer+(ptrdiff_t)(limit-buffer);
@@ -524,12 +520,12 @@
 }
 
 /*:31*/
-#line 241 "common.w"
+#line 238 "common.w"
 
 }
 
-/*:28*//*33:*/
-#line 306 "common.w"
+/*:27*//*32:*/
+#line 302 "common.w"
 
 static void
 check_change(void)
@@ -552,7 +548,7 @@
 if(limit> buffer+1&&buffer[0]=='@'){
 char xyz_code= xisupper(buffer[1])?tolower((eight_bits)buffer[1]):buffer[1];
 /*34:*/
-#line 344 "common.w"
+#line 342 "common.w"
 
 if(xyz_code=='x'||xyz_code=='z'){
 loc= buffer+2;err_print("! Where is the matching @y?");
@@ -570,11 +566,11 @@
 }
 
 /*:34*/
-#line 328 "common.w"
+#line 324 "common.w"
 
 }
 /*31:*/
-#line 275 "common.w"
+#line 274 "common.w"
 
 {
 change_limit= change_buffer+(ptrdiff_t)(limit-buffer);
@@ -582,7 +578,7 @@
 }
 
 /*:31*/
-#line 330 "common.w"
+#line 326 "common.w"
 
 changing= false;cur_line++;
 while(!input_ln(cur_file)){
@@ -597,8 +593,8 @@
 }
 }
 
-/*:33*//*35:*/
-#line 364 "common.w"
+/*:32*//*35:*/
+#line 362 "common.w"
 
 void
 reset_input(void)
@@ -605,7 +601,7 @@
 {
 limit= buffer;loc= buffer+1;buffer[0]= ' ';
 /*36:*/
-#line 379 "common.w"
+#line 377 "common.w"
 
 if((web_file= fopen(web_file_name,"r"))==NULL){
 strcpy(web_file_name,alt_web_file_name);
@@ -619,7 +615,7 @@
 fatal("! Cannot open change file ",change_file_name);
 
 /*:36*/
-#line 369 "common.w"
+#line 367 "common.w"
 
 include_depth= 0;cur_line= 0;change_line= 0;
 change_depth= include_depth;
@@ -628,7 +624,7 @@
 }
 
 /*:35*//*38:*/
-#line 408 "common.w"
+#line 406 "common.w"
 
 boolean get_line(void)
 {
@@ -635,7 +631,7 @@
 restart:
 if(changing&&include_depth==change_depth)
 /*41:*/
-#line 516 "common.w"
+#line 514 "common.w"
 {
 change_line++;
 if(!input_ln(change_file)){
@@ -666,11 +662,11 @@
 }
 
 /*:41*/
-#line 413 "common.w"
+#line 411 "common.w"
 
 if(!changing||include_depth> change_depth){
 /*40:*/
-#line 499 "common.w"
+#line 497 "common.w"
 {
 cur_line++;
 while(!input_ln(cur_file)){
@@ -689,7 +685,7 @@
 }
 
 /*:40*/
-#line 415 "common.w"
+#line 413 "common.w"
 
 if(changing&&include_depth==change_depth)goto restart;
 }
@@ -710,7 +706,7 @@
 }
 include_depth++;
 /*39:*/
-#line 453 "common.w"
+#line 451 "common.w"
 {
 char temp_file_name[max_file_name_length];
 char*cur_file_name_end= cur_file_name+max_file_name_length-1;
@@ -758,7 +754,7 @@
 }
 
 /*:39*/
-#line 434 "common.w"
+#line 432 "common.w"
 
 }
 return true;
@@ -765,7 +761,7 @@
 }
 
 /*:38*//*42:*/
-#line 548 "common.w"
+#line 546 "common.w"
 
 void
 check_complete(void){
@@ -779,7 +775,7 @@
 }
 
 /*:42*//*48:*/
-#line 641 "common.w"
+#line 639 "common.w"
 
 name_pointer
 id_lookup(
@@ -794,7 +790,7 @@
 if(last==NULL)for(last= first;*last!='\0';last++);
 l= (int)(last-first);
 /*49:*/
-#line 664 "common.w"
+#line 662 "common.w"
 
 h= (eight_bits)*i;
 while(++i<last)h= (h+h+(int)((eight_bits)*i))%hash_size;
@@ -801,10 +797,10 @@
 
 
 /*:49*/
-#line 654 "common.w"
+#line 652 "common.w"
 
 /*50:*/
-#line 672 "common.w"
+#line 670 "common.w"
 
 p= hash[h];
 while(p&&!names_match(p,first,l,t))p= p->link;
@@ -814,10 +810,10 @@
 }
 
 /*:50*/
-#line 655 "common.w"
+#line 653 "common.w"
 
 if(p==name_ptr)/*51:*/
-#line 683 "common.w"
+#line 681 "common.w"
 {
 if(byte_ptr+l> byte_mem_end)overflow("byte memory");
 if(name_ptr>=name_dir_end)overflow("name");
@@ -827,13 +823,13 @@
 }
 
 /*:51*/
-#line 656 "common.w"
+#line 654 "common.w"
 
 return p;
 }
 
 /*:48*//*52:*/
-#line 715 "common.w"
+#line 713 "common.w"
 
 void
 print_section_name(
@@ -854,7 +850,7 @@
 }
 
 /*:52*//*53:*/
-#line 734 "common.w"
+#line 732 "common.w"
 
 void
 sprint_section_name(
@@ -877,7 +873,7 @@
 }
 
 /*:53*//*54:*/
-#line 755 "common.w"
+#line 753 "common.w"
 
 void
 print_prefix_name(
@@ -890,7 +886,7 @@
 }
 
 /*:54*//*56:*/
-#line 781 "common.w"
+#line 779 "common.w"
 
 static int web_strcmp(
 char*j,
@@ -908,7 +904,7 @@
 }
 
 /*:56*//*57:*/
-#line 810 "common.w"
+#line 808 "common.w"
 
 static name_pointer
 add_section_name(
@@ -939,7 +935,7 @@
 }
 
 /*:57*//*58:*/
-#line 839 "common.w"
+#line 837 "common.w"
 
 static void
 extend_section_name(
@@ -963,7 +959,7 @@
 }
 
 /*:58*//*59:*/
-#line 867 "common.w"
+#line 865 "common.w"
 
 name_pointer
 section_lookup(
@@ -978,7 +974,7 @@
 
 int name_len= (int)(last-first)+1;
 /*60:*/
-#line 891 "common.w"
+#line 889 "common.w"
 
 while(p){
 c= web_strcmp(first,name_len,first_chunk(p),prefix_length(p));
@@ -1005,19 +1001,19 @@
 }
 
 /*:60*/
-#line 881 "common.w"
+#line 879 "common.w"
 
 /*61:*/
-#line 916 "common.w"
+#line 914 "common.w"
 
 if(r==NULL)
 return add_section_name(par,c,first,last+1,ispref);
 
 /*:61*/
-#line 882 "common.w"
+#line 880 "common.w"
 
 /*62:*/
-#line 924 "common.w"
+#line 922 "common.w"
 
 switch(section_name_cmp(&first,name_len,r)){
 
@@ -1051,12 +1047,12 @@
 }
 
 /*:62*/
-#line 883 "common.w"
+#line 881 "common.w"
 
 }
 
-/*:59*//*64:*/
-#line 975 "common.w"
+/*:59*//*63:*/
+#line 970 "common.w"
 
 static int section_name_cmp(
 char**pfirst,
@@ -1089,8 +1085,8 @@
 }
 }
 
-/*:64*//*66:*/
-#line 1027 "common.w"
+/*:63*//*66:*/
+#line 1024 "common.w"
 
 void
 err_print(
@@ -1099,7 +1095,7 @@
 char*k,*l;
 printf(*s=='!'?"\n%s":"%s",s);
 if(web_file_open)/*67:*/
-#line 1047 "common.w"
+#line 1044 "common.w"
 
 {if(changing&&include_depth==change_depth)
 printf(". (l. %d of change file)\n",change_line);
@@ -1119,13 +1115,13 @@
 }
 
 /*:67*/
-#line 1034 "common.w"
+#line 1031 "common.w"
 
 update_terminal;mark_error;
 }
 
 /*:66*//*68:*/
-#line 1079 "common.w"
+#line 1076 "common.w"
 
 int wrap_up(void){
 if(show_progress)new_line;
@@ -1132,7 +1128,7 @@
 if(show_stats)
 print_stats();
 /*69:*/
-#line 1089 "common.w"
+#line 1086 "common.w"
 
 switch(history){
 case spotless:if(show_happiness)puts("(No errors were found.)");break;
@@ -1144,7 +1140,7 @@
 }
 
 /*:69*/
-#line 1084 "common.w"
+#line 1081 "common.w"
 
 if(history> harmless_message)return EXIT_FAILURE;
 else return EXIT_SUCCESS;
@@ -1151,7 +1147,7 @@
 }
 
 /*:68*//*70:*/
-#line 1105 "common.w"
+#line 1102 "common.w"
 void
 fatal(
 const char*s,const char*t)
@@ -1162,7 +1158,7 @@
 }
 
 /*:70*//*71:*/
-#line 1116 "common.w"
+#line 1113 "common.w"
 void
 overflow(
 const char*t)
@@ -1171,8 +1167,8 @@
 }
 
 
-/*:71*//*76:*/
-#line 1173 "common.w"
+/*:71*//*75:*/
+#line 1167 "common.w"
 
 static void
 scan_args(void)
@@ -1186,7 +1182,7 @@
 strcpy(change_file_name,"/dev/null");
 while(--argc> 0){
 if((**(++argv)=='-'||**argv=='+')&&*(*argv+1))/*80:*/
-#line 1262 "common.w"
+#line 1258 "common.w"
 
 {
 for(dot_pos= *argv+1;*dot_pos> '\0';dot_pos++)
@@ -1194,7 +1190,7 @@
 }
 
 /*:80*/
-#line 1185 "common.w"
+#line 1179 "common.w"
 
 else{
 s= name_pos= *argv;dot_pos= NULL;
@@ -1204,17 +1200,17 @@
 else s++;
 }
 if(!found_web)/*77:*/
-#line 1210 "common.w"
+#line 1206 "common.w"
 
 {
 if(s-*argv> max_file_name_length-5)
 /*82:*/
-#line 1280 "common.w"
+#line 1276 "common.w"
 fatal("! Filename too long\n",*argv);
 
 
 /*:82*/
-#line 1213 "common.w"
+#line 1209 "common.w"
 
 if(dot_pos==NULL)
 sprintf(web_file_name,"%s.w",*argv);
@@ -1231,21 +1227,21 @@
 }
 
 /*:77*/
-#line 1194 "common.w"
+#line 1188 "common.w"
 
 else if(!found_change)/*78:*/
-#line 1228 "common.w"
+#line 1224 "common.w"
 
 {
 if(strcmp(*argv,"-")!=0){
 if(s-*argv> max_file_name_length-4)
 /*82:*/
-#line 1280 "common.w"
+#line 1276 "common.w"
 fatal("! Filename too long\n",*argv);
 
 
 /*:82*/
-#line 1232 "common.w"
+#line 1228 "common.w"
 
 if(dot_pos==NULL)
 sprintf(change_file_name,"%s.ch",*argv);
@@ -1255,20 +1251,20 @@
 }
 
 /*:78*/
-#line 1195 "common.w"
+#line 1189 "common.w"
 
 else if(!found_out)/*79:*/
-#line 1240 "common.w"
+#line 1236 "common.w"
 
 {
 if(s-*argv> max_file_name_length-5)
 /*82:*/
-#line 1280 "common.w"
+#line 1276 "common.w"
 fatal("! Filename too long\n",*argv);
 
 
 /*:82*/
-#line 1243 "common.w"
+#line 1239 "common.w"
 
 if(dot_pos==NULL){
 sprintf(tex_file_name,"%s.tex",*argv);
@@ -1288,10 +1284,10 @@
 }
 
 /*:79*/
-#line 1196 "common.w"
+#line 1190 "common.w"
 
 else/*81:*/
-#line 1268 "common.w"
+#line 1264 "common.w"
 
 {
 if(program==ctangle)
@@ -1305,12 +1301,12 @@
 }
 
 /*:81*/
-#line 1197 "common.w"
+#line 1191 "common.w"
 
 }
 }
 if(!found_web)/*81:*/
-#line 1268 "common.w"
+#line 1264 "common.w"
 
 {
 if(program==ctangle)
@@ -1324,8 +1320,8 @@
 }
 
 /*:81*/
-#line 1200 "common.w"
+#line 1194 "common.w"
 
 }
 
-/*:76*/
+/*:75*/

Modified: trunk/Build/source/texk/web2c/cwebdir/common.h
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.h	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/common.h	2021-02-24 18:19:47 UTC (rev 57874)
@@ -168,7 +168,7 @@
 extern void init_p(name_pointer,eight_bits);@/
 extern void print_prefix_name(name_pointer);@/
 extern void print_section_name(name_pointer);@/
-extern void sprint_section_name(char *,name_pointer);@/
+extern void sprint_section_name(char *,name_pointer);
 
 @ Code related to error handling:
 @d spotless 0 /* |history| value for normal jobs */
@@ -222,7 +222,7 @@
 @ The procedure that gets everything rolling:
 @<Predecl...@>=
 extern void common_init(void);@/
-extern void print_stats(void);@/
+extern void print_stats(void);
 
 @ The following parameters were sufficient in the original \.{WEB} to
 handle \TEX/, so they should be sufficient for most applications of

Modified: trunk/Build/source/texk/web2c/cwebdir/common.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.w	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/common.w	2021-02-24 18:19:47 UTC (rev 57874)
@@ -68,7 +68,7 @@
 @h
 @<Common code for \.{CWEAVE} and \.{CTANGLE}@>@/
 @<Global variables@>@/
-@<Predeclaration of procedures@>@/
+@<Predeclaration of procedures@>
 
 @ The details will be filled in due course.  The interface of this module
 is included first.  It is also used by the main programs.
@@ -89,7 +89,8 @@
 Similarly, \.{CTANGLE} operates in two phases.
 The global variable |phase| tells which phase we are in.
 
-@<Global var...@>= int phase; /* which phase are we in? */
+@<Global var...@>=
+int phase; /* which phase are we in? */
 
 @ There's an initialization procedure that gets both \.{CTANGLE} and
 \.{CWEAVE} off to a good start. We will fill in the details of this
@@ -156,10 +157,7 @@
 support |feof|, |getc|, and |ungetc| you may have to change things here.
 @^system dependencies@>
 
-@<Predecl...@>=
-static boolean input_ln(FILE *);@/
-
-@ @c
+ at c
 static boolean input_ln(@t\1\1@> /* copies a line into |buffer| or returns |false| */
 FILE *fp at t\2\2@>) /* what file to read from */
 {
@@ -179,6 +177,8 @@
   return true;
 }
 
+@ @<Predecl...@>=@+static boolean input_ln(FILE *);
+
 @ Now comes the problem of deciding which file to read from next.
 Recall that the actual text that \.{CWEB} should process comes from two
 streams: a |web_file|, which can contain possibly nested include
@@ -228,10 +228,7 @@
 the change file is exhausted. This procedure is called only when
 |changing| is |true|; hence error messages will be reported correctly.
 
-@<Predecl...@>=
-static void prime_the_change_buffer(void);@/
-
-@ @c
+ at c
 static void
 prime_the_change_buffer(void)
 {
@@ -241,6 +238,8 @@
   @<Move |buffer| and |limit| to |change_buffer| and |change_limit|@>@;
 }
 
+@ @<Predecl...@>=@+static void prime_the_change_buffer(void);
+
 @ While looking for a line that begins with \.{@@x} in the change file, we
 allow lines that begin with \.{@@}, as long as they don't begin with \.{@@y},
 \.{@@z}, or \.{@@i} (which would probably mean that the change file is fouled up).
@@ -300,10 +299,7 @@
   if (*loc=='@@' && (xisspace(*(loc+1)) || *(loc+1)=='*')) change_pending=b;
 }
 
-@<Predecl...@>=
-static void check_change(void);@/
-
-@ @c
+ at c
 static void
 check_change(void) /* switches to |change_file| if the buffers match */
 {
@@ -341,6 +337,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void check_change(void);
+
 @ @<If the current line starts with \.{@@y}...@>=
 if (xyz_code=='x' || xyz_code=='z') {
   loc=buffer+2; err_print("! Where is the matching @@y?");
@@ -776,7 +774,7 @@
 @<Predecl...@>=
 static int web_strcmp(char *,int,char *,int);@/
 static name_pointer add_section_name(name_pointer,int,char *,char *,int);@/
-static void extend_section_name(name_pointer,char *,char *,int);@/
+static void extend_section_name(name_pointer,char *,char *,int);
 
 @ @c
 static int web_strcmp(@t\1\1@> /* fuller comparison than |strcmp| */
@@ -969,10 +967,7 @@
 
 @d bad_extension 5
 
-@<Predec...@>=
-static int section_name_cmp(char **,int,name_pointer);@/
-
-@ @c
+ at c
 static int section_name_cmp(@t\1\1@>
 char **pfirst, /* pointer to beginning of comparison string */
 int len, /* length of string */
@@ -1004,6 +999,8 @@
   }
 }
 
+@ @<Predec...@>=@+static int section_name_cmp(char **,int,name_pointer);
+
 @** Reporting errors to the user.
 A global variable called |history| will contain one of four values
 at the end of every run: |spotless| means that no unusual messages were
@@ -1150,7 +1147,7 @@
 
 @<Set the default options common to \.{CTANGLE} and \.{CWEAVE}@>=
 show_banner=show_happiness=show_progress=make_xrefs=true;@/
-show_stats=false;@/
+show_stats=false;
 
 @ We now must look at the command line arguments and set the file names
 accordingly.  At least one file name must be present: the \.{CWEB}
@@ -1167,10 +1164,7 @@
 
 If there's a third file name, it will be the output file.
 
-@<Pred...@>=
-static void scan_args(void);@/
-
-@ @c
+ at c
 static void
 scan_args(void)
 {
@@ -1200,6 +1194,8 @@
   if (!found_web) @<Print usage error message and quit@>@;
 }
 
+@ @<Pred...@>=@+static void scan_args(void);
+
 @ We use all of |*argv| for the |web_file_name| if there is a |'.'| in it,
 otherwise we add |".w"|. If this file can't be opened, we prepare an
 |alt_web_file_name| by adding |"web"| after the dot.

Modified: trunk/Build/source/texk/web2c/cwebdir/ctangle.c
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctangle.c	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/ctangle.c	2021-02-24 18:19:47 UTC (rev 57874)
@@ -257,7 +257,7 @@
 typedef text*text_pointer;
 
 /*:19*//*31:*/
-#line 270 "ctangle.w"
+#line 269 "ctangle.w"
 
 typedef struct{
 eight_bits*end_field;
@@ -287,7 +287,7 @@
 static text_pointer last_unnamed;
 
 /*:26*//*32:*/
-#line 286 "ctangle.w"
+#line 285 "ctangle.w"
 
 static output_state cur_state;
 
@@ -296,18 +296,18 @@
 static stack_pointer stack_ptr;
 
 /*:32*//*37:*/
-#line 362 "ctangle.w"
+#line 361 "ctangle.w"
 
 static int cur_val;
 
 /*:37*//*42:*/
-#line 454 "ctangle.w"
+#line 452 "ctangle.w"
 
 static eight_bits out_state;
 static boolean protect;
 
 /*:42*//*45:*/
-#line 486 "ctangle.w"
+#line 483 "ctangle.w"
 
 static name_pointer output_files[max_files];
 static name_pointer*cur_out_file,*end_output_files,*an_output_file;
@@ -315,33 +315,33 @@
 static char output_file_name[longest_name+1];
 
 /*:45*//*52:*/
-#line 586 "ctangle.w"
+#line 582 "ctangle.w"
 
 static boolean output_defs_seen= false;
 
 /*:52*//*57:*/
-#line 695 "ctangle.w"
+#line 691 "ctangle.w"
 
 static char translit[128][translit_length];
 
 /*:57*//*62:*/
-#line 774 "ctangle.w"
+#line 770 "ctangle.w"
 
 static eight_bits ccode[256];
 
 /*:62*//*66:*/
-#line 834 "ctangle.w"
+#line 830 "ctangle.w"
 
 static boolean comment_continues= false;
 
 /*:66*//*68:*/
-#line 873 "ctangle.w"
+#line 869 "ctangle.w"
 
 static name_pointer cur_section_name;
 static boolean no_where;
 
 /*:68*//*82:*/
-#line 1187 "ctangle.w"
+#line 1182 "ctangle.w"
 
 static text_pointer cur_text;
 static eight_bits next_control;
@@ -383,70 +383,61 @@
 extern void common_init(void);
 extern void print_stats(void);
 
-/*:16*//*29:*/
-#line 231 "ctangle.w"
-
+/*:16*//*30:*/
+#line 241 "ctangle.w"
 static void store_two_bytes(sixteen_bits);
 
-/*:29*//*34:*/
-#line 310 "ctangle.w"
+/*:30*//*35:*/
+#line 324 "ctangle.w"
 
 static void push_level(name_pointer);
 static void pop_level(boolean);
 
-/*:34*//*38:*/
-#line 369 "ctangle.w"
-
+/*:35*//*39:*/
+#line 397 "ctangle.w"
 static void get_output(void);
 
-/*:38*//*43:*/
-#line 462 "ctangle.w"
-
+/*:39*//*44:*/
+#line 473 "ctangle.w"
 static void flush_buffer(void);
 
-/*:43*//*48:*/
-#line 517 "ctangle.w"
-
+/*:44*//*49:*/
+#line 549 "ctangle.w"
 static void phase_two(void);
 
-/*:48*//*53:*/
-#line 589 "ctangle.w"
+/*:49*//*53:*/
+#line 585 "ctangle.w"
 
 static void output_defs(void);
 static void out_char(eight_bits);
 
-/*:53*//*64:*/
-#line 798 "ctangle.w"
+/*:53*//*65:*/
+#line 810 "ctangle.w"
 
 static eight_bits skip_ahead(void);
 static boolean skip_comment(boolean);
 
-/*:64*//*69:*/
-#line 885 "ctangle.w"
-
+/*:65*//*70:*/
+#line 924 "ctangle.w"
 static eight_bits get_next(void);
 
-/*:69*//*83:*/
-#line 1191 "ctangle.w"
-
+/*:70*//*84:*/
+#line 1208 "ctangle.w"
 static void scan_repl(eight_bits);
 
-/*:83*//*90:*/
-#line 1348 "ctangle.w"
-
+/*:84*//*91:*/
+#line 1379 "ctangle.w"
 static void scan_section(void);
 
-/*:90*//*98:*/
-#line 1455 "ctangle.w"
-
+/*:91*//*99:*/
+#line 1460 "ctangle.w"
 static void phase_one(void);
 
-/*:98*//*100:*/
-#line 1473 "ctangle.w"
-
+/*:99*//*101:*/
+#line 1494 "ctangle.w"
 static void skip_limbo(void);
 
-/*:100*/
+/*:101*/
 #line 72 "ctangle.w"
 
 
@@ -476,12 +467,12 @@
 last_unnamed= text_info;text_info->text_link= 0;
 
 /*:27*//*46:*/
-#line 496 "ctangle.w"
+#line 493 "ctangle.w"
 
 cur_out_file= end_output_files= output_files+max_files;
 
 /*:46*//*58:*/
-#line 698 "ctangle.w"
+#line 694 "ctangle.w"
 
 {
 int i;
@@ -489,7 +480,7 @@
 }
 
 /*:58*//*63:*/
-#line 777 "ctangle.w"
+#line 773 "ctangle.w"
 {
 int c;
 for(c= 0;c<256;c++)ccode[c]= ignore;
@@ -509,7 +500,7 @@
 }
 
 /*:63*//*78:*/
-#line 1108 "ctangle.w"
+#line 1103 "ctangle.w"
 section_text[0]= ' ';
 
 /*:78*/
@@ -547,10 +538,10 @@
 void
 init_p(name_pointer p,eight_bits t){(void)p;(void)t;}
 
-/*:25*//*30:*/
-#line 234 "ctangle.w"
+/*:25*//*29:*/
+#line 231 "ctangle.w"
 
-void
+static void
 store_two_bytes(
 sixteen_bits x)
 {
@@ -559,8 +550,8 @@
 *tok_ptr++= x&0377;
 }
 
-/*:30*//*35:*/
-#line 314 "ctangle.w"
+/*:29*//*34:*/
+#line 309 "ctangle.w"
 
 static void
 push_level(
@@ -576,8 +567,8 @@
 }
 }
 
-/*:35*//*36:*/
-#line 333 "ctangle.w"
+/*:34*//*36:*/
+#line 332 "ctangle.w"
 
 static void
 pop_level(
@@ -592,8 +583,8 @@
 if(stack_ptr> stack)cur_state= *stack_ptr;
 }
 
-/*:36*//*39:*/
-#line 372 "ctangle.w"
+/*:36*//*38:*/
+#line 368 "ctangle.w"
 
 static void
 get_output(void)
@@ -616,7 +607,7 @@
 case 0:cur_val= a;out_char(identifier);break;
 case 1:if(a==output_defs_flag)output_defs();
 else/*40:*/
-#line 404 "ctangle.w"
+#line 402 "ctangle.w"
 
 {
 a-= 024000;
@@ -630,7 +621,7 @@
 }
 
 /*:40*/
-#line 393 "ctangle.w"
+#line 389 "ctangle.w"
 
 break;
 default:cur_val= a-050000;if(cur_val> 0)cur_section= cur_val;
@@ -639,8 +630,8 @@
 }
 }
 
-/*:39*//*44:*/
-#line 465 "ctangle.w"
+/*:38*//*43:*/
+#line 460 "ctangle.w"
 
 static void
 flush_buffer(void)
@@ -654,8 +645,8 @@
 cur_line++;
 }
 
-/*:44*//*49:*/
-#line 520 "ctangle.w"
+/*:43*//*48:*/
+#line 514 "ctangle.w"
 
 static void
 phase_two(void){
@@ -662,22 +653,22 @@
 web_file_open= false;
 cur_line= 1;
 /*33:*/
-#line 299 "ctangle.w"
+#line 298 "ctangle.w"
 
 stack_ptr= stack+1;cur_name= name_dir;cur_repl= text_info->text_link+text_info;
 cur_byte= cur_repl->tok_start;cur_end= (cur_repl+1)->tok_start;cur_section= 0;
 
 /*:33*/
-#line 525 "ctangle.w"
+#line 519 "ctangle.w"
 
 /*51:*/
-#line 582 "ctangle.w"
+#line 578 "ctangle.w"
 
 if(!output_defs_seen)
 output_defs();
 
 /*:51*/
-#line 526 "ctangle.w"
+#line 520 "ctangle.w"
 
 if(text_info->text_link==0&&cur_out_file==end_output_files){
 fputs("\n! No program text was specified.",stdout);mark_harmless;
@@ -700,7 +691,7 @@
 while(stack_ptr> stack)get_output();
 flush_buffer();
 writeloop:/*50:*/
-#line 559 "ctangle.w"
+#line 555 "ctangle.w"
 
 for(an_output_file= end_output_files;an_output_file> cur_out_file;){
 an_output_file--;
@@ -721,7 +712,7 @@
 }
 
 /*:50*/
-#line 547 "ctangle.w"
+#line 541 "ctangle.w"
 
 if(show_happiness){
 if(show_progress)new_line;
@@ -730,8 +721,8 @@
 }
 }
 
-/*:49*//*54:*/
-#line 593 "ctangle.w"
+/*:48*//*54:*/
+#line 589 "ctangle.w"
 
 static void
 output_defs(void)
@@ -771,7 +762,7 @@
 }
 
 /*:54*//*55:*/
-#line 636 "ctangle.w"
+#line 632 "ctangle.w"
 
 static void
 out_char(
@@ -784,7 +775,7 @@
 if(protect||out_state==verbatim)C_putc('\\');
 flush_buffer();if(out_state!=verbatim)out_state= normal;break;
 /*59:*/
-#line 704 "ctangle.w"
+#line 700 "ctangle.w"
 
 case identifier:
 if(out_state==num_or_id)C_putc(' ');
@@ -799,10 +790,10 @@
 out_state= num_or_id;break;
 
 /*:59*/
-#line 647 "ctangle.w"
+#line 643 "ctangle.w"
 
 /*60:*/
-#line 717 "ctangle.w"
+#line 713 "ctangle.w"
 
 case section_number:
 if(cur_val> 0)C_printf("/*%d:*/",cur_val);
@@ -829,10 +820,10 @@
 break;
 
 /*:60*/
-#line 648 "ctangle.w"
+#line 644 "ctangle.w"
 
 /*56:*/
-#line 666 "ctangle.w"
+#line 662 "ctangle.w"
 
 case plus_plus:C_putc('+');C_putc('+');out_state= normal;break;
 case minus_minus:C_putc('-');C_putc('-');out_state= normal;break;
@@ -853,7 +844,7 @@
 break;
 
 /*:56*/
-#line 649 "ctangle.w"
+#line 645 "ctangle.w"
 
 case'=':case'>':C_putc(cur_char);C_putc(' ');
 out_state= normal;break;
@@ -871,8 +862,8 @@
 }
 }
 
-/*:55*//*65:*/
-#line 802 "ctangle.w"
+/*:55*//*64:*/
+#line 794 "ctangle.w"
 
 static eight_bits
 skip_ahead(void)
@@ -889,8 +880,8 @@
 }
 }
 
-/*:65*//*67:*/
-#line 837 "ctangle.w"
+/*:64*//*67:*/
+#line 833 "ctangle.w"
 
 static boolean skip_comment(
 boolean is_long_comment)
@@ -923,8 +914,8 @@
 }
 }
 
-/*:67*//*70:*/
-#line 888 "ctangle.w"
+/*:67*//*69:*/
+#line 881 "ctangle.w"
 
 static eight_bits
 get_next(void)
@@ -938,7 +929,7 @@
 else if(print_where&&!no_where){
 print_where= false;
 /*85:*/
-#line 1220 "ctangle.w"
+#line 1214 "ctangle.w"
 
 store_two_bytes(0150000);
 if(changing&&include_depth==change_depth){
@@ -953,7 +944,7 @@
 app_repl(a_l%0400);}
 
 /*:85*/
-#line 900 "ctangle.w"
+#line 893 "ctangle.w"
 
 }
 else return'\n';
@@ -967,7 +958,7 @@
 }
 loc++;
 if(xisdigit(c)||c=='.')/*73:*/
-#line 969 "ctangle.w"
+#line 964 "ctangle.w"
 {
 id_first= loc-1;
 if(*id_first=='.'&&!xisdigit(*loc))goto mistake;
@@ -992,13 +983,13 @@
 }
 
 /*:73*/
-#line 912 "ctangle.w"
+#line 905 "ctangle.w"
 
 else if(c=='\''||c=='"'
 ||((c=='L'||c=='u'||c=='U')&&(*loc=='\''||*loc=='"'))
 ||((c=='u'&&*loc=='8')&&(*(loc+1)=='\''||*(loc+1)=='"')))
 /*74:*/
-#line 997 "ctangle.w"
+#line 992 "ctangle.w"
 {
 char delim= c;
 id_first= section_text+1;
@@ -1042,11 +1033,11 @@
 }
 
 /*:74*/
-#line 916 "ctangle.w"
+#line 909 "ctangle.w"
 
 else if(isalpha(c)||isxalpha(c)||ishigh(c))
 /*72:*/
-#line 962 "ctangle.w"
+#line 957 "ctangle.w"
 {
 id_first= --loc;
 while(isalpha((eight_bits)*++loc)||isdigit((eight_bits)*loc)
@@ -1055,10 +1046,10 @@
 }
 
 /*:72*/
-#line 918 "ctangle.w"
+#line 911 "ctangle.w"
 
 else if(c=='@')/*75:*/
-#line 1042 "ctangle.w"
+#line 1037 "ctangle.w"
 {
 c= ccode[(eight_bits)*loc++];
 switch(c){
@@ -1074,11 +1065,11 @@
 case section_name:
 cur_section_name_char= *(loc-1);
 /*77:*/
-#line 1090 "ctangle.w"
+#line 1085 "ctangle.w"
 {
 char*k;
 /*79:*/
-#line 1110 "ctangle.w"
+#line 1105 "ctangle.w"
 
 k= section_text;
 while(true){
@@ -1089,7 +1080,7 @@
 }
 c= *loc;
 /*80:*/
-#line 1134 "ctangle.w"
+#line 1129 "ctangle.w"
 
 if(c=='@'){
 c= *(loc+1);
@@ -1108,7 +1099,7 @@
 }
 
 /*:80*/
-#line 1119 "ctangle.w"
+#line 1114 "ctangle.w"
 
 loc++;if(k<section_text_end)k++;
 if(xisspace(c)){
@@ -1125,7 +1116,7 @@
 if(*k==' '&&k> section_text)k--;
 
 /*:79*/
-#line 1092 "ctangle.w"
+#line 1087 "ctangle.w"
 
 if(k-section_text> 3&&strncmp(k-2,"...",3)==0)
 cur_section_name= section_lookup(section_text+1,k-3,1);
@@ -1132,7 +1123,7 @@
 else cur_section_name= section_lookup(section_text+1,k,0);
 if(cur_section_name_char=='(')
 /*47:*/
-#line 500 "ctangle.w"
+#line 497 "ctangle.w"
 
 {
 for(an_output_file= cur_out_file;
@@ -1148,16 +1139,16 @@
 }
 
 /*:47*/
-#line 1098 "ctangle.w"
+#line 1093 "ctangle.w"
 
 return section_name;
 }
 
 /*:77*/
-#line 1056 "ctangle.w"
+#line 1051 "ctangle.w"
 
 case string:/*81:*/
-#line 1156 "ctangle.w"
+#line 1151 "ctangle.w"
 {
 id_first= loc++;*(limit+1)= '@';*(limit+2)= '>';
 while(*loc!='@'||*(loc+1)!='>')loc++;
@@ -1168,10 +1159,10 @@
 }
 
 /*:81*/
-#line 1057 "ctangle.w"
+#line 1052 "ctangle.w"
 
 case ord:/*76:*/
-#line 1069 "ctangle.w"
+#line 1064 "ctangle.w"
 
 id_first= loc;
 if(*loc=='\\'){
@@ -1194,7 +1185,7 @@
 return ord;
 
 /*:76*/
-#line 1058 "ctangle.w"
+#line 1053 "ctangle.w"
 
 default:return c;
 }
@@ -1201,7 +1192,7 @@
 }
 
 /*:75*/
-#line 919 "ctangle.w"
+#line 912 "ctangle.w"
 
 else if(xisspace(c)){
 if(!preprocessing||loc> limit)continue;
@@ -1210,7 +1201,7 @@
 }
 else if(c=='#'&&loc==buffer+1)preprocessing= 1;
 mistake:/*71:*/
-#line 940 "ctangle.w"
+#line 935 "ctangle.w"
 
 switch(c){
 case'+':if(*loc=='+')compress(plus_plus);break;
@@ -1234,14 +1225,14 @@
 }
 
 /*:71*/
-#line 926 "ctangle.w"
+#line 919 "ctangle.w"
 
 return c;
 }
 }
 
-/*:70*//*84:*/
-#line 1194 "ctangle.w"
+/*:69*//*83:*/
+#line 1186 "ctangle.w"
 
 static void
 scan_repl(
@@ -1249,7 +1240,7 @@
 {
 sixteen_bits a;
 if(t==section_name){/*85:*/
-#line 1220 "ctangle.w"
+#line 1214 "ctangle.w"
 
 store_two_bytes(0150000);
 if(changing&&include_depth==change_depth){
@@ -1264,11 +1255,11 @@
 app_repl(a_l%0400);}
 
 /*:85*/
-#line 1200 "ctangle.w"
+#line 1192 "ctangle.w"
 }
 while(true)switch(a= get_next()){
 /*86:*/
-#line 1233 "ctangle.w"
+#line 1227 "ctangle.w"
 
 case identifier:a= id_lookup(id_first,id_loc,0)-name_dir;
 app_repl((a/0400)+0200);
@@ -1276,7 +1267,7 @@
 case section_name:if(t!=section_name)goto done;
 else{
 /*87:*/
-#line 1266 "ctangle.w"
+#line 1260 "ctangle.w"
 {
 char*try_loc= loc;
 while(*try_loc==' '&&try_loc<limit)try_loc++;
@@ -1289,13 +1280,13 @@
 }
 
 /*:87*/
-#line 1239 "ctangle.w"
+#line 1233 "ctangle.w"
 
 a= cur_section_name-name_dir;
 app_repl((a/0400)+0250);
 app_repl(a%0400);
 /*85:*/
-#line 1220 "ctangle.w"
+#line 1214 "ctangle.w"
 
 store_two_bytes(0150000);
 if(changing&&include_depth==change_depth){
@@ -1310,7 +1301,7 @@
 app_repl(a_l%0400);}
 
 /*:85*/
-#line 1243 "ctangle.w"
+#line 1237 "ctangle.w"
 break;
 }
 case output_defs_code:if(t!=section_name)err_print("! Misplaced @h");
@@ -1321,7 +1312,7 @@
 app_repl((a/0400)+0200);
 app_repl(a%0400);
 /*85:*/
-#line 1220 "ctangle.w"
+#line 1214 "ctangle.w"
 
 store_two_bytes(0150000);
 if(changing&&include_depth==change_depth){
@@ -1336,13 +1327,13 @@
 app_repl(a_l%0400);}
 
 /*:85*/
-#line 1252 "ctangle.w"
+#line 1246 "ctangle.w"
 
 }
 break;
 case constant:case string:
 /*88:*/
-#line 1277 "ctangle.w"
+#line 1271 "ctangle.w"
 
 app_repl(a);
 while(id_first<id_loc){
@@ -1356,11 +1347,11 @@
 app_repl(a);break;
 
 /*:88*/
-#line 1256 "ctangle.w"
+#line 1250 "ctangle.w"
 
 case ord:
 /*89:*/
-#line 1293 "ctangle.w"
+#line 1287 "ctangle.w"
 {
 int c= (eight_bits)*id_first;
 if(c=='\\'){
@@ -1411,7 +1402,7 @@
 break;
 
 /*:89*/
-#line 1258 "ctangle.w"
+#line 1252 "ctangle.w"
 
 case definition:case format_code:case begin_C:if(t!=section_name)goto done;
 else{
@@ -1421,7 +1412,7 @@
 case new_section:goto done;
 
 /*:86*/
-#line 1205 "ctangle.w"
+#line 1197 "ctangle.w"
 
 case')':app_repl(a);
 if(t==macro)app_repl(' ');
@@ -1433,8 +1424,8 @@
 cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr;
 }
 
-/*:84*//*91:*/
-#line 1355 "ctangle.w"
+/*:83*//*90:*/
+#line 1346 "ctangle.w"
 
 static void
 scan_section(void)
@@ -1449,7 +1440,7 @@
 next_control= 0;
 while(true){
 /*92:*/
-#line 1394 "ctangle.w"
+#line 1387 "ctangle.w"
 
 while(next_control<definition)
 
@@ -1458,11 +1449,11 @@
 }
 
 /*:92*/
-#line 1369 "ctangle.w"
+#line 1360 "ctangle.w"
 
 if(next_control==definition){
 /*93:*/
-#line 1401 "ctangle.w"
+#line 1394 "ctangle.w"
 {
 while((next_control= get_next())=='\n');
 if(next_control!=identifier){
@@ -1481,7 +1472,7 @@
 }
 
 /*:93*/
-#line 1371 "ctangle.w"
+#line 1362 "ctangle.w"
 
 continue;
 }
@@ -1491,7 +1482,7 @@
 if(next_control==section_name){
 p= cur_section_name;
 /*94:*/
-#line 1426 "ctangle.w"
+#line 1419 "ctangle.w"
 
 while((next_control= get_next())=='+');
 if(next_control!='='&&next_control!=eq_eq)
@@ -1498,7 +1489,7 @@
 continue;
 
 /*:94*/
-#line 1379 "ctangle.w"
+#line 1370 "ctangle.w"
 
 break;
 }
@@ -1506,20 +1497,20 @@
 }
 no_where= print_where= false;
 /*95:*/
-#line 1431 "ctangle.w"
+#line 1424 "ctangle.w"
 
 /*96:*/
-#line 1436 "ctangle.w"
+#line 1429 "ctangle.w"
 
 store_two_bytes((sixteen_bits)(0150000+section_count));
 
 
 /*:96*/
-#line 1432 "ctangle.w"
+#line 1425 "ctangle.w"
 
 scan_repl(section_name);
 /*97:*/
-#line 1440 "ctangle.w"
+#line 1433 "ctangle.w"
 
 if(p==name_dir||p==0){
 (last_unnamed)->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1536,16 +1527,16 @@
 
 
 /*:97*/
-#line 1434 "ctangle.w"
+#line 1427 "ctangle.w"
 
 
 /*:95*/
-#line 1385 "ctangle.w"
+#line 1376 "ctangle.w"
 
 }
 
-/*:91*//*99:*/
-#line 1458 "ctangle.w"
+/*:90*//*98:*/
+#line 1448 "ctangle.w"
 
 static void
 phase_one(void){
@@ -1558,8 +1549,8 @@
 phase= 2;
 }
 
-/*:99*//*101:*/
-#line 1476 "ctangle.w"
+/*:98*//*100:*/
+#line 1465 "ctangle.w"
 
 static void
 skip_limbo(void)
@@ -1574,7 +1565,7 @@
 if(ccode[(eight_bits)c]==new_section)break;
 switch(ccode[(eight_bits)c]){
 case translit_code:/*102:*/
-#line 1505 "ctangle.w"
+#line 1496 "ctangle.w"
 
 while(xisspace(*loc)&&loc<limit)loc++;
 loc+= 3;
@@ -1599,7 +1590,7 @@
 }
 
 /*:102*/
-#line 1489 "ctangle.w"
+#line 1478 "ctangle.w"
 break;
 case format_code:case'@':break;
 case control_text:if(c=='q'||c=='Q'){
@@ -1616,8 +1607,8 @@
 }
 }
 
-/*:101*//*103:*/
-#line 1531 "ctangle.w"
+/*:100*//*103:*/
+#line 1522 "ctangle.w"
 
 void
 print_stats(void){

Modified: trunk/Build/source/texk/web2c/cwebdir/ctangle.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctangle.w	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/ctangle.w	2021-02-24 18:19:47 UTC (rev 57874)
@@ -69,7 +69,7 @@
 @<Common code for \.{CWEAVE} and \.{CTANGLE}@>@/
 @<Typedef declarations@>@/
 @<Private variables@>@/
-@<Predeclaration of procedures@>@/
+@<Predeclaration of procedures@>
 
 @ \.{CTANGLE} has a fairly straightforward outline.  It operates in
 two phases: First it reads the source file, saving the \CEE/ code in
@@ -228,11 +228,8 @@
 @ The following procedure is used to enter a two-byte value into
 |tok_mem| when a replacement text is being generated.
 
-@<Predecl...@>=
-static void store_two_bytes(sixteen_bits);@/
-
-@ @c
-void
+ at c
+static void
 store_two_bytes(
 sixteen_bits x)
 {
@@ -241,6 +238,8 @@
   *tok_ptr++=x&0377; /* store low byte */
 }
 
+@ @<Predecl...@>=@+static void store_two_bytes(sixteen_bits);
+
 @** Stacks for output.  The output process uses a stack to keep track
 of what is going on at different ``levels'' as the sections are being
 written out.  Entries on this stack have five parts:
@@ -307,11 +306,7 @@
 We assume that the \CEE/ compiler can copy structures.
 @^system dependencies@>
 
-@<Predecl...@>=
-static void push_level(name_pointer);@/
-static void pop_level(boolean);@/
-
-@ @c
+ at c
 static void
 push_level(@t\1\1@> /* suspends the current level */
 name_pointer p at t\2\2@>)
@@ -326,6 +321,10 @@
   }
 }
 
+@ @<Predecl...@>=
+static void push_level(name_pointer);@/
+static void pop_level(boolean);
+
 @ When we come to the end of a replacement text, the |pop_level| subroutine
 does the right thing: It either moves to the continuation of this replacement
 text or returns the state to the most recently stacked level.
@@ -366,10 +365,7 @@
 |stack_ptr==stack|.
 @^high-bit character handling@>
 
-@<Predecl...@>=
-static void get_output(void);@/
-
-@ @c
+ at c
 static void
 get_output(void) /* sends next token to |out_char| */
 {
@@ -398,6 +394,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void get_output(void);
+
 @ The user may have forgotten to give any \CEE/ text for a section name,
 or the \CEE/ text may have been associated with a different name by mistake.
 
@@ -459,10 +457,7 @@
 During the output process, |cur_line| equals the number of the next line
 to be output.
 
-@<Predecl...@>=
-static void flush_buffer(void);@/
-
-@ @c
+ at c
 static void
 flush_buffer(void) /* writes one line to output file */
 {
@@ -475,6 +470,8 @@
   cur_line++;
 }
 
+@ @<Predecl...@>=@+static void flush_buffer(void);
+
 @ Second, we have modified the original \.{TANGLE} so that it will write output
 on multiple files.
 If a section name is introduced in at least one place by \.{@@(}
@@ -514,10 +511,7 @@
 @* The big output switch.  Here then is the routine that does the
 output.
 
-@<Predecl...@>=
-static void phase_two(void);@/
-
-@ @c
+ at c
 static void
 phase_two (void) {
   web_file_open=false;
@@ -552,6 +546,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void phase_two(void);
+
 @ To write the named output files, we proceed as for the unnamed
 section.
 The only subtlety is that we have to open each one.
@@ -588,7 +584,7 @@
 
 @ @<Predecl...@>=
 static void output_defs(void);@/
-static void out_char(eight_bits);@/
+static void out_char(eight_bits);
 
 @ @c
 static void
@@ -795,11 +791,7 @@
 @ The |skip_ahead| procedure reads through the input at fairly high speed
 until finding the next non-ignorable control code, which it returns.
 
-@<Predecl...@>=
-static eight_bits skip_ahead(void);@/
-static boolean skip_comment(boolean);@/
-
-@ @c
+ at c
 static eight_bits
 skip_ahead(void) /* skip to next control code */
 {
@@ -815,6 +807,10 @@
   }
 }
 
+@ @<Predecl...@>=
+static eight_bits skip_ahead(void);@/
+static boolean skip_comment(boolean);
+
 @ The |skip_comment| procedure reads through the input at somewhat high
 speed in order to pass over comments, which \.{CTANGLE} does not transmit
 to the output. If the comment is introduced by \.{/*}, |skip_comment|
@@ -882,10 +878,7 @@
 @d ishigh(c) ((eight_bits)(c)>0177)
 @^high-bit character handling@>
 
-@<Predecl...@>=
-static eight_bits get_next(void);@/
-
-@ @c
+ at c
 static eight_bits
 get_next(void) /* produces the next input token */
 {
@@ -928,6 +921,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static eight_bits get_next(void);
+
 @ The following code assigns values to the combinations \.{++},
 \.{--}, \.{->}, \.{>=}, \.{<=}, \.{==}, \.{<<}, \.{>>}, \.{!=}, \.{||} and
 \.{\&\&}, and to the \CPLUSPLUS/
@@ -1188,9 +1183,6 @@
 static text_pointer cur_text; /* replacement text formed by |scan_repl| */
 static eight_bits next_control;
 
-@ @<Predecl...@>=
-static void scan_repl(eight_bits);@/
-
 @ @c
 static void
 scan_repl(@t\1\1@> /* creates a replacement text */
@@ -1213,6 +1205,8 @@
   cur_text=text_ptr; (++text_ptr)->tok_start=tok_ptr;
 }
 
+@ @<Predecl...@>=@+static void scan_repl(eight_bits);
+
 @ Here is the code for the line number: first a |sixteen_bits| equal
 to |0150000|; then the numeric line number; then a pointer to the
 file name.
@@ -1345,10 +1339,7 @@
 uses |section_count| to keep track of the current section number; with luck,
 \.{CWEAVE} and \.{CTANGLE} will both assign the same numbers to sections.
 
-@<Predecl...@>=
-static void scan_section(void);@/
-
-@ The body of |scan_section| is a loop where we look for control codes
+The body of |scan_section| is a loop where we look for control codes
 that are significant to \.{CTANGLE}: those
 that delimit a definition, the \CEE/ part of a module, or a new module.
 
@@ -1385,6 +1376,8 @@
   @<Scan the \CEE/ part of the current section@>@;
 }
 
+@ @<Predecl...@>=@+static void scan_section(void);
+
 @ At the top of this loop, if |next_control==section_name|, the
 section name has already been scanned (see |@<Get control code
 and...@>|).  Thus, if we encounter |next_control==section_name| in the
@@ -1452,9 +1445,6 @@
 cur_text->text_link=section_flag;
   /* mark this replacement text as a nonmacro */
 
-@ @<Predec...@>=
-static void phase_one(void);@/
-
 @ @c
 static void
 phase_one(void) {
@@ -1467,13 +1457,12 @@
   phase=2;
 }
 
+@ @<Predec...@>=@+static void phase_one(void);
+
 @ Only a small subset of the control codes is legal in limbo, so limbo
 processing is straightforward.
 
-@<Predecl...@>=
-static void skip_limbo(void);@/
-
-@ @c
+ at c
 static void
 skip_limbo(void)
 {
@@ -1502,6 +1491,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void skip_limbo(void);
+
 @ @<Read in transliteration of a character@>=
   while(xisspace(*loc)&&loc<limit) loc++;
   loc+=3;

Modified: trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch	2021-02-24 18:19:47 UTC (rev 57874)
@@ -707,21 +707,21 @@
 the category codes |pp->cat|, |(pp+1)->cat|, $\,\ldots\,$
 @z
 
-Section 138.
+Section 139.
 
 @x
-@ @<Set init...@>=
+@ Token lists in |@!tok_mem| are composed of the following kinds of
 @y
- at r @ @<Set init...@>=
+@ Token lists in |@!tok_mem| are composed of the following kinds of
+ at -p@>
 @z
 
-Section 139.
+Section 141.
 
 @x
-@ Token lists in |@!tok_mem| are composed of the following kinds of
+@ @<Print token |r|...@>=
 @y
-@ Token lists in |@!tok_mem| are composed of the following kinds of
- at -p@>
+ at r @ @<Print token |r|...@>=
 @z
 
 Section 142.
@@ -933,6 +933,14 @@
 @r @ @<Cases for |decl_head|@>=
 @z
 
+Section 173.
+
+ at x
+@ @<Cases for |fn_decl|@>=
+ at y
+ at r @ @<Cases for |fn_decl|@>=
+ at z
+
 Section 208.
 
 @x
@@ -941,6 +949,14 @@
 @r @ Here's the |squash| procedure, which
 @z
 
+Section 212.
+
+ at x
+@ @<Print a snapsh...@>=
+ at y
+ at r @ @<Print a snapsh...@>=
+ at z
+
 Section 220.
 
 @x
@@ -1063,14 +1079,6 @@
 @r @ The |footnote| procedure gives cross-reference information about
 @z
 
-Section 277.
-
- at x
-@ @<Output information about usage of id's defined in other sections@>=
- at y
- at r @ @<Output information about usage of id's defined in other sections@>=
- at z
-
 Section 284.
 
 @x

Modified: trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch	2021-02-24 18:19:47 UTC (rev 57874)
@@ -500,11 +500,11 @@
 @z
 
 @x
-static eight_bits skip_TeX(void);@/
+static eight_bits skip_TeX(void);
 
 @ @c
 @y
-static eight_bits skip_TeX(void);@/
+static eight_bits skip_TeX(void);
 
 @ We look for a clue about the program's title, because this will become
 part of all meanings.
@@ -899,17 +899,15 @@
 @z
 
 @x
-static void print_text(text_pointer p);@/
- at y
-#if 0
-static void print_text(text_pointer p);@/
-#endif
- at z
+ at d inner_tok_flag 5*id_flag /* signifies a token list in `\pb' */
 
- at x
+ at c
 static void
 print_text(@t\1\1@> /* prints a token list for debugging; not used in |main| */
 @y
+ at d inner_tok_flag 5*id_flag /* signifies a token list in `\pb' */
+
+ at c
 #if 0
 static void
 print_text(@t\1\1@> /* prints a token list for debugging; not used in |main| */
@@ -929,6 +927,15 @@
 @z
 
 @x
+@ @<Predecl...@>=@+static void print_text(text_pointer p);
+ at y
+@ @<Predecl...@>=
+#if 0
+static void print_text(text_pointer p);
+#endif
+ at z
+
+ at x
 the |for| loop below.
 
 @c
@@ -1633,7 +1640,7 @@
 }
 
 @ @<Output information about usage of id's defined in other sections@>=
-{@+struct perm_meaning *q;
+{ struct perm_meaning *q;
   while (temp_meaning_ptr>temp_meaning_stack) {
     out_mini(--temp_meaning_ptr);
     q=temp_meaning_ptr->id-name_dir+cur_meaning;
@@ -1647,9 +1654,6 @@
   }
 }
 
-@ @<Predec...@>=
-static void out_mini(meaning_struct *);@/
-
 @ @c static void
 out_mini(
   meaning_struct *m)
@@ -1669,6 +1673,8 @@
   out(' '); out_str(m->tex_part); finish_line();
 }
 
+@ @<Predec...@>=@+static void out_mini(meaning_struct *);
+
 @ @<Mini-output...@>=
 switch (cur_name->ilk) {
   case normal: case func_template: if (length(cur_name)==1) out_str("\\|");

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-w2c.ch	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-w2c.ch	2021-02-24 18:19:47 UTC (rev 57874)
@@ -248,17 +248,15 @@
 @z
 
 @x
-static void print_text(text_pointer p);@/
- at y
-#if 0
-static void print_text(text_pointer p);@/
-#endif
- at z
+ at d inner_tok_flag 5*id_flag /* signifies a token list in `\pb' */
 
- at x
+ at c
 static void
 print_text(@t\1\1@> /* prints a token list for debugging; not used in |main| */
 @y
+ at d inner_tok_flag 5*id_flag /* signifies a token list in `\pb' */
+
+ at c
 #if 0
 static void
 print_text(@t\1\1@> /* prints a token list for debugging; not used in |main| */
@@ -272,6 +270,15 @@
 @z
 
 @x
+@ @<Predecl...@>=@+static void print_text(text_pointer p);
+ at y
+@ @<Predecl...@>=
+#if 0
+static void print_text(text_pointer p);
+#endif
+ at z
+
+ at x
 @<Cases for |exp|@>=
 if (cat1==lbrace || cat1==int_like || cat1==decl) {
   make_underlined(pp); big_app1(pp); big_app(indent); app(indent);

Modified: trunk/Build/source/texk/web2c/cwebdir/cweave.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweave.w	2021-02-24 18:01:11 UTC (rev 57873)
+++ trunk/Build/source/texk/web2c/cwebdir/cweave.w	2021-02-24 18:19:47 UTC (rev 57874)
@@ -251,7 +251,7 @@
 @<Predecl...@>=
 static void new_xref(name_pointer);@/
 static void new_section_xref(name_pointer);@/
-static void set_file_flag(name_pointer);@/
+static void set_file_flag(name_pointer);
 
 @ @c
 static void
@@ -383,8 +383,7 @@
   p->xref=(void *)xref_ptr;
 }
 
-@ @<Predecl...@>=
-static void update_node(name_pointer p);@/
+@ @<Predecl...@>=@+static void update_node(name_pointer p);
 
 @ We have to get \CEE/'s
 reserved words into the hash table, and the simplest way to do this is
@@ -490,8 +489,7 @@
 id_lookup("wchar_t",NULL,raw_int);
 id_lookup("while",NULL,for_like);
 id_lookup("xor",NULL,alfop);
-id_lookup("xor_eq",NULL,alfop);
-res_wd_end=name_ptr;
+id_lookup("xor_eq",NULL,alfop);@+ res_wd_end=name_ptr;
 id_lookup("TeX",NULL,custom);
 id_lookup("make_pair",NULL,func_template);
 
@@ -590,7 +588,7 @@
 
 @<Predec...@>=
 static void skip_limbo(void);@/
-static eight_bits skip_TeX(void);@/
+static eight_bits skip_TeX(void);
 
 @ @c
 static void
@@ -681,10 +679,7 @@
 @d ishigh(c) ((eight_bits)(c)>0177)
 @^high-bit character handling@>
 
-@<Predecl...@>=
-static eight_bits get_next(void);@/
-
-@ @c
+ at c
 static eight_bits
 get_next(void) /* produces the next input token */
 {
@@ -709,6 +704,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static eight_bits get_next(void);
+
 @ Because preprocessor commands do not fit in with the rest of the syntax
 of \CEE/,
 we have to deal with them separately.  One solution is to enclose such
@@ -961,10 +958,7 @@
 
 @ This function skips over a restricted context at relatively high speed.
 
-@<Predecl...@>=
-static void skip_restricted(void);@/
-
-@ @c
+ at c
 static void
 skip_restricted(void)
 {
@@ -984,6 +978,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void skip_restricted(void);
+
 @ At the present point in the program we
 have |*(loc-1)==verbatim|; we set |id_first| to the beginning
 of the string itself, and |id_loc| to its ending-plus-one location in the
@@ -1014,10 +1010,7 @@
 @ The overall processing strategy in phase one has the following
 straightforward outline.
 
-@<Predecl...@>=
-static void phase_one(void);@/
-
-@ @c
+ at c
 static void
 phase_one(void) {
   phase=1; reset_input(); section_count=0;
@@ -1030,6 +1023,8 @@
   @<Print error messages about unused or undefined section names@>@;
 }
 
+@ @<Predecl...@>=@+static void phase_one(void);
+
 @ @<Store cross-reference data...@>=
 {
   if (++section_count==max_sections) overflow("section number");
@@ -1068,7 +1063,7 @@
 
 @<Predecl...@>=
 static void C_xref(eight_bits);@/
-static void outer_xref(void);@/
+static void outer_xref(void);
 
 @ @c
 static void
@@ -1254,10 +1249,7 @@
 walks through the tree of section names and prints out anomalies.
 @^recursion@>
 
-@<Predecl...@>=
-static void section_check(name_pointer);@/
-
-@ @c
+ at c
 static void
 section_check(
 name_pointer p) /* print anomalies in subtree |p| */
@@ -1282,6 +1274,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void section_check(name_pointer);
+
 @ @<Print error messages about un...@>=section_check(root);
 
 @* Low-level output routines.
@@ -1315,7 +1309,7 @@
 
 @<Predecl...@>=
 static void flush_buffer(char *,boolean,boolean);@/
-static void finish_line(void);@/
+static void finish_line(void);
 
 @ @c
 static void
@@ -1380,7 +1374,7 @@
 
 @<Predecl...@>=
 static void out_str(const char *);@/
-static void break_out(void);@/
+static void break_out(void);
 
 @ @c
 static void
@@ -1438,7 +1432,7 @@
 
 @<Predecl...@>=
 static void out_section(sixteen_bits);@/
-static void out_name(name_pointer,boolean);@/
+static void out_name(name_pointer,boolean);
 
 @ @c
 static void
@@ -1485,7 +1479,7 @@
 @<Predecl...@>=
 static void copy_limbo(void);@/
 static eight_bits copy_TeX(void);@/
-static int copy_comment(boolean,int);@/
+static int copy_comment(boolean,int);
 
 @ @c
 static void
@@ -1784,10 +1778,7 @@
 
 @ This code allows \.{CWEAVE} to display its parsing steps.
 
-@<Predecl...@>=
-static void print_cat(eight_bits);@/
-
-@ @c
+ at c
 static void
 print_cat(@t\1\1@> /* symbolic printout of a category */
 eight_bits c at t\2\2@>)
@@ -1795,6 +1786,8 @@
   fputs(cat_name[c],stdout);
 }
 
+@ @<Predecl...@>=@+static void print_cat(eight_bits);
+
 @ The token lists for translated \TEX/ output contain some special control
 symbols as well as ordinary characters. These control symbols are
 interpreted by \.{CWEAVE} before they are written to the output file.
@@ -2142,10 +2135,7 @@
 @d tok_flag 4*id_flag /* signifies a token list */
 @d inner_tok_flag 5*id_flag /* signifies a token list in `\pb' */
 
-@<Predecl...@>=
-static void print_text(text_pointer p);@/
-
-@ @c
+ at c
 static void
 print_text(@t\1\1@> /* prints a token list for debugging; not used in |main| */
 text_pointer p at t\2\2@>)
@@ -2170,6 +2160,8 @@
   update_terminal;
 }
 
+@ @<Predecl...@>=@+static void print_text(text_pointer p);
+
 @ @<Print token |r|...@>=
 switch (r) {
   case math_rel: printf("\\mathrel{"@q}@>); break;
@@ -2272,7 +2264,7 @@
 @ @<Predecl...@>=
 static void app_str(const char *);@/
 static void big_app(token);@/
-static void big_app1(scrap_pointer);@/
+static void big_app1(scrap_pointer);
 
 @ @c
 static void
@@ -2429,7 +2421,7 @@
 static token_pointer find_first_ident(text_pointer);@/
 static void make_reserved(scrap_pointer);@/
 static void make_underlined(scrap_pointer);@/
-static void underline_xref(name_pointer);@/
+static void underline_xref(name_pointer);
 
 @ @c
 static token_pointer
@@ -3023,7 +3015,7 @@
 
 @<Predecl...@>=
 static void reduce(scrap_pointer,short,eight_bits,short,short);@/
-static void squash(scrap_pointer,short,eight_bits,short,short);@/
+static void squash(scrap_pointer,short,eight_bits,short,short);
 
 @ @c
 static void
@@ -3147,10 +3139,7 @@
 since |translate| might add a new text and a new scrap before it checks
 for overflow.
 
-@<Predecl...@>=
-static text_pointer translate(void);@/
-
-@ @c
+ at c
 static text_pointer
 translate(void) /* converts a sequence of scraps */
 {
@@ -3162,6 +3151,8 @@
   @<Combine the irreducible scraps that remain@>@;
 }
 
+@ @<Predecl...@>=@+static text_pointer translate(void);
+
 @ If the initial sequence of scraps does not reduce to a single scrap,
 we concatenate the translations of all remaining scraps, separated by
 blank spaces, with dollar signs surrounding the translations of scraps
@@ -3215,10 +3206,7 @@
 what it reads are appended into the |cat| and |trans| arrays, and |scrap_ptr|
 is advanced.
 
-@<Predecl...@>=
-static void C_parse(eight_bits);@/
-
-@ @c
+ at c
 static void
 C_parse(@t\1\1@> /* creates scraps from \CEE/ tokens */
   eight_bits spec_ctrl at t\2\2@>)
@@ -3232,6 +3220,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void C_parse(eight_bits);
+
 @ The following macro is used to append a scrap whose tokens have just
 been appended:
 
@@ -3453,7 +3443,7 @@
 @<Predec...@>=
 static void app_cur_id(boolean);@/
 static text_pointer C_translate(void);@/
-static void outer_parse(void);@/
+static void outer_parse(void);
 
 @ @c
 static void
@@ -3621,7 +3611,7 @@
 
 @<Predecl...@>=
 static void push_level(text_pointer);@/
-static void pop_level(void);@/
+static void pop_level(void);
 
 @ @c
 static void
@@ -3668,7 +3658,7 @@
 @<Predecl...@>=
 static eight_bits get_output(void);@/
 static void output_C(void);@/
-static void make_output(void);@/
+static void make_output(void);
 
 @ @c
 static eight_bits
@@ -3991,10 +3981,7 @@
 actually output the \TEX/ material instead of merely looking at the
 \.{CWEB} specifications.
 
-@<Predecl...@>=
-static void phase_two(void);@/
-
-@ @c
+ at c
 static void
 phase_two(void) {
 reset_input(); if (show_progress) fputs("\nWriting the output file...",stdout);
@@ -4004,6 +3991,8 @@
 while (!input_has_ended) @<Translate the current section@>@;
 }
 
+@ @<Predecl...@>=@+static void phase_two(void);
+
 @ The output file will contain the control sequence \.{\\Y} between non-null
 sections of a section, e.g., between the \TEX/ and definition parts if both
 are nonempty. This puts a little white space between the parts when they are
@@ -4114,10 +4103,7 @@
 \.{\\7} (the \TEX/ macros for |force| and |big_force|). This \.{\\6} or
 \.{\\7} is replaced by the concluding \.{\\par} or by \.{\\Y\\par}.
 
-@<Predecl...@>=
-static void finish_C(boolean);@/
-
-@ @c
+ at c
 static void
 finish_C(@t\1\1@> /* finishes a definition or a \CEE/ part */
   boolean visible at t\2\2@>) /* nonzero if we should produce \TeX\ output */
@@ -4146,6 +4132,8 @@
     /* forget the tokens and the scraps */
 }
 
+@ @<Predecl...@>=@+static void finish_C(boolean);
+
 @ Keeping in line with the conventions of the \CEE/ preprocessor (and
 otherwise contrary to the rules of \.{CWEB}) we distinguish here
 between the case that `\.(' immediately follows an identifier and the
@@ -4287,10 +4275,7 @@
 Note that the output of \.{CWEAVE} is not English-specific; users may
 supply new definitions for the macros \.{\\A}, \.{\\As}, etc.
 
-@<Predecl...@>=
-static void footnote(sixteen_bits);@/
-
-@ @c
+ at c
 static void
 footnote(@t\1\1@> /* outputs section cross-references */
 sixteen_bits flag at t\2\2@>)
@@ -4306,6 +4291,8 @@
   out('.');
 }
 
+@ @<Predecl...@>=@+static void footnote(sixteen_bits);
+
 @ The following code distinguishes three cases, according as the number
 of cross-references is one, two, or more than two. Variable |q| points
 to the first cross-reference, and the last link is a zero.
@@ -4336,10 +4323,7 @@
 just finish off the page, omitting the index, section name list, and table of
 contents.
 
-@<Predecl...@>=
-static void phase_three(void);@/
-
-@ @c
+ at c
 static void
 phase_three(void) {
 if (no_xref) {
@@ -4387,6 +4371,8 @@
 check_complete(); /* was all of the change file used? */
 }
 
+@ @<Predecl...@>=@+static void phase_three(void);
+
 @ Just before the index comes a list of all the changed sections, including
 the index section itself.
 
@@ -4531,10 +4517,7 @@
 
 @d infinity 255 /* $\infty$ (approximately) */
 
-@<Predecl...@>=
-static void unbucket(eight_bits);@/
-
-@ @c
+ at c
 static void
 unbucket(@t\1\1@> /* empties buckets having depth |d| */
 eight_bits d at t\2\2@>)
@@ -4552,6 +4535,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void unbucket(eight_bits);
+
 @ @<Sort and output...@>=
 sort_ptr=scrap_info; unbucket(1);
 while (sort_ptr>scrap_info) {
@@ -4651,10 +4636,7 @@
 prints them.
 @^recursion@>
 
-@<Predecl...@>=
-static void section_print(name_pointer);@/
-
-@ @c
+ at c
 static void
 section_print(@t\1\1@> /* print all section names in subtree |p| */
 name_pointer p at t\2\2@>)
@@ -4671,6 +4653,8 @@
   }
 }
 
+@ @<Predecl...@>=@+static void section_print(name_pointer);
+
 @ @<Output all the section names@>=section_print(root);
 
 @ Because on some systems the difference between two pointers is a |ptrdiff_t|



More information about the tex-live-commits mailing list.