texlive[67734] Build/source/texk/web2c: [CWEB] Purge 'init_p'.

commits+ascherer at tug.org commits+ascherer at tug.org
Wed Jul 26 11:36:25 CEST 2023


Revision: 67734
          http://tug.org/svn/texlive?view=revision&revision=67734
Author:   ascherer
Date:     2023-07-26 11:36:25 +0200 (Wed, 26 Jul 2023)
Log Message:
-----------
[CWEB] Purge 'init_p'.

This helper function had a non-trivial implementation in CWEAVE only.
The extra stuff for CTWILL is moved to 'init_node' with special
provisions for the 'name_dir' pointer.

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-bs.ch
    trunk/Build/source/texk/web2c/cwebdir/comm-w2c.ch
    trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h
    trunk/Build/source/texk/web2c/cwebdir/comm-w32.ch
    trunk/Build/source/texk/web2c/cwebdir/common.bux
    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/ctang-w32.ch
    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-w32.ch
    trunk/Build/source/texk/web2c/cwebdir/cweave.w

Modified: trunk/Build/source/texk/web2c/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ChangeLog	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/ChangeLog	2023-07-26 09:36:25 UTC (rev 67734)
@@ -1,3 +1,8 @@
+2023-06-26  Andreas Scherer  <https://ascherer.github.io>
+
+	* ctangleboot.cin,
+	* cwebboot.cin: Purge 'init_p'.
+
 2023-06-21  Andreas Scherer  <https://ascherer.github.io>
 
 	* ctangleboot.cin,

Modified: trunk/Build/source/texk/web2c/ctangleboot.cin
===================================================================
--- trunk/Build/source/texk/web2c/ctangleboot.cin	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/ctangleboot.cin	2023-07-26 09:36:25 UTC (rev 67734)
@@ -76,8 +76,9 @@
 #define llink link
 #define rlink dummy.Rlink
 #define root name_dir->rlink \
- \
 
+#define ilk dummy.Ilk \
+
 #define spotless 0
 #define harmless_message 1
 #define error_message 2
@@ -228,7 +229,7 @@
 extern boolean print_where;
 
 /*:10*//*11:*/
-#line 170 "cwebdir/comm-w2c.h"
+#line 171 "cwebdir/comm-w2c.h"
 
 typedef struct name_info{
 char*byte_start;
@@ -299,7 +300,7 @@
 
 #line 66 "cwebdir/ctang-w2c.ch"
 /*:19*//*31:*/
-#line 271 "cwebdir/ctangle.w"
+#line 267 "cwebdir/ctangle.w"
 
 typedef struct{
 eight_bits*byte_field;
@@ -323,12 +324,12 @@
 static eight_bits*tok_ptr;
 
 /*:20*//*26:*/
-#line 200 "cwebdir/ctangle.w"
+#line 196 "cwebdir/ctangle.w"
 
 static text_pointer last_unnamed;
 
 /*:26*//*32:*/
-#line 289 "cwebdir/ctangle.w"
+#line 285 "cwebdir/ctangle.w"
 
 static output_state stack[stack_size+2];
 static stack_pointer stack_end= stack+stack_size;
@@ -335,18 +336,18 @@
 static stack_pointer stack_ptr;
 
 /*:32*//*37:*/
-#line 361 "cwebdir/ctangle.w"
+#line 357 "cwebdir/ctangle.w"
 
 static int cur_val;
 
 /*:37*//*42:*/
-#line 453 "cwebdir/ctangle.w"
+#line 449 "cwebdir/ctangle.w"
 
 static eight_bits out_state;
 static boolean protect;
 
 /*:42*//*45:*/
-#line 484 "cwebdir/ctangle.w"
+#line 480 "cwebdir/ctangle.w"
 
 static name_pointer output_files[max_files];
 static name_pointer*cur_out_file,*end_output_files,*an_output_file;
@@ -354,33 +355,33 @@
 static char output_file_name[longest_name+1];
 
 /*:45*//*52:*/
-#line 583 "cwebdir/ctangle.w"
+#line 579 "cwebdir/ctangle.w"
 
 static boolean output_defs_seen= false;
 
 /*:52*//*57:*/
-#line 697 "cwebdir/ctangle.w"
+#line 693 "cwebdir/ctangle.w"
 
 static char translit[0200][translit_length];
 
 /*:57*//*62:*/
-#line 773 "cwebdir/ctangle.w"
+#line 769 "cwebdir/ctangle.w"
 
 static eight_bits ccode[256];
 
 /*:62*//*66:*/
-#line 833 "cwebdir/ctangle.w"
+#line 829 "cwebdir/ctangle.w"
 
 static boolean comment_continues= false;
 
 /*:66*//*68:*/
-#line 870 "cwebdir/ctangle.w"
+#line 866 "cwebdir/ctangle.w"
 
 static name_pointer cur_section_name;
 static boolean no_where;
 
 /*:68*//*82:*/
-#line 1187 "cwebdir/ctangle.w"
+#line 1183 "cwebdir/ctangle.w"
 
 static text_pointer cur_text;
 static eight_bits next_control;
@@ -404,7 +405,7 @@
 extern void reset_input(void);
 
 /*:9*//*12:*/
-#line 193 "cwebdir/comm-w2c.h"
+#line 194 "cwebdir/comm-w2c.h"
 
 extern name_pointer id_lookup(const char*,const char*,eight_bits);
 
@@ -416,7 +417,6 @@
 extern boolean names_match(name_pointer,const char*,size_t,eight_bits);
 
 extern void init_node(name_pointer);
-extern void init_p(name_pointer,eight_bits);
 
 /*:12*//*14:*/
 #line 219 "cwebdir/comm-w2c.h"
@@ -427,57 +427,57 @@
 extern void overflow(const char*);
 
 /*:14*//*30:*/
-#line 246 "cwebdir/ctangle.w"
+#line 242 "cwebdir/ctangle.w"
 static void store_two_bytes(sixteen_bits);
 
 /*:30*//*35:*/
-#line 325 "cwebdir/ctangle.w"
+#line 321 "cwebdir/ctangle.w"
 
 static void push_level(name_pointer);
 static void pop_level(boolean);
 
 /*:35*//*39:*/
-#line 398 "cwebdir/ctangle.w"
+#line 394 "cwebdir/ctangle.w"
 static void get_output(void);
 
 /*:39*//*44:*/
-#line 474 "cwebdir/ctangle.w"
+#line 470 "cwebdir/ctangle.w"
 static void flush_buffer(void);
 
 /*:44*//*49:*/
-#line 551 "cwebdir/ctangle.w"
+#line 547 "cwebdir/ctangle.w"
 static void phase_two(void);
 
 /*:49*//*53:*/
-#line 586 "cwebdir/ctangle.w"
+#line 582 "cwebdir/ctangle.w"
 
 static void output_defs(void);
 static void out_char(eight_bits);
 
 /*:53*//*65:*/
-#line 813 "cwebdir/ctangle.w"
+#line 809 "cwebdir/ctangle.w"
 
 static eight_bits skip_ahead(void);
 static boolean skip_comment(boolean);
 
 /*:65*//*70:*/
-#line 920 "cwebdir/ctangle.w"
+#line 916 "cwebdir/ctangle.w"
 static eight_bits get_next(void);
 
 /*:70*//*84:*/
-#line 1213 "cwebdir/ctangle.w"
+#line 1209 "cwebdir/ctangle.w"
 static void scan_repl(eight_bits);
 
 /*:84*//*91:*/
-#line 1405 "cwebdir/ctangle.w"
+#line 1401 "cwebdir/ctangle.w"
 static void scan_section(void);
 
 /*:91*//*99:*/
-#line 1482 "cwebdir/ctangle.w"
+#line 1478 "cwebdir/ctangle.w"
 static void phase_one(void);
 
 /*:99*//*101:*/
-#line 1515 "cwebdir/ctangle.w"
+#line 1511 "cwebdir/ctangle.w"
 static void skip_limbo(void);
 
 /*:101*/
@@ -506,16 +506,16 @@
 init_node(name_dir);
 
 /*:23*//*27:*/
-#line 203 "cwebdir/ctangle.w"
+#line 199 "cwebdir/ctangle.w"
 last_unnamed= text_info;text_info->text_link= macro;
 
 /*:27*//*46:*/
-#line 494 "cwebdir/ctangle.w"
+#line 490 "cwebdir/ctangle.w"
 
 cur_out_file= end_output_files= output_files+max_files;
 
 /*:46*//*58:*/
-#line 700 "cwebdir/ctangle.w"
+#line 696 "cwebdir/ctangle.w"
 
 {
 int i;
@@ -524,7 +524,7 @@
 
 #line 178 "cwebdir/ctang-w2c.ch"
 /*:58*//*63:*/
-#line 776 "cwebdir/ctangle.w"
+#line 772 "cwebdir/ctangle.w"
 {
 int c;
 for(c= 0;c<256;c++)ccode[c]= ignore;
@@ -544,7 +544,7 @@
 ccode['\'']= ord;
 
 /*:63*//*78:*/
-#line 1108 "cwebdir/ctangle.w"
+#line 1104 "cwebdir/ctangle.w"
 section_text[0]= ' ';
 
 /*:78*//*117:*/
@@ -577,7 +577,7 @@
 }
 
 /*:24*//*25:*/
-#line 170 "cwebdir/ctangle.w"
+#line 168 "cwebdir/ctangle.w"
 
 void
 init_node(
@@ -585,11 +585,9 @@
 {
 node->equiv= (void*)text_info;
 }
-void
-init_p(name_pointer p,eight_bits t){(void)p;(void)t;}
 
 /*:25*//*29:*/
-#line 236 "cwebdir/ctangle.w"
+#line 232 "cwebdir/ctangle.w"
 
 static void
 store_two_bytes(
@@ -597,13 +595,13 @@
 {
 #line 73 "cwebdir/ctang-w2c.ch"
 if(tok_ptr+2> tok_mem_end)overflow(_("token"));
-#line 242 "cwebdir/ctangle.w"
+#line 238 "cwebdir/ctangle.w"
 *tok_ptr++= x>>8;
 *tok_ptr++= x&0377;
 }
 
 /*:29*//*34:*/
-#line 311 "cwebdir/ctangle.w"
+#line 307 "cwebdir/ctangle.w"
 
 static void
 push_level(
@@ -611,7 +609,7 @@
 {
 #line 79 "cwebdir/ctang-w2c.ch"
 if(stack_ptr==stack_end)overflow(_("stack"));
-#line 317 "cwebdir/ctangle.w"
+#line 313 "cwebdir/ctangle.w"
 *stack_ptr= cur_state;
 stack_ptr++;
 if(p!=NULL){
@@ -621,7 +619,7 @@
 }
 
 /*:34*//*36:*/
-#line 333 "cwebdir/ctangle.w"
+#line 329 "cwebdir/ctangle.w"
 
 static void
 pop_level(
@@ -636,7 +634,7 @@
 }
 
 /*:36*//*38:*/
-#line 368 "cwebdir/ctangle.w"
+#line 364 "cwebdir/ctangle.w"
 
 static void
 get_output(void)
@@ -659,7 +657,7 @@
 case 0:cur_val= (int)a;out_char(identifier);break;
 case 1:if(a==output_defs_flag)output_defs();
 else/*40:*/
-#line 403 "cwebdir/ctangle.w"
+#line 399 "cwebdir/ctangle.w"
 
 {
 a-= 024000;
@@ -667,7 +665,7 @@
 else if(a!=0){
 #line 85 "cwebdir/ctang-w2c.ch"
 fputs(_("\n! Not present: <"),stdout);
-#line 409 "cwebdir/ctangle.w"
+#line 405 "cwebdir/ctangle.w"
 print_section_name(a+name_dir);err_print(">");
 
 }
@@ -675,7 +673,7 @@
 }
 
 /*:40*/
-#line 389 "cwebdir/ctangle.w"
+#line 385 "cwebdir/ctangle.w"
 
 break;
 default:cur_val= (int)a-050000;
@@ -686,7 +684,7 @@
 }
 
 /*:38*//*43:*/
-#line 461 "cwebdir/ctangle.w"
+#line 457 "cwebdir/ctangle.w"
 
 static void
 flush_buffer(void)
@@ -701,7 +699,7 @@
 }
 
 /*:43*//*48:*/
-#line 513 "cwebdir/ctangle.w"
+#line 509 "cwebdir/ctangle.w"
 
 static void
 phase_two(void){
@@ -709,27 +707,27 @@
 web_file_open= false;
 cur_line= 1;
 /*33:*/
-#line 300 "cwebdir/ctangle.w"
+#line 296 "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_section= 0;
 
 /*:33*/
-#line 519 "cwebdir/ctangle.w"
+#line 515 "cwebdir/ctangle.w"
 
 /*51:*/
-#line 579 "cwebdir/ctangle.w"
+#line 575 "cwebdir/ctangle.w"
 
 if(!output_defs_seen)
 output_defs();
 
 /*:51*/
-#line 520 "cwebdir/ctangle.w"
+#line 516 "cwebdir/ctangle.w"
 
 if(text_info->text_link==macro&&cur_out_file==end_output_files){
 #line 97 "cwebdir/ctang-w2c.ch"
 fputs(_("\n! No program text was specified."),stdout);mark_harmless;
-#line 523 "cwebdir/ctangle.w"
+#line 519 "cwebdir/ctangle.w"
 
 }
 else{
@@ -737,7 +735,7 @@
 if(show_progress){
 #line 103 "cwebdir/ctang-w2c.ch"
 printf(_("\nWriting the output file (%s):"),C_file_name);
-#line 529 "cwebdir/ctangle.w"
+#line 525 "cwebdir/ctangle.w"
 update_terminal;
 }
 }
@@ -745,7 +743,7 @@
 if(show_progress){
 #line 109 "cwebdir/ctang-w2c.ch"
 fputs(_("\nWriting the output files:"),stdout);
-#line 535 "cwebdir/ctangle.w"
+#line 531 "cwebdir/ctangle.w"
 
 printf(" (%s)",C_file_name);
 update_terminal;
@@ -1008,22 +1006,22 @@
 }
 if(check_for_change)
 strcpy(check_file_name,"");
-#line 574 "cwebdir/ctangle.w"
+#line 570 "cwebdir/ctangle.w"
 
 /*:50*/
-#line 543 "cwebdir/ctangle.w"
+#line 539 "cwebdir/ctangle.w"
 
 if(show_happiness){
 if(show_progress)new_line;
 #line 115 "cwebdir/ctang-w2c.ch"
 fputs(_("Done."),stdout);
-#line 547 "cwebdir/ctangle.w"
+#line 543 "cwebdir/ctangle.w"
 }
 }
 }
 
 /*:48*//*54:*/
-#line 595 "cwebdir/ctangle.w"
+#line 591 "cwebdir/ctangle.w"
 
 static void
 output_defs(void)
@@ -1050,7 +1048,7 @@
 }
 #line 172 "cwebdir/ctang-w2c.ch"
 else if(a<050000)confusion(_("macro defs have strange char"));
-#line 620 "cwebdir/ctangle.w"
+#line 616 "cwebdir/ctangle.w"
 else{
 cur_val= (int)a-050000;cur_section= (sixteen_bits)cur_val;
 out_char(section_number);
@@ -1065,7 +1063,7 @@
 }
 
 /*:54*//*55:*/
-#line 638 "cwebdir/ctangle.w"
+#line 634 "cwebdir/ctangle.w"
 
 static void
 out_char(
@@ -1080,7 +1078,7 @@
 /*59:*/
 #line 204 "cwebdir/ctang-w2c.ch"
 
-#line 707 "cwebdir/ctangle.w"
+#line 703 "cwebdir/ctangle.w"
 case identifier:
 if(out_state==num_or_id)C_putc(' ');
 for(j= (cur_val+name_dir)->byte_start,k= (cur_val+name_dir+1)->byte_start;
@@ -1096,14 +1094,14 @@
 C_printf("%s",translit[(eight_bits)(*j)-0200]);
 }
 else C_putc(*j);
-#line 714 "cwebdir/ctangle.w"
+#line 710 "cwebdir/ctangle.w"
 out_state= num_or_id;break;
 
 /*:59*/
-#line 649 "cwebdir/ctangle.w"
+#line 645 "cwebdir/ctangle.w"
 
 /*60:*/
-#line 716 "cwebdir/ctangle.w"
+#line 712 "cwebdir/ctangle.w"
 
 case section_number:
 if(cur_val> 0)C_printf("/*%d:*/",cur_val);
@@ -1130,10 +1128,10 @@
 break;
 
 /*:60*/
-#line 650 "cwebdir/ctangle.w"
+#line 646 "cwebdir/ctangle.w"
 
 /*56:*/
-#line 668 "cwebdir/ctangle.w"
+#line 664 "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;
@@ -1154,7 +1152,7 @@
 break;
 
 /*:56*/
-#line 651 "cwebdir/ctangle.w"
+#line 647 "cwebdir/ctangle.w"
 
 case'=':case'>':C_putc(cur_char);C_putc(' ');
 out_state= normal;break;
@@ -1173,7 +1171,7 @@
 }
 
 /*:55*//*64:*/
-#line 797 "cwebdir/ctangle.w"
+#line 793 "cwebdir/ctangle.w"
 
 static eight_bits
 skip_ahead(void)
@@ -1191,7 +1189,7 @@
 }
 
 /*:64*//*67:*/
-#line 836 "cwebdir/ctangle.w"
+#line 832 "cwebdir/ctangle.w"
 
 static boolean skip_comment(
 boolean is_long_comment)
@@ -1204,7 +1202,7 @@
 else{
 #line 227 "cwebdir/ctang-w2c.ch"
 err_print(_("! Input ended in mid-comment"));
-#line 847 "cwebdir/ctangle.w"
+#line 843 "cwebdir/ctangle.w"
 
 return comment_continues= false;
 }
@@ -1219,7 +1217,7 @@
 if(ccode[(eight_bits)*loc]==new_section){
 #line 233 "cwebdir/ctang-w2c.ch"
 err_print(_("! Section name ended in mid-comment"));loc--;
-#line 860 "cwebdir/ctangle.w"
+#line 856 "cwebdir/ctangle.w"
 
 return comment_continues= false;
 }
@@ -1229,7 +1227,7 @@
 }
 
 /*:67*//*69:*/
-#line 877 "cwebdir/ctangle.w"
+#line 873 "cwebdir/ctangle.w"
 
 static eight_bits
 get_next(void)
@@ -1243,7 +1241,7 @@
 else if(print_where&&!no_where){
 print_where= false;
 /*85:*/
-#line 1223 "cwebdir/ctangle.w"
+#line 1219 "cwebdir/ctangle.w"
 
 {
 eight_bits a;
@@ -1260,7 +1258,7 @@
 }
 
 /*:85*/
-#line 889 "cwebdir/ctangle.w"
+#line 885 "cwebdir/ctangle.w"
 
 }
 else return(eight_bits)'\n';
@@ -1273,7 +1271,7 @@
 }
 loc++;
 if(xisdigit(c)||c=='.')/*73:*/
-#line 961 "cwebdir/ctangle.w"
+#line 957 "cwebdir/ctangle.w"
 {
 boolean hex_flag= false;
 id_first= loc-1;
@@ -1307,13 +1305,13 @@
 }
 
 /*:73*/
-#line 900 "cwebdir/ctangle.w"
+#line 896 "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 998 "cwebdir/ctangle.w"
+#line 994 "cwebdir/ctangle.w"
 {
 char delim= (char)c;
 id_first= section_text+1;
@@ -1327,13 +1325,13 @@
 if(*(limit-1)!='\\'){
 #line 239 "cwebdir/ctang-w2c.ch"
 err_print(_("! String didn't end"));loc= limit;break;
-#line 1010 "cwebdir/ctangle.w"
+#line 1006 "cwebdir/ctangle.w"
 
 }
 if(get_line()==false){
 #line 245 "cwebdir/ctang-w2c.ch"
 err_print(_("! Input ended in middle of string"));loc= buffer;break;
-#line 1014 "cwebdir/ctangle.w"
+#line 1010 "cwebdir/ctangle.w"
 
 }
 else if(++id_loc<=section_text_end)*id_loc= '\n';
@@ -1353,7 +1351,7 @@
 if(id_loc>=section_text_end){
 #line 251 "cwebdir/ctang-w2c.ch"
 fputs(_("\n! String too long: "),stdout);
-#line 1032 "cwebdir/ctangle.w"
+#line 1028 "cwebdir/ctangle.w"
 
 term_write(section_text+1,25);
 err_print("...");
@@ -1363,11 +1361,11 @@
 }
 
 /*:74*/
-#line 904 "cwebdir/ctangle.w"
+#line 900 "cwebdir/ctangle.w"
 
 else if(isalpha((int)c)||isxalpha(c)||ishigh(c))
 /*72:*/
-#line 952 "cwebdir/ctangle.w"
+#line 948 "cwebdir/ctangle.w"
 {
 id_first= --loc;
 do
@@ -1378,16 +1376,16 @@
 }
 
 /*:72*/
-#line 906 "cwebdir/ctangle.w"
+#line 902 "cwebdir/ctangle.w"
 
 else if(c=='@')/*75:*/
-#line 1043 "cwebdir/ctangle.w"
+#line 1039 "cwebdir/ctangle.w"
 
 switch(c= ccode[(eight_bits)*loc++]){
 case ignore:continue;
 #line 257 "cwebdir/ctang-w2c.ch"
 case translit_code:err_print(_("! Use @l in limbo only"));continue;
-#line 1047 "cwebdir/ctangle.w"
+#line 1043 "cwebdir/ctangle.w"
 
 case control_text:while((c= skip_ahead())=='@');
 
@@ -1394,29 +1392,29 @@
 if(*(loc-1)!='>')
 #line 263 "cwebdir/ctang-w2c.ch"
 err_print(_("! Double @ should be used in control text"));
-#line 1052 "cwebdir/ctangle.w"
+#line 1048 "cwebdir/ctangle.w"
 
 continue;
 case section_name:
 cur_section_name_char= *(loc-1);
 /*77:*/
-#line 1088 "cwebdir/ctangle.w"
+#line 1084 "cwebdir/ctangle.w"
 {
 char*k= section_text;
 /*79:*/
-#line 1110 "cwebdir/ctangle.w"
+#line 1106 "cwebdir/ctangle.w"
 
 while(true){
 if(loc> limit&&get_line()==false){
 #line 281 "cwebdir/ctang-w2c.ch"
 err_print(_("! Input ended in section name"));
-#line 1114 "cwebdir/ctangle.w"
+#line 1110 "cwebdir/ctangle.w"
 
 loc= buffer+1;break;
 }
 c= (eight_bits)*loc;
 /*80:*/
-#line 1133 "cwebdir/ctangle.w"
+#line 1129 "cwebdir/ctangle.w"
 
 if(c=='@'){
 c= (eight_bits)*(loc+1);
@@ -1426,13 +1424,13 @@
 if(ccode[(eight_bits)c]==new_section){
 #line 293 "cwebdir/ctang-w2c.ch"
 err_print(_("! Section name didn't end"));break;
-#line 1141 "cwebdir/ctangle.w"
+#line 1137 "cwebdir/ctangle.w"
 
 }
 if(ccode[(eight_bits)c]==section_name){
 #line 299 "cwebdir/ctang-w2c.ch"
 err_print(_("! Nesting of section names not allowed"));break;
-#line 1145 "cwebdir/ctangle.w"
+#line 1141 "cwebdir/ctangle.w"
 
 }
 *(++k)= '@';loc++;
@@ -1439,7 +1437,7 @@
 }
 
 /*:80*/
-#line 1118 "cwebdir/ctangle.w"
+#line 1114 "cwebdir/ctangle.w"
 
 loc++;if(k<section_text_end)k++;
 if(xisspace(c)){
@@ -1450,7 +1448,7 @@
 if(k>=section_text_end){
 #line 287 "cwebdir/ctang-w2c.ch"
 fputs(_("\n! Section name too long: "),stdout);
-#line 1127 "cwebdir/ctangle.w"
+#line 1123 "cwebdir/ctangle.w"
 
 term_write(section_text+1,25);
 printf("...");mark_harmless;
@@ -1458,7 +1456,7 @@
 if(*k==' '&&k> section_text)k--;
 
 /*:79*/
-#line 1090 "cwebdir/ctangle.w"
+#line 1086 "cwebdir/ctangle.w"
 
 if(k-section_text> 3&&strncmp(k-2,"...",3)==0)
 cur_section_name= section_lookup(section_text+1,k-3,true);
@@ -1467,7 +1465,7 @@
 
 if(cur_section_name_char=='(')
 /*47:*/
-#line 498 "cwebdir/ctangle.w"
+#line 494 "cwebdir/ctangle.w"
 
 {
 for(an_output_file= cur_out_file;
@@ -1478,36 +1476,36 @@
 *--cur_out_file= cur_section_name;
 #line 91 "cwebdir/ctang-w2c.ch"
 else overflow(_("output files"));
-#line 507 "cwebdir/ctangle.w"
+#line 503 "cwebdir/ctangle.w"
 }
 }
 
 /*:47*/
-#line 1098 "cwebdir/ctangle.w"
+#line 1094 "cwebdir/ctangle.w"
 
 return section_name;
 }
 
 /*:77*/
-#line 1056 "cwebdir/ctangle.w"
+#line 1052 "cwebdir/ctangle.w"
 
 case string:/*81:*/
-#line 1155 "cwebdir/ctangle.w"
+#line 1151 "cwebdir/ctangle.w"
 
 id_first= loc++;*(limit+1)= '@';*(limit+2)= '>';
 while(*loc!='@'||*(loc+1)!='>')loc++;
 #line 305 "cwebdir/ctang-w2c.ch"
 if(loc>=limit)err_print(_("! Verbatim string didn't end"));
-#line 1159 "cwebdir/ctangle.w"
+#line 1155 "cwebdir/ctangle.w"
 
 id_loc= loc;loc+= 2;
 return string;
 
 /*:81*/
-#line 1057 "cwebdir/ctangle.w"
+#line 1053 "cwebdir/ctangle.w"
 
 case ord:/*76:*/
-#line 1068 "cwebdir/ctangle.w"
+#line 1064 "cwebdir/ctangle.w"
 
 id_first= loc;
 if(*loc=='\\')
@@ -1517,7 +1515,7 @@
 if(*(loc+1)!='@')
 #line 269 "cwebdir/ctang-w2c.ch"
 err_print(_("! Double @ should be used in ASCII constant"));
-#line 1076 "cwebdir/ctangle.w"
+#line 1072 "cwebdir/ctangle.w"
 
 else loc++;
 }
@@ -1525,7 +1523,7 @@
 if(loc> limit){
 #line 275 "cwebdir/ctang-w2c.ch"
 err_print(_("! String didn't end"));loc= limit-1;break;
-#line 1082 "cwebdir/ctangle.w"
+#line 1078 "cwebdir/ctangle.w"
 
 }
 }
@@ -1533,13 +1531,13 @@
 return ord;
 
 /*:76*/
-#line 1058 "cwebdir/ctangle.w"
+#line 1054 "cwebdir/ctangle.w"
 
 default:return c;
 }
 
 /*:75*/
-#line 907 "cwebdir/ctangle.w"
+#line 903 "cwebdir/ctangle.w"
 
 else if(xisspace(c)){
 if(!preprocessing||loc> limit)continue;
@@ -1549,7 +1547,7 @@
 }
 else if(c=='#'&&loc==buffer+1)preprocessing= true;
 mistake:/*71:*/
-#line 929 "cwebdir/ctangle.w"
+#line 925 "cwebdir/ctangle.w"
 
 switch(c){
 case'+':if(*loc=='+')compress(plus_plus);break;
@@ -1574,7 +1572,7 @@
 }
 
 /*:71*/
-#line 915 "cwebdir/ctangle.w"
+#line 911 "cwebdir/ctangle.w"
 
 return c;
 }
@@ -1581,7 +1579,7 @@
 }
 
 /*:69*//*83:*/
-#line 1191 "cwebdir/ctangle.w"
+#line 1187 "cwebdir/ctangle.w"
 
 static void
 scan_repl(
@@ -1589,7 +1587,7 @@
 {
 sixteen_bits a;
 if(t==section_name)/*85:*/
-#line 1223 "cwebdir/ctangle.w"
+#line 1219 "cwebdir/ctangle.w"
 
 {
 eight_bits a;
@@ -1606,11 +1604,11 @@
 }
 
 /*:85*/
-#line 1197 "cwebdir/ctangle.w"
+#line 1193 "cwebdir/ctangle.w"
 
 while(true)switch(a= get_next()){
 /*86:*/
-#line 1238 "cwebdir/ctangle.w"
+#line 1234 "cwebdir/ctangle.w"
 
 case identifier:store_id(a);
 if(*buffer=='#'&&(
@@ -1623,7 +1621,7 @@
 case section_name:if(t!=section_name)goto done;
 else{
 /*87:*/
-#line 1279 "cwebdir/ctangle.w"
+#line 1275 "cwebdir/ctangle.w"
 {
 char*try_loc= loc;
 while(*try_loc==' '&&try_loc<limit)try_loc++;
@@ -1631,7 +1629,7 @@
 while(*try_loc==' '&&try_loc<limit)try_loc++;
 #line 341 "cwebdir/ctang-w2c.ch"
 if(*try_loc=='=')err_print(_("! Missing `@ ' before a named section"));
-#line 1285 "cwebdir/ctangle.w"
+#line 1281 "cwebdir/ctangle.w"
 
 
 
@@ -1638,13 +1636,13 @@
 }
 
 /*:87*/
-#line 1249 "cwebdir/ctangle.w"
+#line 1245 "cwebdir/ctangle.w"
 
 a= cur_section_name-name_dir;
 app_repl((a/0400)+0250);
 app_repl(a%0400);
 /*85:*/
-#line 1223 "cwebdir/ctangle.w"
+#line 1219 "cwebdir/ctangle.w"
 
 {
 eight_bits a;
@@ -1661,13 +1659,13 @@
 }
 
 /*:85*/
-#line 1253 "cwebdir/ctangle.w"
+#line 1249 "cwebdir/ctangle.w"
 
 }
 break;
 #line 329 "cwebdir/ctang-w2c.ch"
 case output_defs_code:if(t!=section_name)err_print(_("! Misplaced @h"));
-#line 1257 "cwebdir/ctangle.w"
+#line 1253 "cwebdir/ctangle.w"
 
 else{
 output_defs_seen= true;
@@ -1675,7 +1673,7 @@
 app_repl((a/0400)+0200);
 app_repl(a%0400);
 /*85:*/
-#line 1223 "cwebdir/ctangle.w"
+#line 1219 "cwebdir/ctangle.w"
 
 {
 eight_bits a;
@@ -1692,13 +1690,13 @@
 }
 
 /*:85*/
-#line 1263 "cwebdir/ctangle.w"
+#line 1259 "cwebdir/ctangle.w"
 
 }
 break;
 case constant:case string:
 /*88:*/
-#line 1296 "cwebdir/ctangle.w"
+#line 1292 "cwebdir/ctangle.w"
 
 app_repl(a);
 while(id_first<id_loc){
@@ -1706,7 +1704,7 @@
 if(*(id_first+1)=='@')id_first++;
 #line 347 "cwebdir/ctang-w2c.ch"
 else err_print(_("! Double @ should be used in string"));
-#line 1302 "cwebdir/ctangle.w"
+#line 1298 "cwebdir/ctangle.w"
 
 }
 else if(a==constant&&*id_first=='\''&&!keep_digit_separators)
@@ -1716,12 +1714,12 @@
 app_repl(a);
 
 /*:88*/
-#line 1267 "cwebdir/ctangle.w"
+#line 1263 "cwebdir/ctangle.w"
 
 break;
 case ord:
 /*89:*/
-#line 1314 "cwebdir/ctangle.w"
+#line 1310 "cwebdir/ctangle.w"
 {
 int c= (int)((eight_bits)*id_first);
 if(c=='\\'){
@@ -1760,7 +1758,7 @@
 case'\"':c= '\"';break;
 #line 353 "cwebdir/ctang-w2c.ch"
 default:err_print(_("! Unrecognized escape sequence"));
-#line 1351 "cwebdir/ctangle.w"
+#line 1347 "cwebdir/ctangle.w"
 
 }
 }
@@ -1773,7 +1771,7 @@
 }
 
 /*:89*/
-#line 1270 "cwebdir/ctangle.w"
+#line 1266 "cwebdir/ctangle.w"
 
 break;
 case definition:case format_code:case begin_C:if(t!=section_name)goto done;
@@ -1780,13 +1778,13 @@
 else{
 #line 335 "cwebdir/ctang-w2c.ch"
 err_print(_("! @d, @f and @c are ignored in C text"));continue;
-#line 1275 "cwebdir/ctangle.w"
+#line 1271 "cwebdir/ctangle.w"
 
 }
 case new_section:goto done;
 
 /*:86*/
-#line 1202 "cwebdir/ctangle.w"
+#line 1198 "cwebdir/ctangle.w"
 
 case')':app_repl(a);
 if(t==macro)app_repl(' ');
@@ -1796,12 +1794,12 @@
 done:next_control= (eight_bits)a;
 #line 323 "cwebdir/ctang-w2c.ch"
 if(text_ptr> text_info_end)overflow(_("text"));
-#line 1210 "cwebdir/ctangle.w"
+#line 1206 "cwebdir/ctangle.w"
 cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr;
 }
 
 /*:83*//*90:*/
-#line 1372 "cwebdir/ctangle.w"
+#line 1368 "cwebdir/ctangle.w"
 
 static void
 scan_section(void)
@@ -1816,7 +1814,7 @@
 next_control= ignore;
 while(true){
 /*92:*/
-#line 1413 "cwebdir/ctangle.w"
+#line 1409 "cwebdir/ctangle.w"
 
 while(next_control<definition)
 
@@ -1825,17 +1823,17 @@
 }
 
 /*:92*/
-#line 1386 "cwebdir/ctangle.w"
+#line 1382 "cwebdir/ctangle.w"
 
 if(next_control==definition){
 /*93:*/
-#line 1420 "cwebdir/ctangle.w"
+#line 1416 "cwebdir/ctangle.w"
 
 while((next_control= get_next())=='\n');
 if(next_control!=identifier){
 #line 359 "cwebdir/ctang-w2c.ch"
 err_print(_("! Definition flushed, must start with identifier"));
-#line 1424 "cwebdir/ctangle.w"
+#line 1420 "cwebdir/ctangle.w"
 
 continue;
 }
@@ -1847,7 +1845,7 @@
 cur_text->text_link= macro;
 
 /*:93*/
-#line 1388 "cwebdir/ctangle.w"
+#line 1384 "cwebdir/ctangle.w"
 
 continue;
 }
@@ -1857,7 +1855,7 @@
 if(next_control==section_name){
 p= cur_section_name;
 /*94:*/
-#line 1442 "cwebdir/ctangle.w"
+#line 1438 "cwebdir/ctangle.w"
 
 while((next_control= get_next())=='+');
 if(next_control!='='&&next_control!=eq_eq)
@@ -1864,7 +1862,7 @@
 continue;
 
 /*:94*/
-#line 1396 "cwebdir/ctangle.w"
+#line 1392 "cwebdir/ctangle.w"
 
 break;
 }
@@ -1872,20 +1870,20 @@
 }
 no_where= print_where= false;
 /*95:*/
-#line 1447 "cwebdir/ctangle.w"
+#line 1443 "cwebdir/ctangle.w"
 
 /*96:*/
-#line 1452 "cwebdir/ctangle.w"
+#line 1448 "cwebdir/ctangle.w"
 
 store_two_bytes((sixteen_bits)(0150000+section_count));
 
 
 /*:96*/
-#line 1448 "cwebdir/ctangle.w"
+#line 1444 "cwebdir/ctangle.w"
 
 scan_repl(section_name);
 /*97:*/
-#line 1456 "cwebdir/ctangle.w"
+#line 1452 "cwebdir/ctangle.w"
 
 if(p==name_dir||p==NULL){
 last_unnamed->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1902,16 +1900,16 @@
 
 
 /*:97*/
-#line 1450 "cwebdir/ctangle.w"
+#line 1446 "cwebdir/ctangle.w"
 
 
 /*:95*/
-#line 1402 "cwebdir/ctangle.w"
+#line 1398 "cwebdir/ctangle.w"
 
 }
 
 /*:90*//*98:*/
-#line 1471 "cwebdir/ctangle.w"
+#line 1467 "cwebdir/ctangle.w"
 
 static void
 phase_one(void){
@@ -1924,7 +1922,7 @@
 }
 
 /*:98*//*100:*/
-#line 1487 "cwebdir/ctangle.w"
+#line 1483 "cwebdir/ctangle.w"
 
 static void
 skip_limbo(void)
@@ -1938,7 +1936,7 @@
 switch(ccode[(eight_bits)c]){
 case new_section:return;
 case translit_code:/*102:*/
-#line 1517 "cwebdir/ctangle.w"
+#line 1513 "cwebdir/ctangle.w"
 
 while(xisspace(*loc)&&loc<limit)loc++;
 loc+= 3;
@@ -1946,7 +1944,7 @@
 ||(*(loc-3)>='0'&&*(loc-3)<='7')||!xisspace(*(loc-1)))
 #line 379 "cwebdir/ctang-w2c.ch"
 err_print(_("! Improper hex number following @l"));
-#line 1523 "cwebdir/ctangle.w"
+#line 1519 "cwebdir/ctangle.w"
 
 else{
 unsigned int i;
@@ -1958,7 +1956,7 @@
 if(loc-beg>=translit_length)
 #line 385 "cwebdir/ctang-w2c.ch"
 err_print(_("! Replacement string in @l too long"));
-#line 1533 "cwebdir/ctangle.w"
+#line 1529 "cwebdir/ctangle.w"
 
 else{
 strncpy(translit[i-0200],beg,(size_t)(loc-beg));
@@ -1967,7 +1965,7 @@
 }
 
 /*:102*/
-#line 1499 "cwebdir/ctangle.w"
+#line 1495 "cwebdir/ctangle.w"
 break;
 case format_code:case'@':break;
 case control_text:if(c=='q'||c=='Q'){
@@ -1975,13 +1973,13 @@
 if(*(loc-1)!='>')
 #line 365 "cwebdir/ctang-w2c.ch"
 err_print(_("! Double @ should be used in control text"));
-#line 1505 "cwebdir/ctangle.w"
+#line 1501 "cwebdir/ctangle.w"
 
 break;
 #line 372 "cwebdir/ctang-w2c.ch"
 }/* otherwise fall through */
 default:err_print(_("! Double @ should be used in limbo"));
-#line 1509 "cwebdir/ctangle.w"
+#line 1505 "cwebdir/ctangle.w"
 
 }
 }
@@ -1989,7 +1987,7 @@
 }
 
 /*:100*//*103:*/
-#line 1543 "cwebdir/ctangle.w"
+#line 1539 "cwebdir/ctangle.w"
 
 void
 print_stats(void){
@@ -2002,7 +2000,7 @@
 printf(_("%td bytes (out of %ld)\n"),
 (ptrdiff_t)(byte_ptr-byte_mem),(long)max_bytes);
 printf(_("%td tokens (out of %ld)\n"),
-#line 1554 "cwebdir/ctangle.w"
+#line 1550 "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	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebboot.cin	2023-07-26 09:36:25 UTC (rev 67734)
@@ -26,20 +26,20 @@
 #line 78 "cwebdir/comm-w2c.h"
 
 /*:4*//*91:*/
-#line 733 "cwebdir/comm-w2c.ch"
+#line 739 "cwebdir/comm-w2c.ch"
 
 #if HAVE_GETTEXT
 #include <locale.h>  
 #else
-#line 737 "cwebdir/comm-w2c.ch"
+#line 743 "cwebdir/comm-w2c.ch"
 #define setlocale(a,b) ""
 #define bindtextdomain(a,b) ""
 #define textdomain(a) ""
 #endif
-#line 741 "cwebdir/comm-w2c.ch"
+#line 747 "cwebdir/comm-w2c.ch"
 
 /*:91*//*93:*/
-#line 780 "cwebdir/comm-w2c.ch"
+#line 786 "cwebdir/comm-w2c.ch"
 
 #include <kpathsea/kpathsea.h>  
 
@@ -47,7 +47,7 @@
 #include <lib/lib.h>  
 
 /*:93*//*96:*/
-#line 817 "cwebdir/comm-w2c.ch"
+#line 823 "cwebdir/comm-w2c.ch"
 
 #define CWEB
 #include "help.h" 
@@ -100,8 +100,9 @@
 #define llink link
 #define rlink dummy.Rlink
 #define root name_dir->rlink \
- \
 
+#define ilk dummy.Ilk \
+
 #define spotless 0
 #define harmless_message 1
 #define error_message 2
@@ -230,7 +231,7 @@
 extern boolean print_where;
 
 /*:9*//*10:*/
-#line 170 "cwebdir/comm-w2c.h"
+#line 171 "cwebdir/comm-w2c.h"
 
 typedef struct name_info{
 char*byte_start;
@@ -369,12 +370,12 @@
 hash_pointer h;
 
 /*:46*//*65:*/
-#line 1003 "cwebdir/common.w"
+#line 1004 "cwebdir/common.w"
 
 int history= spotless;
 
 /*:65*//*73:*/
-#line 1126 "cwebdir/common.w"
+#line 1127 "cwebdir/common.w"
 
 int argc;
 char**argv;
@@ -381,33 +382,33 @@
 char C_file_name[max_file_name_length];
 char tex_file_name[max_file_name_length];
 char idx_file_name[max_file_name_length];
-#line 448 "cwebdir/comm-w2c.ch"
+#line 454 "cwebdir/comm-w2c.ch"
 char scn_file_name[max_file_name_length];
 char check_file_name[max_file_name_length];
-#line 1133 "cwebdir/common.w"
+#line 1134 "cwebdir/common.w"
 boolean flags[128];
 
 /*:73*//*83:*/
-#line 1267 "cwebdir/common.w"
+#line 1268 "cwebdir/common.w"
 
 FILE*C_file;
 FILE*tex_file;
 FILE*idx_file;
 FILE*scn_file;
-#line 578 "cwebdir/comm-w2c.ch"
+#line 584 "cwebdir/comm-w2c.ch"
 FILE*active_file;
 FILE*check_file;
-#line 1273 "cwebdir/common.w"
+#line 1274 "cwebdir/common.w"
 
-#line 595 "cwebdir/comm-w2c.ch"
+#line 601 "cwebdir/comm-w2c.ch"
 /*:83*//*86:*/
-#line 623 "cwebdir/comm-w2c.ch"
+#line 629 "cwebdir/comm-w2c.ch"
 
 const char*use_language= "";
 
 
 /*:86*//*87:*/
-#line 636 "cwebdir/comm-w2c.ch"
+#line 642 "cwebdir/comm-w2c.ch"
 
 char cb_banner[max_banner];
 string texmf_locale;
@@ -414,7 +415,7 @@
 #ifndef SEPARATORS
 #define SEPARATORS "://"
 #endif
-#line 642 "cwebdir/comm-w2c.ch"
+#line 648 "cwebdir/comm-w2c.ch"
  char separators[]= SEPARATORS;
 
 /*:87*/
@@ -436,7 +437,7 @@
 extern void reset_input(void);
 
 /*:8*//*11:*/
-#line 193 "cwebdir/comm-w2c.h"
+#line 194 "cwebdir/comm-w2c.h"
 
 extern name_pointer id_lookup(const char*,const char*,eight_bits);
 
@@ -448,7 +449,6 @@
 extern boolean names_match(name_pointer,const char*,size_t,eight_bits);
 
 extern void init_node(name_pointer);
-extern void init_p(name_pointer,eight_bits);
 
 /*:11*//*13:*/
 #line 219 "cwebdir/comm-w2c.h"
@@ -471,7 +471,7 @@
 static void check_change(void);
 
 /*:33*//*55:*/
-#line 764 "cwebdir/common.w"
+#line 765 "cwebdir/common.w"
 
 static int web_strcmp(char*,size_t,char*,size_t);
 static name_pointer add_section_name(name_pointer,int,char*,char*,boolean);
@@ -478,16 +478,16 @@
 static void extend_section_name(name_pointer,char*,char*,boolean);
 
 /*:55*//*64:*/
-#line 991 "cwebdir/common.w"
+#line 992 "cwebdir/common.w"
 static int section_name_cmp(char**,size_t,name_pointer);
 
 /*:64*//*76:*/
-#line 1186 "cwebdir/common.w"
+#line 1187 "cwebdir/common.w"
 static void scan_args(void);
 
-#line 508 "cwebdir/comm-w2c.ch"
+#line 514 "cwebdir/comm-w2c.ch"
 /*:76*//*98:*/
-#line 830 "cwebdir/comm-w2c.ch"
+#line 836 "cwebdir/comm-w2c.ch"
 
 static void cb_usage(const_string str);
 static void cb_usagehelp(const_string*message);
@@ -520,7 +520,7 @@
 #line 78 "cwebdir/comm-w2c.ch"
 
 /*94:*/
-#line 792 "cwebdir/comm-w2c.ch"
+#line 798 "cwebdir/comm-w2c.ch"
 
 kpse_set_program_name(argv[0],"cweb");
 
@@ -529,7 +529,7 @@
 
 #line 85 "cwebdir/comm-w2c.ch"
 /*92:*/
-#line 742 "cwebdir/comm-w2c.ch"
+#line 748 "cwebdir/comm-w2c.ch"
 
 setlocale(LC_MESSAGES,setlocale(LC_CTYPE,""));
 texmf_locale= kpse_var_expand("${TEXMFLOCALEDIR}");
@@ -548,11 +548,11 @@
 #line 85 "cwebdir/comm-w2c.ch"
 
 /*74:*/
-#line 1139 "cwebdir/common.w"
+#line 1140 "cwebdir/common.w"
 
-#line 455 "cwebdir/comm-w2c.ch"
+#line 461 "cwebdir/comm-w2c.ch"
 make_xrefs= true;
-#line 1141 "cwebdir/common.w"
+#line 1142 "cwebdir/common.w"
 
 /*:74*/
 #line 86 "cwebdir/comm-w2c.ch"
@@ -559,12 +559,12 @@
 
 #line 101 "cwebdir/common.w"
 /*84:*/
-#line 595 "cwebdir/comm-w2c.ch"
+#line 601 "cwebdir/comm-w2c.ch"
 
 scan_args();
 if(program==ctangle){
 if(check_for_change)/*88:*/
-#line 653 "cwebdir/comm-w2c.ch"
+#line 659 "cwebdir/comm-w2c.ch"
 {
 if((C_file= fopen(C_file_name,"a"))==NULL)
 fatal(_("! Cannot open output file "),C_file_name);
@@ -581,7 +581,7 @@
 }
 
 /*:88*/
-#line 598 "cwebdir/comm-w2c.ch"
+#line 604 "cwebdir/comm-w2c.ch"
 
 else if((C_file= fopen(C_file_name,"wb"))==NULL)
 fatal(_("! Cannot open output file "),C_file_name);
@@ -589,7 +589,7 @@
 }
 else{
 if(check_for_change)/*89:*/
-#line 668 "cwebdir/comm-w2c.ch"
+#line 674 "cwebdir/comm-w2c.ch"
 {
 if((tex_file= fopen(tex_file_name,"a"))==NULL)
 fatal(_("! Cannot open output file "),tex_file_name);
@@ -606,14 +606,14 @@
 }
 
 /*:89*/
-#line 604 "cwebdir/comm-w2c.ch"
+#line 610 "cwebdir/comm-w2c.ch"
 
 else if((tex_file= fopen(tex_file_name,"wb"))==NULL)
 fatal(_("! Cannot open output file "),tex_file_name);
 }
-#line 1285 "cwebdir/common.w"
+#line 1286 "cwebdir/common.w"
 
-#line 613 "cwebdir/comm-w2c.ch"
+#line 619 "cwebdir/comm-w2c.ch"
 /*:84*/
 #line 101 "cwebdir/common.w"
 
@@ -1013,16 +1013,20 @@
 #line 647 "cwebdir/common.w"
 
 if(p==name_ptr)/*51:*/
-#line 676 "cwebdir/common.w"
+#line 675 "cwebdir/common.w"
 {
 #line 300 "cwebdir/comm-w2c.ch"
 if(byte_ptr+l> byte_mem_end)overflow(_("byte memory"));
 if(name_ptr>=name_dir_end)overflow(_("name"));
-#line 679 "cwebdir/common.w"
+#line 678 "cwebdir/common.w"
 strncpy(byte_ptr,first,l);
 (++name_ptr)->byte_start= byte_ptr+= l;
-init_p(p,t);
+#line 307 "cwebdir/comm-w2c.ch"
+if(program!=ctangle){
+#line 681 "cwebdir/common.w"
+p->ilk= t;init_node(p);
 }
+}
 
 /*:51*/
 #line 648 "cwebdir/common.w"
@@ -1031,7 +1035,7 @@
 }
 
 /*:48*//*52:*/
-#line 708 "cwebdir/common.w"
+#line 709 "cwebdir/common.w"
 
 void
 print_section_name(
@@ -1050,7 +1054,7 @@
 }
 
 /*:52*//*53:*/
-#line 725 "cwebdir/common.w"
+#line 726 "cwebdir/common.w"
 
 void
 sprint_section_name(
@@ -1070,7 +1074,7 @@
 }
 
 /*:53*//*54:*/
-#line 743 "cwebdir/common.w"
+#line 744 "cwebdir/common.w"
 
 void
 print_prefix_name(
@@ -1083,7 +1087,7 @@
 }
 
 /*:54*//*56:*/
-#line 769 "cwebdir/common.w"
+#line 770 "cwebdir/common.w"
 
 static int web_strcmp(
 char*j,
@@ -1101,7 +1105,7 @@
 }
 
 /*:56*//*57:*/
-#line 798 "cwebdir/common.w"
+#line 799 "cwebdir/common.w"
 
 static name_pointer
 add_section_name(
@@ -1114,10 +1118,10 @@
 name_pointer p= name_ptr;
 char*s= first_chunk(p);
 size_t name_len= (size_t)(last-first+(int)ispref);
-#line 308 "cwebdir/comm-w2c.ch"
+#line 314 "cwebdir/comm-w2c.ch"
 if(s+name_len> byte_mem_end)overflow(_("byte memory"));
 if(name_ptr+1>=name_dir_end)overflow(_("name"));
-#line 812 "cwebdir/common.w"
+#line 813 "cwebdir/common.w"
 (++name_ptr)->byte_start= byte_ptr= s+name_len;
 if(ispref){
 *(byte_ptr-1)= ' ';
@@ -1133,7 +1137,7 @@
 }
 
 /*:57*//*58:*/
-#line 826 "cwebdir/common.w"
+#line 827 "cwebdir/common.w"
 
 static void
 extend_section_name(
@@ -1145,16 +1149,16 @@
 char*s;
 name_pointer q= p+1;
 size_t name_len= (size_t)(last-first+(int)ispref);
-#line 315 "cwebdir/comm-w2c.ch"
+#line 321 "cwebdir/comm-w2c.ch"
 if(name_ptr>=name_dir_end)overflow(_("name"));
-#line 838 "cwebdir/common.w"
+#line 839 "cwebdir/common.w"
 while(q->link!=name_dir)q= q->link;
 q->link= name_ptr;
 s= name_ptr->byte_start;
 name_ptr->link= name_dir;
-#line 321 "cwebdir/comm-w2c.ch"
+#line 327 "cwebdir/comm-w2c.ch"
 if(s+name_len> byte_mem_end)overflow(_("byte memory"));
-#line 843 "cwebdir/common.w"
+#line 844 "cwebdir/common.w"
 (++name_ptr)->byte_start= byte_ptr= s+name_len;
 strncpy(s,first,name_len);
 if(ispref)*(byte_ptr-1)= ' ';
@@ -1161,7 +1165,7 @@
 }
 
 /*:58*//*59:*/
-#line 854 "cwebdir/common.w"
+#line 855 "cwebdir/common.w"
 
 name_pointer
 section_lookup(
@@ -1176,7 +1180,7 @@
 
 size_t name_len= (size_t)(last-first+1);
 /*60:*/
-#line 878 "cwebdir/common.w"
+#line 879 "cwebdir/common.w"
 
 while(p){
 c= web_strcmp(first,name_len,first_chunk(p),prefix_length(p));
@@ -1186,14 +1190,14 @@
 p= (c==less?p->llink:p->rlink);
 }else{
 if(r!=NULL){
-#line 327 "cwebdir/comm-w2c.ch"
+#line 333 "cwebdir/comm-w2c.ch"
 fputs(_("\n! Ambiguous prefix: matches <"),stdout);
-#line 888 "cwebdir/common.w"
+#line 889 "cwebdir/common.w"
 
 print_prefix_name(p);
-#line 333 "cwebdir/comm-w2c.ch"
+#line 339 "cwebdir/comm-w2c.ch"
 fputs(_(">\n and <"),stdout);
-#line 891 "cwebdir/common.w"
+#line 892 "cwebdir/common.w"
 print_prefix_name(r);
 err_print(">");
 return name_dir;
@@ -1207,27 +1211,27 @@
 }
 
 /*:60*/
-#line 868 "cwebdir/common.w"
+#line 869 "cwebdir/common.w"
 
 /*61:*/
-#line 903 "cwebdir/common.w"
+#line 904 "cwebdir/common.w"
 
 if(r==NULL)
 return add_section_name(par,c,first,last+1,ispref);
 
 /*:61*/
-#line 869 "cwebdir/common.w"
+#line 870 "cwebdir/common.w"
 
 /*62:*/
-#line 911 "cwebdir/common.w"
+#line 912 "cwebdir/common.w"
 
 switch(section_name_cmp(&first,name_len,r)){
 
 case prefix:
 if(!ispref){
-#line 339 "cwebdir/comm-w2c.ch"
+#line 345 "cwebdir/comm-w2c.ch"
 fputs(_("\n! New name is a prefix of <"),stdout);
-#line 917 "cwebdir/common.w"
+#line 918 "cwebdir/common.w"
 
 print_section_name(r);
 err_print(">");
@@ -1239,22 +1243,22 @@
 extend_section_name(r,first,last+1,ispref);
 break;
 case bad_extension:
-#line 345 "cwebdir/comm-w2c.ch"
+#line 351 "cwebdir/comm-w2c.ch"
 fputs(_("\n! New name extends <"),stdout);
-#line 929 "cwebdir/common.w"
+#line 930 "cwebdir/common.w"
 
 print_section_name(r);
 err_print(">");
 break;
 default:
-#line 351 "cwebdir/comm-w2c.ch"
+#line 357 "cwebdir/comm-w2c.ch"
 fputs(_("\n! Section name incompatible with <"),stdout);
-#line 935 "cwebdir/common.w"
+#line 936 "cwebdir/common.w"
 
 print_prefix_name(r);
-#line 357 "cwebdir/comm-w2c.ch"
+#line 363 "cwebdir/comm-w2c.ch"
 fputs(_(">,\n which abbreviates <"),stdout);
-#line 938 "cwebdir/common.w"
+#line 939 "cwebdir/common.w"
 print_section_name(r);
 err_print(">");
 }
@@ -1261,12 +1265,12 @@
 return r;
 
 /*:62*/
-#line 870 "cwebdir/common.w"
+#line 871 "cwebdir/common.w"
 
 }
 
 /*:59*//*63:*/
-#line 959 "cwebdir/common.w"
+#line 960 "cwebdir/common.w"
 
 static int section_name_cmp(
 char**pfirst,
@@ -1300,7 +1304,7 @@
 }
 
 /*:63*//*66:*/
-#line 1013 "cwebdir/common.w"
+#line 1014 "cwebdir/common.w"
 
 void
 err_print(
@@ -1308,15 +1312,15 @@
 {
 *s=='!'?printf("\n%s",s):printf("%s",s);
 if(web_file_open)/*67:*/
-#line 1032 "cwebdir/common.w"
+#line 1033 "cwebdir/common.w"
 
 {char*k,*l;
 if(changing&&include_depth==change_depth)
-#line 365 "cwebdir/comm-w2c.ch"
+#line 371 "cwebdir/comm-w2c.ch"
 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 1038 "cwebdir/common.w"
+#line 1039 "cwebdir/common.w"
 l= (loc>=limit?limit:loc);
 if(l> buffer){
 for(k= buffer;k<l;k++)
@@ -1331,24 +1335,24 @@
 }
 
 /*:67*/
-#line 1019 "cwebdir/common.w"
+#line 1020 "cwebdir/common.w"
 
 update_terminal;mark_error;
 }
 
 /*:66*//*68:*/
-#line 1065 "cwebdir/common.w"
+#line 1066 "cwebdir/common.w"
 
 int wrap_up(void){
 if(show_progress)new_line;
 if(show_stats)
 print_stats();
-#line 395 "cwebdir/comm-w2c.ch"
+#line 401 "cwebdir/comm-w2c.ch"
 /*69:*/
-#line 1075 "cwebdir/common.w"
+#line 1076 "cwebdir/common.w"
 
 switch(history){
-#line 421 "cwebdir/comm-w2c.ch"
+#line 427 "cwebdir/comm-w2c.ch"
 case spotless:
 if(show_happiness)puts(_("(No errors were found.)"));break;
 case harmless_message:
@@ -1357,14 +1361,14 @@
 puts(_("(Pardon me, but I think I spotted something wrong.)"));break;
 case fatal_message:default:
 puts(_("(That was a fatal error, my friend.)"));
-#line 1085 "cwebdir/common.w"
+#line 1086 "cwebdir/common.w"
 }
 
 /*:69*/
-#line 395 "cwebdir/comm-w2c.ch"
+#line 401 "cwebdir/comm-w2c.ch"
 
 /*90:*/
-#line 686 "cwebdir/comm-w2c.ch"
+#line 692 "cwebdir/comm-w2c.ch"
 
 if(C_file)fclose(C_file);
 if(tex_file)fclose(tex_file);
@@ -1373,9 +1377,9 @@
 remove(check_file_name);
 
 /*:90*/
-#line 396 "cwebdir/comm-w2c.ch"
+#line 402 "cwebdir/comm-w2c.ch"
 
-#line 403 "cwebdir/comm-w2c.ch"
+#line 409 "cwebdir/comm-w2c.ch"
 switch(history){
 case spotless:return RETURN_OK;
 case harmless_message:return RETURN_WARN;
@@ -1382,11 +1386,11 @@
 case error_message:return RETURN_ERROR;
 case fatal_message:default:return RETURN_FAIL;
 }
-#line 1073 "cwebdir/common.w"
+#line 1074 "cwebdir/common.w"
 }
 
 /*:68*//*70:*/
-#line 1093 "cwebdir/common.w"
+#line 1094 "cwebdir/common.w"
 void
 fatal(
 const char*s,const char*t)
@@ -1397,19 +1401,19 @@
 }
 
 /*:70*//*71:*/
-#line 1104 "cwebdir/common.w"
+#line 1105 "cwebdir/common.w"
 void
 overflow(
 const char*t)
 {
-#line 434 "cwebdir/comm-w2c.ch"
+#line 440 "cwebdir/comm-w2c.ch"
 printf(_("\n! Sorry, %s capacity exceeded"),t);fatal("","");
-#line 1109 "cwebdir/common.w"
+#line 1110 "cwebdir/common.w"
 }
 
 
 /*:71*//*75:*/
-#line 1157 "cwebdir/common.w"
+#line 1158 "cwebdir/common.w"
 
 static void
 scan_args(void)
@@ -1420,29 +1424,29 @@
 boolean found_web= false,found_change= false,found_out= false;
 
 
-#line 478 "cwebdir/comm-w2c.ch"
+#line 484 "cwebdir/comm-w2c.ch"
 strcpy(change_file_name,"/dev/null");
 #if defined DEV_NULL
 strncpy(change_file_name,DEV_NULL,max_file_name_length-2);
 change_file_name[max_file_name_length-2]= '\0';
 #elif defined _DEV_NULL
-#line 483 "cwebdir/comm-w2c.ch"
+#line 489 "cwebdir/comm-w2c.ch"
  strncpy(change_file_name,_DEV_NULL,max_file_name_length-2);
 change_file_name[max_file_name_length-2]= '\0';
 #endif
-#line 486 "cwebdir/comm-w2c.ch"
+#line 492 "cwebdir/comm-w2c.ch"
 
-#line 1168 "cwebdir/common.w"
+#line 1169 "cwebdir/common.w"
  while(--argc> 0){
 if((**(++argv)=='-'||**argv=='+')&&*(*argv+1))/*80:*/
-#line 1245 "cwebdir/common.w"
+#line 1246 "cwebdir/common.w"
 
-#line 521 "cwebdir/comm-w2c.ch"
+#line 527 "cwebdir/comm-w2c.ch"
 {
 if(strcmp("-help",*argv)==0||strcmp("--help",*argv)==0)
 
 /*97:*/
-#line 821 "cwebdir/comm-w2c.ch"
+#line 827 "cwebdir/comm-w2c.ch"
 
 cb_usagehelp(program==ctangle?CTANGLEHELP:
 program==cweave?CWEAVEHELP:CTWILLHELP);
@@ -1449,12 +1453,12 @@
 
 
 /*:97*/
-#line 524 "cwebdir/comm-w2c.ch"
+#line 530 "cwebdir/comm-w2c.ch"
 
 if(strcmp("-version",*argv)==0||strcmp("--version",*argv)==0)
 
 /*100:*/
-#line 867 "cwebdir/comm-w2c.ch"
+#line 873 "cwebdir/comm-w2c.ch"
 
 printversionandexit(cb_banner,
 program==ctwill?"Donald E. Knuth":"Silvio Levy and Donald E. Knuth",
@@ -1462,7 +1466,7 @@
 
 
 /*:100*/
-#line 527 "cwebdir/comm-w2c.ch"
+#line 533 "cwebdir/comm-w2c.ch"
 
 if(strcmp("-verbose",*argv)==0||strcmp("--verbose",*argv)==0)
 
@@ -1476,15 +1480,15 @@
 case'q':show_banner= show_progress= show_happiness= false;continue;
 case'd':
 if(sscanf(++dot_pos,"%u",&kpathsea_debug)!=1)/*81:*/
-#line 564 "cwebdir/comm-w2c.ch"
+#line 570 "cwebdir/comm-w2c.ch"
 
 cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
 
-#line 1260 "cwebdir/common.w"
+#line 1261 "cwebdir/common.w"
 
-#line 572 "cwebdir/comm-w2c.ch"
+#line 578 "cwebdir/comm-w2c.ch"
 /*:81*/
-#line 539 "cwebdir/comm-w2c.ch"
+#line 545 "cwebdir/comm-w2c.ch"
 
 while(isdigit(*dot_pos))dot_pos++;
 dot_pos--;
@@ -1495,15 +1499,15 @@
 break;
 }
 }
-#line 1248 "cwebdir/common.w"
+#line 1249 "cwebdir/common.w"
 
-#line 564 "cwebdir/comm-w2c.ch"
+#line 570 "cwebdir/comm-w2c.ch"
 /*:80*/
-#line 1169 "cwebdir/common.w"
+#line 1170 "cwebdir/common.w"
 
 else{
 s= name_pos= *argv;dot_pos= NULL;
-#line 495 "cwebdir/comm-w2c.ch"
+#line 501 "cwebdir/comm-w2c.ch"
 while(*s)
 if(*s=='.')dot_pos= s++;
 else if(*s==DIR_SEPARATOR||*s==DEVICE_SEPARATOR||*s=='/')
@@ -1510,20 +1514,20 @@
 dot_pos= NULL,name_pos= ++s;
 else s++;
 
-#line 1176 "cwebdir/common.w"
+#line 1177 "cwebdir/common.w"
 if(!found_web)/*77:*/
-#line 1195 "cwebdir/common.w"
+#line 1196 "cwebdir/common.w"
 
 {
 if(s-*argv> max_file_name_length-5)
 /*82:*/
-#line 572 "cwebdir/comm-w2c.ch"
+#line 578 "cwebdir/comm-w2c.ch"
 fatal(_("! Filename too long\n"),*argv);
-#line 1262 "cwebdir/common.w"
+#line 1263 "cwebdir/common.w"
 
 
 /*:82*/
-#line 1198 "cwebdir/common.w"
+#line 1199 "cwebdir/common.w"
 
 if(dot_pos==NULL)
 sprintf(web_file_name,"%s.w",*argv);
@@ -1531,7 +1535,7 @@
 strcpy(web_file_name,*argv);
 *dot_pos= '\0';
 }
-#line 1206 "cwebdir/common.w"
+#line 1207 "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);
@@ -1540,22 +1544,22 @@
 }
 
 /*:77*/
-#line 1177 "cwebdir/common.w"
+#line 1178 "cwebdir/common.w"
 
 else if(!found_change)/*78:*/
-#line 1213 "cwebdir/common.w"
+#line 1214 "cwebdir/common.w"
 
 {
 if(strcmp(*argv,"-")!=0){
 if(s-*argv> max_file_name_length-4)
 /*82:*/
-#line 572 "cwebdir/comm-w2c.ch"
+#line 578 "cwebdir/comm-w2c.ch"
 fatal(_("! Filename too long\n"),*argv);
-#line 1262 "cwebdir/common.w"
+#line 1263 "cwebdir/common.w"
 
 
 /*:82*/
-#line 1217 "cwebdir/common.w"
+#line 1218 "cwebdir/common.w"
 
 if(dot_pos==NULL)
 sprintf(change_file_name,"%s.ch",*argv);
@@ -1565,21 +1569,21 @@
 }
 
 /*:78*/
-#line 1178 "cwebdir/common.w"
+#line 1179 "cwebdir/common.w"
 
 else if(!found_out)/*79:*/
-#line 1225 "cwebdir/common.w"
+#line 1226 "cwebdir/common.w"
 
 {
 if(s-*argv> max_file_name_length-5)
 /*82:*/
-#line 572 "cwebdir/comm-w2c.ch"
+#line 578 "cwebdir/comm-w2c.ch"
 fatal(_("! Filename too long\n"),*argv);
-#line 1262 "cwebdir/common.w"
+#line 1263 "cwebdir/common.w"
 
 
 /*:82*/
-#line 1228 "cwebdir/common.w"
+#line 1229 "cwebdir/common.w"
 
 if(dot_pos==NULL){
 sprintf(tex_file_name,"%s.tex",*argv);
@@ -1597,36 +1601,36 @@
 }
 
 /*:79*/
-#line 1179 "cwebdir/common.w"
+#line 1180 "cwebdir/common.w"
 
 else/*81:*/
-#line 564 "cwebdir/comm-w2c.ch"
+#line 570 "cwebdir/comm-w2c.ch"
 
 cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
 
-#line 1260 "cwebdir/common.w"
+#line 1261 "cwebdir/common.w"
 
-#line 572 "cwebdir/comm-w2c.ch"
+#line 578 "cwebdir/comm-w2c.ch"
 /*:81*/
-#line 1180 "cwebdir/common.w"
+#line 1181 "cwebdir/common.w"
 
 }
 }
 if(!found_web)/*81:*/
-#line 564 "cwebdir/comm-w2c.ch"
+#line 570 "cwebdir/comm-w2c.ch"
 
 cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
 
-#line 1260 "cwebdir/common.w"
+#line 1261 "cwebdir/common.w"
 
-#line 572 "cwebdir/comm-w2c.ch"
+#line 578 "cwebdir/comm-w2c.ch"
 /*:81*/
-#line 1183 "cwebdir/common.w"
+#line 1184 "cwebdir/common.w"
 
 }
 
 /*:75*//*99:*/
-#line 834 "cwebdir/comm-w2c.ch"
+#line 840 "cwebdir/comm-w2c.ch"
 
 static void cb_usage(const_string str)
 {
@@ -1658,7 +1662,7 @@
 }
 
 /*:99*//*101:*/
-#line 875 "cwebdir/comm-w2c.ch"
+#line 881 "cwebdir/comm-w2c.ch"
 
 void cb_show_banner(void)
 {

Modified: trunk/Build/source/texk/web2c/cwebdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ChangeLog	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/ChangeLog	2023-07-26 09:36:25 UTC (rev 67734)
@@ -1,3 +1,21 @@
+2023-07-26  Andreas Scherer  <https://ascherer.github.io>
+
+	* comm-bs.ch,
+	* comm-w2c.ch,
+	* comm-w2c.h,
+	* comm-w32.ch,
+	* common.bux,
+	* common.c,
+	* common.h,
+	* common.w,
+	* ctang-w32.ch,
+	* ctangle.c,
+	* ctangle.w,
+	* ctwill-mini.ch,
+	* ctwill-w2c.ch,
+	* cweav-w32.ch,
+	* cweave.w: Purge 'init_p'.
+
 2023-07-21  Andreas Scherer  <https://ascherer.github.io>
 
 	* comm-{mac,mini,vms,w2c}.ch,

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-bs.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-bs.ch	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-bs.ch	2023-07-26 09:36:25 UTC (rev 67734)
@@ -16,7 +16,7 @@
 
 
 @x Section 9.
-  for section names */
+ at d ilk dummy.Ilk /* used by \.{CWEAVE} only */
 
 @<Common code...@>=
 typedef struct name_info {
@@ -34,7 +34,7 @@
 extern char byte_mem[]; /* characters of names */
 extern char *byte_mem_end; /* end of |byte_mem| */
 @y
-  for section names */
+ at d ilk dummy.Ilk /* used by \.{CWEAVE} only */
 
 @f huge extern
 

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-w2c.ch	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-w2c.ch	2023-07-26 09:36:25 UTC (rev 67734)
@@ -302,6 +302,12 @@
 @z
 
 @x
+  if (program==cweave) {
+ at y
+  if (program!=ctangle) {
+ at z
+
+ at x
   if (s+name_len>byte_mem_end) overflow("byte memory");
   if (name_ptr+1>=name_dir_end) overflow("name");
 @y

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h	2023-07-26 09:36:25 UTC (rev 67734)
@@ -166,6 +166,7 @@
 @d rlink dummy.Rlink /* right link in binary search tree for section names */
 @d root name_dir->rlink /* the root of the binary search tree
   for section names */
+ at d ilk dummy.Ilk /* used by \.{CWEAVE} only */
 
 @<Common code...@>=
 typedef struct name_info {
@@ -199,9 +200,8 @@
 extern void sprint_section_name(char *,name_pointer);
 @#
 extern boolean names_match(name_pointer,const char *,size_t,eight_bits);@/
-/* three routines defined in \.{ctangle.w} and \.{cweave.w} */
+/* two routines defined in \.{ctangle.w} and \.{cweave.w} */
 extern void init_node(name_pointer);@/
-extern void init_p(name_pointer,eight_bits);@/
 
 @ Code related to error handling:
 @d spotless 0 /* |history| value for normal jobs */

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-w32.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-w32.ch	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-w32.ch	2023-07-26 09:36:25 UTC (rev 67734)
@@ -40,12 +40,6 @@
 extern boolean __cdecl names_match(name_pointer,const char *,size_t,eight_bits);@/
 @z
 
- at x
-extern void init_p(name_pointer,eight_bits);@/
- at y
-extern void __cdecl init_p(name_pointer,eight_bits);@/
- at z
-
 @x section 75
 An omitted change file argument means that |"/dev/null"| should be used,
 @y

Modified: trunk/Build/source/texk/web2c/cwebdir/common.bux
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.bux	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/common.bux	2023-07-26 09:36:25 UTC (rev 67734)
@@ -17,7 +17,6 @@
 
 @$xref {CWEAVE.W}24 \\{equiv\_or\_xref}@>
 
-@$init_p {CWEAVE.W}32 \&{void} (\,)@>
 @$init_node {CWEAVE.W}32 \&{void} (\,)@>
 @$names_match {CWEAVE.W}32 \&{boolean} (\,)@>
 

Modified: trunk/Build/source/texk/web2c/cwebdir/common.c
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.c	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/common.c	2023-07-26 09:36:25 UTC (rev 67734)
@@ -61,8 +61,9 @@
 #define llink link
 #define rlink dummy.Rlink
 #define root name_dir->rlink \
- \
 
+#define ilk dummy.Ilk \
+
 #define spotless 0
 #define harmless_message 1
 #define error_message 2
@@ -174,7 +175,7 @@
 extern boolean print_where;
 
 /*:9*//*10:*/
-#line 148 "common.h"
+#line 149 "common.h"
 
 typedef struct name_info{
 char*byte_start;
@@ -306,12 +307,12 @@
 hash_pointer h;
 
 /*:46*//*65:*/
-#line 1003 "common.w"
+#line 1004 "common.w"
 
 int history= spotless;
 
 /*:65*//*73:*/
-#line 1126 "common.w"
+#line 1127 "common.w"
 
 int argc;
 char**argv;
@@ -322,7 +323,7 @@
 boolean flags[128];
 
 /*:73*//*83:*/
-#line 1267 "common.w"
+#line 1268 "common.w"
 
 FILE*C_file;
 FILE*tex_file;
@@ -347,7 +348,7 @@
 extern void reset_input(void);
 
 /*:8*//*11:*/
-#line 171 "common.h"
+#line 172 "common.h"
 
 extern name_pointer id_lookup(const char*,const char*,eight_bits);
 
@@ -359,7 +360,6 @@
 extern boolean names_match(name_pointer,const char*,size_t,eight_bits);
 
 extern void init_node(name_pointer);
-extern void init_p(name_pointer,eight_bits);
 
 /*:11*//*13:*/
 #line 197 "common.h"
@@ -382,7 +382,7 @@
 static void check_change(void);
 
 /*:33*//*55:*/
-#line 764 "common.w"
+#line 765 "common.w"
 
 static int web_strcmp(char*,size_t,char*,size_t);
 static name_pointer add_section_name(name_pointer,int,char*,char*,boolean);
@@ -389,11 +389,11 @@
 static void extend_section_name(name_pointer,char*,char*,boolean);
 
 /*:55*//*64:*/
-#line 991 "common.w"
+#line 992 "common.w"
 static int section_name_cmp(char**,size_t,name_pointer);
 
 /*:64*//*76:*/
-#line 1186 "common.w"
+#line 1187 "common.w"
 static void scan_args(void);
 
 /*:76*/
@@ -423,7 +423,7 @@
 #line 99 "common.w"
 
 /*74:*/
-#line 1139 "common.w"
+#line 1140 "common.w"
 
 show_banner= show_happiness= show_progress= make_xrefs= true;
 
@@ -431,7 +431,7 @@
 #line 100 "common.w"
 
 /*84:*/
-#line 1274 "common.w"
+#line 1275 "common.w"
 
 scan_args();
 if(program==ctangle){
@@ -813,14 +813,16 @@
 #line 647 "common.w"
 
 if(p==name_ptr)/*51:*/
-#line 676 "common.w"
+#line 675 "common.w"
 {
 if(byte_ptr+l> byte_mem_end)overflow("byte memory");
 if(name_ptr>=name_dir_end)overflow("name");
 strncpy(byte_ptr,first,l);
 (++name_ptr)->byte_start= byte_ptr+= l;
-init_p(p,t);
+if(program==cweave){
+p->ilk= t;init_node(p);
 }
+}
 
 /*:51*/
 #line 648 "common.w"
@@ -829,7 +831,7 @@
 }
 
 /*:48*//*52:*/
-#line 708 "common.w"
+#line 709 "common.w"
 
 void
 print_section_name(
@@ -848,7 +850,7 @@
 }
 
 /*:52*//*53:*/
-#line 725 "common.w"
+#line 726 "common.w"
 
 void
 sprint_section_name(
@@ -868,7 +870,7 @@
 }
 
 /*:53*//*54:*/
-#line 743 "common.w"
+#line 744 "common.w"
 
 void
 print_prefix_name(
@@ -881,7 +883,7 @@
 }
 
 /*:54*//*56:*/
-#line 769 "common.w"
+#line 770 "common.w"
 
 static int web_strcmp(
 char*j,
@@ -899,7 +901,7 @@
 }
 
 /*:56*//*57:*/
-#line 798 "common.w"
+#line 799 "common.w"
 
 static name_pointer
 add_section_name(
@@ -929,7 +931,7 @@
 }
 
 /*:57*//*58:*/
-#line 826 "common.w"
+#line 827 "common.w"
 
 static void
 extend_section_name(
@@ -953,7 +955,7 @@
 }
 
 /*:58*//*59:*/
-#line 854 "common.w"
+#line 855 "common.w"
 
 name_pointer
 section_lookup(
@@ -968,7 +970,7 @@
 
 size_t name_len= (size_t)(last-first+1);
 /*60:*/
-#line 878 "common.w"
+#line 879 "common.w"
 
 while(p){
 c= web_strcmp(first,name_len,first_chunk(p),prefix_length(p));
@@ -995,19 +997,19 @@
 }
 
 /*:60*/
-#line 868 "common.w"
+#line 869 "common.w"
 
 /*61:*/
-#line 903 "common.w"
+#line 904 "common.w"
 
 if(r==NULL)
 return add_section_name(par,c,first,last+1,ispref);
 
 /*:61*/
-#line 869 "common.w"
+#line 870 "common.w"
 
 /*62:*/
-#line 911 "common.w"
+#line 912 "common.w"
 
 switch(section_name_cmp(&first,name_len,r)){
 
@@ -1041,12 +1043,12 @@
 return r;
 
 /*:62*/
-#line 870 "common.w"
+#line 871 "common.w"
 
 }
 
 /*:59*//*63:*/
-#line 959 "common.w"
+#line 960 "common.w"
 
 static int section_name_cmp(
 char**pfirst,
@@ -1080,7 +1082,7 @@
 }
 
 /*:63*//*66:*/
-#line 1013 "common.w"
+#line 1014 "common.w"
 
 void
 err_print(
@@ -1088,7 +1090,7 @@
 {
 *s=='!'?printf("\n%s",s):printf("%s",s);
 if(web_file_open)/*67:*/
-#line 1032 "common.w"
+#line 1033 "common.w"
 
 {char*k,*l;
 if(changing&&include_depth==change_depth)
@@ -1109,13 +1111,13 @@
 }
 
 /*:67*/
-#line 1019 "common.w"
+#line 1020 "common.w"
 
 update_terminal;mark_error;
 }
 
 /*:66*//*68:*/
-#line 1065 "common.w"
+#line 1066 "common.w"
 
 int wrap_up(void){
 if(show_progress)new_line;
@@ -1122,7 +1124,7 @@
 if(show_stats)
 print_stats();
 /*69:*/
-#line 1075 "common.w"
+#line 1076 "common.w"
 
 switch(history){
 case spotless:
@@ -1136,7 +1138,7 @@
 }
 
 /*:69*/
-#line 1070 "common.w"
+#line 1071 "common.w"
 
 if(history> harmless_message)return EXIT_FAILURE;
 else return EXIT_SUCCESS;
@@ -1143,7 +1145,7 @@
 }
 
 /*:68*//*70:*/
-#line 1093 "common.w"
+#line 1094 "common.w"
 void
 fatal(
 const char*s,const char*t)
@@ -1154,7 +1156,7 @@
 }
 
 /*:70*//*71:*/
-#line 1104 "common.w"
+#line 1105 "common.w"
 void
 overflow(
 const char*t)
@@ -1164,7 +1166,7 @@
 
 
 /*:71*//*75:*/
-#line 1157 "common.w"
+#line 1158 "common.w"
 
 static void
 scan_args(void)
@@ -1178,13 +1180,13 @@
 strcpy(change_file_name,"/dev/null");
 while(--argc> 0){
 if((**(++argv)=='-'||**argv=='+')&&*(*argv+1))/*80:*/
-#line 1245 "common.w"
+#line 1246 "common.w"
 
 for(dot_pos= *argv+1;*dot_pos> '\0';dot_pos++)
 flags[(eight_bits)*dot_pos]= flag_change;
 
 /*:80*/
-#line 1169 "common.w"
+#line 1170 "common.w"
 
 else{
 s= name_pos= *argv;dot_pos= NULL;
@@ -1193,17 +1195,17 @@
 else if(*s=='/')dot_pos= NULL,name_pos= ++s;
 else s++;
 if(!found_web)/*77:*/
-#line 1195 "common.w"
+#line 1196 "common.w"
 
 {
 if(s-*argv> max_file_name_length-5)
 /*82:*/
-#line 1261 "common.w"
+#line 1262 "common.w"
 fatal("! Filename too long\n",*argv);
 
 
 /*:82*/
-#line 1198 "common.w"
+#line 1199 "common.w"
 
 if(dot_pos==NULL)
 sprintf(web_file_name,"%s.w",*argv);
@@ -1220,21 +1222,21 @@
 }
 
 /*:77*/
-#line 1177 "common.w"
+#line 1178 "common.w"
 
 else if(!found_change)/*78:*/
-#line 1213 "common.w"
+#line 1214 "common.w"
 
 {
 if(strcmp(*argv,"-")!=0){
 if(s-*argv> max_file_name_length-4)
 /*82:*/
-#line 1261 "common.w"
+#line 1262 "common.w"
 fatal("! Filename too long\n",*argv);
 
 
 /*:82*/
-#line 1217 "common.w"
+#line 1218 "common.w"
 
 if(dot_pos==NULL)
 sprintf(change_file_name,"%s.ch",*argv);
@@ -1244,20 +1246,20 @@
 }
 
 /*:78*/
-#line 1178 "common.w"
+#line 1179 "common.w"
 
 else if(!found_out)/*79:*/
-#line 1225 "common.w"
+#line 1226 "common.w"
 
 {
 if(s-*argv> max_file_name_length-5)
 /*82:*/
-#line 1261 "common.w"
+#line 1262 "common.w"
 fatal("! Filename too long\n",*argv);
 
 
 /*:82*/
-#line 1228 "common.w"
+#line 1229 "common.w"
 
 if(dot_pos==NULL){
 sprintf(tex_file_name,"%s.tex",*argv);
@@ -1275,10 +1277,10 @@
 }
 
 /*:79*/
-#line 1179 "common.w"
+#line 1180 "common.w"
 
 else/*81:*/
-#line 1249 "common.w"
+#line 1250 "common.w"
 
 {
 if(program==ctangle)
@@ -1292,12 +1294,12 @@
 }
 
 /*:81*/
-#line 1180 "common.w"
+#line 1181 "common.w"
 
 }
 }
 if(!found_web)/*81:*/
-#line 1249 "common.w"
+#line 1250 "common.w"
 
 {
 if(program==ctangle)
@@ -1311,7 +1313,7 @@
 }
 
 /*:81*/
-#line 1183 "common.w"
+#line 1184 "common.w"
 
 }
 

Modified: trunk/Build/source/texk/web2c/cwebdir/common.h
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.h	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/common.h	2023-07-26 09:36:25 UTC (rev 67734)
@@ -144,6 +144,7 @@
 @d rlink dummy.Rlink /* right link in binary search tree for section names */
 @d root name_dir->rlink /* the root of the binary search tree
   for section names */
+ at d ilk dummy.Ilk /* used by \.{CWEAVE} only */
 
 @<Common code...@>=
 typedef struct name_info {
@@ -177,9 +178,8 @@
 extern void sprint_section_name(char *,name_pointer);
 @#
 extern boolean names_match(name_pointer,const char *,size_t,eight_bits);@/
-/* three routines defined in \.{ctangle.w} and \.{cweave.w} */
+/* two routines defined in \.{ctangle.w} and \.{cweave.w} */
 extern void init_node(name_pointer);@/
-extern void init_p(name_pointer,eight_bits);@/
 
 @ Code related to error handling:
 @d spotless 0 /* |history| value for normal jobs */

Modified: trunk/Build/source/texk/web2c/cwebdir/common.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.w	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/common.w	2023-07-26 09:36:25 UTC (rev 67734)
@@ -670,8 +670,7 @@
 }
 
 @ The information associated with a new identifier must be initialized
-in a slightly different way in \.{CWEAVE} than in \.{CTANGLE}; hence the
-|init_p| procedure.
+in a slightly different way in \.{CWEAVE} than in \.{CTANGLE}.
 
 @<Enter a new name...@>= {
   if (byte_ptr+l>byte_mem_end) overflow("byte memory");
@@ -678,7 +677,9 @@
   if (name_ptr>=name_dir_end) overflow("name");
   strncpy(byte_ptr,first,l);
   (++name_ptr)->byte_start=byte_ptr+=l;
-  init_p(p,t);
+  if (program==cweave) {
+    p->ilk=t; init_node(p);
+  }
 }
 
 @ If |p| is a |name_pointer| variable, as we have seen,

Modified: trunk/Build/source/texk/web2c/cwebdir/ctang-w32.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctang-w32.ch	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/ctang-w32.ch	2023-07-26 09:36:25 UTC (rev 67734)
@@ -30,8 +30,6 @@
 {
     node->equiv=(void *)text_info;
 }
-void
-init_p(name_pointer p,eight_bits t) {@+(void)p;@+(void)t;@+}
 @y
 void
 init_node(
@@ -39,6 +37,4 @@
 {
     node->equiv=(void *)text_info;
 }
-void __cdecl
-init_p(name_pointer p,eight_bits t) {@+(void)p;@+(void)t;@+}
 @z

Modified: trunk/Build/source/texk/web2c/cwebdir/ctangle.c
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctangle.c	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/ctangle.c	2023-07-26 09:36:25 UTC (rev 67734)
@@ -63,8 +63,9 @@
 #define llink link
 #define rlink dummy.Rlink
 #define root name_dir->rlink \
- \
 
+#define ilk dummy.Ilk \
+
 #define spotless 0
 #define harmless_message 1
 #define error_message 2
@@ -207,7 +208,7 @@
 extern boolean print_where;
 
 /*:10*//*11:*/
-#line 148 "common.h"
+#line 149 "common.h"
 
 typedef struct name_info{
 char*byte_start;
@@ -269,7 +270,7 @@
 typedef text*text_pointer;
 
 /*:19*//*31:*/
-#line 271 "ctangle.w"
+#line 267 "ctangle.w"
 
 typedef struct{
 eight_bits*byte_field;
@@ -293,12 +294,12 @@
 static eight_bits*tok_ptr;
 
 /*:20*//*26:*/
-#line 200 "ctangle.w"
+#line 196 "ctangle.w"
 
 static text_pointer last_unnamed;
 
 /*:26*//*32:*/
-#line 289 "ctangle.w"
+#line 285 "ctangle.w"
 
 static output_state stack[stack_size+2];
 static stack_pointer stack_end= stack+stack_size;
@@ -305,18 +306,18 @@
 static stack_pointer stack_ptr;
 
 /*:32*//*37:*/
-#line 361 "ctangle.w"
+#line 357 "ctangle.w"
 
 static int cur_val;
 
 /*:37*//*42:*/
-#line 453 "ctangle.w"
+#line 449 "ctangle.w"
 
 static eight_bits out_state;
 static boolean protect;
 
 /*:42*//*45:*/
-#line 484 "ctangle.w"
+#line 480 "ctangle.w"
 
 static name_pointer output_files[max_files];
 static name_pointer*cur_out_file,*end_output_files,*an_output_file;
@@ -324,33 +325,33 @@
 static char output_file_name[longest_name+1];
 
 /*:45*//*52:*/
-#line 583 "ctangle.w"
+#line 579 "ctangle.w"
 
 static boolean output_defs_seen= false;
 
 /*:52*//*57:*/
-#line 697 "ctangle.w"
+#line 693 "ctangle.w"
 
 static char translit[0200][translit_length];
 
 /*:57*//*62:*/
-#line 773 "ctangle.w"
+#line 769 "ctangle.w"
 
 static eight_bits ccode[256];
 
 /*:62*//*66:*/
-#line 833 "ctangle.w"
+#line 829 "ctangle.w"
 
 static boolean comment_continues= false;
 
 /*:66*//*68:*/
-#line 870 "ctangle.w"
+#line 866 "ctangle.w"
 
 static name_pointer cur_section_name;
 static boolean no_where;
 
 /*:68*//*82:*/
-#line 1187 "ctangle.w"
+#line 1183 "ctangle.w"
 
 static text_pointer cur_text;
 static eight_bits next_control;
@@ -372,7 +373,7 @@
 extern void reset_input(void);
 
 /*:9*//*12:*/
-#line 171 "common.h"
+#line 172 "common.h"
 
 extern name_pointer id_lookup(const char*,const char*,eight_bits);
 
@@ -384,7 +385,6 @@
 extern boolean names_match(name_pointer,const char*,size_t,eight_bits);
 
 extern void init_node(name_pointer);
-extern void init_p(name_pointer,eight_bits);
 
 /*:12*//*14:*/
 #line 197 "common.h"
@@ -395,57 +395,57 @@
 extern void overflow(const char*);
 
 /*:14*//*30:*/
-#line 246 "ctangle.w"
+#line 242 "ctangle.w"
 static void store_two_bytes(sixteen_bits);
 
 /*:30*//*35:*/
-#line 325 "ctangle.w"
+#line 321 "ctangle.w"
 
 static void push_level(name_pointer);
 static void pop_level(boolean);
 
 /*:35*//*39:*/
-#line 398 "ctangle.w"
+#line 394 "ctangle.w"
 static void get_output(void);
 
 /*:39*//*44:*/
-#line 474 "ctangle.w"
+#line 470 "ctangle.w"
 static void flush_buffer(void);
 
 /*:44*//*49:*/
-#line 551 "ctangle.w"
+#line 547 "ctangle.w"
 static void phase_two(void);
 
 /*:49*//*53:*/
-#line 586 "ctangle.w"
+#line 582 "ctangle.w"
 
 static void output_defs(void);
 static void out_char(eight_bits);
 
 /*:53*//*65:*/
-#line 813 "ctangle.w"
+#line 809 "ctangle.w"
 
 static eight_bits skip_ahead(void);
 static boolean skip_comment(boolean);
 
 /*:65*//*70:*/
-#line 920 "ctangle.w"
+#line 916 "ctangle.w"
 static eight_bits get_next(void);
 
 /*:70*//*84:*/
-#line 1213 "ctangle.w"
+#line 1209 "ctangle.w"
 static void scan_repl(eight_bits);
 
 /*:84*//*91:*/
-#line 1405 "ctangle.w"
+#line 1401 "ctangle.w"
 static void scan_section(void);
 
 /*:91*//*99:*/
-#line 1482 "ctangle.w"
+#line 1478 "ctangle.w"
 static void phase_one(void);
 
 /*:99*//*101:*/
-#line 1515 "ctangle.w"
+#line 1511 "ctangle.w"
 static void skip_limbo(void);
 
 /*:101*/
@@ -474,16 +474,16 @@
 init_node(name_dir);
 
 /*:23*//*27:*/
-#line 203 "ctangle.w"
+#line 199 "ctangle.w"
 last_unnamed= text_info;text_info->text_link= macro;
 
 /*:27*//*46:*/
-#line 494 "ctangle.w"
+#line 490 "ctangle.w"
 
 cur_out_file= end_output_files= output_files+max_files;
 
 /*:46*//*58:*/
-#line 700 "ctangle.w"
+#line 696 "ctangle.w"
 
 {
 int i;
@@ -491,7 +491,7 @@
 }
 
 /*:58*//*63:*/
-#line 776 "ctangle.w"
+#line 772 "ctangle.w"
 {
 int c;
 for(c= 0;c<256;c++)ccode[c]= ignore;
@@ -511,7 +511,7 @@
 ccode['\'']= ord;
 
 /*:63*//*78:*/
-#line 1108 "ctangle.w"
+#line 1104 "ctangle.w"
 section_text[0]= ' ';
 
 /*:78*/
@@ -537,7 +537,7 @@
 }
 
 /*:24*//*25:*/
-#line 170 "ctangle.w"
+#line 168 "ctangle.w"
 
 void
 init_node(
@@ -545,11 +545,9 @@
 {
 node->equiv= (void*)text_info;
 }
-void
-init_p(name_pointer p,eight_bits t){(void)p;(void)t;}
 
 /*:25*//*29:*/
-#line 236 "ctangle.w"
+#line 232 "ctangle.w"
 
 static void
 store_two_bytes(
@@ -561,7 +559,7 @@
 }
 
 /*:29*//*34:*/
-#line 311 "ctangle.w"
+#line 307 "ctangle.w"
 
 static void
 push_level(
@@ -577,7 +575,7 @@
 }
 
 /*:34*//*36:*/
-#line 333 "ctangle.w"
+#line 329 "ctangle.w"
 
 static void
 pop_level(
@@ -592,7 +590,7 @@
 }
 
 /*:36*//*38:*/
-#line 368 "ctangle.w"
+#line 364 "ctangle.w"
 
 static void
 get_output(void)
@@ -615,7 +613,7 @@
 case 0:cur_val= (int)a;out_char(identifier);break;
 case 1:if(a==output_defs_flag)output_defs();
 else/*40:*/
-#line 403 "ctangle.w"
+#line 399 "ctangle.w"
 
 {
 a-= 024000;
@@ -629,7 +627,7 @@
 }
 
 /*:40*/
-#line 389 "ctangle.w"
+#line 385 "ctangle.w"
 
 break;
 default:cur_val= (int)a-050000;
@@ -640,7 +638,7 @@
 }
 
 /*:38*//*43:*/
-#line 461 "ctangle.w"
+#line 457 "ctangle.w"
 
 static void
 flush_buffer(void)
@@ -655,7 +653,7 @@
 }
 
 /*:43*//*48:*/
-#line 513 "ctangle.w"
+#line 509 "ctangle.w"
 
 static void
 phase_two(void){
@@ -663,22 +661,22 @@
 web_file_open= false;
 cur_line= 1;
 /*33:*/
-#line 300 "ctangle.w"
+#line 296 "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_section= 0;
 
 /*:33*/
-#line 519 "ctangle.w"
+#line 515 "ctangle.w"
 
 /*51:*/
-#line 579 "ctangle.w"
+#line 575 "ctangle.w"
 
 if(!output_defs_seen)
 output_defs();
 
 /*:51*/
-#line 520 "ctangle.w"
+#line 516 "ctangle.w"
 
 if(text_info->text_link==macro&&cur_out_file==end_output_files){
 fputs("\n! No program text was specified.",stdout);mark_harmless;
@@ -703,7 +701,7 @@
 while(stack_ptr> stack)get_output();
 flush_buffer();
 writeloop:/*50:*/
-#line 557 "ctangle.w"
+#line 553 "ctangle.w"
 
 for(an_output_file= end_output_files;an_output_file> cur_out_file;){
 an_output_file--;
@@ -723,7 +721,7 @@
 }
 
 /*:50*/
-#line 543 "ctangle.w"
+#line 539 "ctangle.w"
 
 if(show_happiness){
 if(show_progress)new_line;
@@ -733,7 +731,7 @@
 }
 
 /*:48*//*54:*/
-#line 595 "ctangle.w"
+#line 591 "ctangle.w"
 
 static void
 output_defs(void)
@@ -773,7 +771,7 @@
 }
 
 /*:54*//*55:*/
-#line 638 "ctangle.w"
+#line 634 "ctangle.w"
 
 static void
 out_char(
@@ -786,7 +784,7 @@
 if(protect||out_state==verbatim)C_putc('\\');
 flush_buffer();if(out_state!=verbatim)out_state= normal;break;
 /*59:*/
-#line 706 "ctangle.w"
+#line 702 "ctangle.w"
 
 case identifier:
 if(out_state==num_or_id)C_putc(' ');
@@ -798,10 +796,10 @@
 out_state= num_or_id;break;
 
 /*:59*/
-#line 649 "ctangle.w"
+#line 645 "ctangle.w"
 
 /*60:*/
-#line 716 "ctangle.w"
+#line 712 "ctangle.w"
 
 case section_number:
 if(cur_val> 0)C_printf("/*%d:*/",cur_val);
@@ -828,10 +826,10 @@
 break;
 
 /*:60*/
-#line 650 "ctangle.w"
+#line 646 "ctangle.w"
 
 /*56:*/
-#line 668 "ctangle.w"
+#line 664 "ctangle.w"
 
 case plus_plus:C_putc('+');C_putc('+');out_state= normal;break;
 case minus_minus:C_putc('-');C_putc('-');out_state= normal;break;
@@ -852,7 +850,7 @@
 break;
 
 /*:56*/
-#line 651 "ctangle.w"
+#line 647 "ctangle.w"
 
 case'=':case'>':C_putc(cur_char);C_putc(' ');
 out_state= normal;break;
@@ -871,7 +869,7 @@
 }
 
 /*:55*//*64:*/
-#line 797 "ctangle.w"
+#line 793 "ctangle.w"
 
 static eight_bits
 skip_ahead(void)
@@ -889,7 +887,7 @@
 }
 
 /*:64*//*67:*/
-#line 836 "ctangle.w"
+#line 832 "ctangle.w"
 
 static boolean skip_comment(
 boolean is_long_comment)
@@ -923,7 +921,7 @@
 }
 
 /*:67*//*69:*/
-#line 877 "ctangle.w"
+#line 873 "ctangle.w"
 
 static eight_bits
 get_next(void)
@@ -937,7 +935,7 @@
 else if(print_where&&!no_where){
 print_where= false;
 /*85:*/
-#line 1223 "ctangle.w"
+#line 1219 "ctangle.w"
 
 {
 eight_bits a;
@@ -954,7 +952,7 @@
 }
 
 /*:85*/
-#line 889 "ctangle.w"
+#line 885 "ctangle.w"
 
 }
 else return(eight_bits)'\n';
@@ -967,7 +965,7 @@
 }
 loc++;
 if(xisdigit(c)||c=='.')/*73:*/
-#line 961 "ctangle.w"
+#line 957 "ctangle.w"
 {
 boolean hex_flag= false;
 id_first= loc-1;
@@ -1001,13 +999,13 @@
 }
 
 /*:73*/
-#line 900 "ctangle.w"
+#line 896 "ctangle.w"
 
 else if(c=='\''||c=='"'
 ||((c=='L'||c=='u'||c=='U')&&(*loc=='\''||*loc=='"'))
 ||((c=='u'&&*loc=='8')&&(*(loc+1)=='\''||*(loc+1)=='"')))
 /*74:*/
-#line 998 "ctangle.w"
+#line 994 "ctangle.w"
 {
 char delim= (char)c;
 id_first= section_text+1;
@@ -1051,11 +1049,11 @@
 }
 
 /*:74*/
-#line 904 "ctangle.w"
+#line 900 "ctangle.w"
 
 else if(isalpha((int)c)||isxalpha(c)||ishigh(c))
 /*72:*/
-#line 952 "ctangle.w"
+#line 948 "ctangle.w"
 {
 id_first= --loc;
 do
@@ -1066,10 +1064,10 @@
 }
 
 /*:72*/
-#line 906 "ctangle.w"
+#line 902 "ctangle.w"
 
 else if(c=='@')/*75:*/
-#line 1043 "ctangle.w"
+#line 1039 "ctangle.w"
 
 switch(c= ccode[(eight_bits)*loc++]){
 case ignore:continue;
@@ -1084,11 +1082,11 @@
 case section_name:
 cur_section_name_char= *(loc-1);
 /*77:*/
-#line 1088 "ctangle.w"
+#line 1084 "ctangle.w"
 {
 char*k= section_text;
 /*79:*/
-#line 1110 "ctangle.w"
+#line 1106 "ctangle.w"
 
 while(true){
 if(loc> limit&&get_line()==false){
@@ -1098,7 +1096,7 @@
 }
 c= (eight_bits)*loc;
 /*80:*/
-#line 1133 "ctangle.w"
+#line 1129 "ctangle.w"
 
 if(c=='@'){
 c= (eight_bits)*(loc+1);
@@ -1117,7 +1115,7 @@
 }
 
 /*:80*/
-#line 1118 "ctangle.w"
+#line 1114 "ctangle.w"
 
 loc++;if(k<section_text_end)k++;
 if(xisspace(c)){
@@ -1134,7 +1132,7 @@
 if(*k==' '&&k> section_text)k--;
 
 /*:79*/
-#line 1090 "ctangle.w"
+#line 1086 "ctangle.w"
 
 if(k-section_text> 3&&strncmp(k-2,"...",3)==0)
 cur_section_name= section_lookup(section_text+1,k-3,true);
@@ -1143,7 +1141,7 @@
 
 if(cur_section_name_char=='(')
 /*47:*/
-#line 498 "ctangle.w"
+#line 494 "ctangle.w"
 
 {
 for(an_output_file= cur_out_file;
@@ -1157,16 +1155,16 @@
 }
 
 /*:47*/
-#line 1098 "ctangle.w"
+#line 1094 "ctangle.w"
 
 return section_name;
 }
 
 /*:77*/
-#line 1056 "ctangle.w"
+#line 1052 "ctangle.w"
 
 case string:/*81:*/
-#line 1155 "ctangle.w"
+#line 1151 "ctangle.w"
 
 id_first= loc++;*(limit+1)= '@';*(limit+2)= '>';
 while(*loc!='@'||*(loc+1)!='>')loc++;
@@ -1176,10 +1174,10 @@
 return string;
 
 /*:81*/
-#line 1057 "ctangle.w"
+#line 1053 "ctangle.w"
 
 case ord:/*76:*/
-#line 1068 "ctangle.w"
+#line 1064 "ctangle.w"
 
 id_first= loc;
 if(*loc=='\\')
@@ -1201,13 +1199,13 @@
 return ord;
 
 /*:76*/
-#line 1058 "ctangle.w"
+#line 1054 "ctangle.w"
 
 default:return c;
 }
 
 /*:75*/
-#line 907 "ctangle.w"
+#line 903 "ctangle.w"
 
 else if(xisspace(c)){
 if(!preprocessing||loc> limit)continue;
@@ -1217,7 +1215,7 @@
 }
 else if(c=='#'&&loc==buffer+1)preprocessing= true;
 mistake:/*71:*/
-#line 929 "ctangle.w"
+#line 925 "ctangle.w"
 
 switch(c){
 case'+':if(*loc=='+')compress(plus_plus);break;
@@ -1242,7 +1240,7 @@
 }
 
 /*:71*/
-#line 915 "ctangle.w"
+#line 911 "ctangle.w"
 
 return c;
 }
@@ -1249,7 +1247,7 @@
 }
 
 /*:69*//*83:*/
-#line 1191 "ctangle.w"
+#line 1187 "ctangle.w"
 
 static void
 scan_repl(
@@ -1257,7 +1255,7 @@
 {
 sixteen_bits a;
 if(t==section_name)/*85:*/
-#line 1223 "ctangle.w"
+#line 1219 "ctangle.w"
 
 {
 eight_bits a;
@@ -1274,11 +1272,11 @@
 }
 
 /*:85*/
-#line 1197 "ctangle.w"
+#line 1193 "ctangle.w"
 
 while(true)switch(a= get_next()){
 /*86:*/
-#line 1238 "ctangle.w"
+#line 1234 "ctangle.w"
 
 case identifier:store_id(a);
 if(*buffer=='#'&&(
@@ -1291,7 +1289,7 @@
 case section_name:if(t!=section_name)goto done;
 else{
 /*87:*/
-#line 1279 "ctangle.w"
+#line 1275 "ctangle.w"
 {
 char*try_loc= loc;
 while(*try_loc==' '&&try_loc<limit)try_loc++;
@@ -1304,13 +1302,13 @@
 }
 
 /*:87*/
-#line 1249 "ctangle.w"
+#line 1245 "ctangle.w"
 
 a= cur_section_name-name_dir;
 app_repl((a/0400)+0250);
 app_repl(a%0400);
 /*85:*/
-#line 1223 "ctangle.w"
+#line 1219 "ctangle.w"
 
 {
 eight_bits a;
@@ -1327,7 +1325,7 @@
 }
 
 /*:85*/
-#line 1253 "ctangle.w"
+#line 1249 "ctangle.w"
 
 }
 break;
@@ -1339,7 +1337,7 @@
 app_repl((a/0400)+0200);
 app_repl(a%0400);
 /*85:*/
-#line 1223 "ctangle.w"
+#line 1219 "ctangle.w"
 
 {
 eight_bits a;
@@ -1356,13 +1354,13 @@
 }
 
 /*:85*/
-#line 1263 "ctangle.w"
+#line 1259 "ctangle.w"
 
 }
 break;
 case constant:case string:
 /*88:*/
-#line 1296 "ctangle.w"
+#line 1292 "ctangle.w"
 
 app_repl(a);
 while(id_first<id_loc){
@@ -1378,12 +1376,12 @@
 app_repl(a);
 
 /*:88*/
-#line 1267 "ctangle.w"
+#line 1263 "ctangle.w"
 
 break;
 case ord:
 /*89:*/
-#line 1314 "ctangle.w"
+#line 1310 "ctangle.w"
 {
 int c= (int)((eight_bits)*id_first);
 if(c=='\\'){
@@ -1433,7 +1431,7 @@
 }
 
 /*:89*/
-#line 1270 "ctangle.w"
+#line 1266 "ctangle.w"
 
 break;
 case definition:case format_code:case begin_C:if(t!=section_name)goto done;
@@ -1444,7 +1442,7 @@
 case new_section:goto done;
 
 /*:86*/
-#line 1202 "ctangle.w"
+#line 1198 "ctangle.w"
 
 case')':app_repl(a);
 if(t==macro)app_repl(' ');
@@ -1457,7 +1455,7 @@
 }
 
 /*:83*//*90:*/
-#line 1372 "ctangle.w"
+#line 1368 "ctangle.w"
 
 static void
 scan_section(void)
@@ -1472,7 +1470,7 @@
 next_control= ignore;
 while(true){
 /*92:*/
-#line 1413 "ctangle.w"
+#line 1409 "ctangle.w"
 
 while(next_control<definition)
 
@@ -1481,11 +1479,11 @@
 }
 
 /*:92*/
-#line 1386 "ctangle.w"
+#line 1382 "ctangle.w"
 
 if(next_control==definition){
 /*93:*/
-#line 1420 "ctangle.w"
+#line 1416 "ctangle.w"
 
 while((next_control= get_next())=='\n');
 if(next_control!=identifier){
@@ -1501,7 +1499,7 @@
 cur_text->text_link= macro;
 
 /*:93*/
-#line 1388 "ctangle.w"
+#line 1384 "ctangle.w"
 
 continue;
 }
@@ -1511,7 +1509,7 @@
 if(next_control==section_name){
 p= cur_section_name;
 /*94:*/
-#line 1442 "ctangle.w"
+#line 1438 "ctangle.w"
 
 while((next_control= get_next())=='+');
 if(next_control!='='&&next_control!=eq_eq)
@@ -1518,7 +1516,7 @@
 continue;
 
 /*:94*/
-#line 1396 "ctangle.w"
+#line 1392 "ctangle.w"
 
 break;
 }
@@ -1526,20 +1524,20 @@
 }
 no_where= print_where= false;
 /*95:*/
-#line 1447 "ctangle.w"
+#line 1443 "ctangle.w"
 
 /*96:*/
-#line 1452 "ctangle.w"
+#line 1448 "ctangle.w"
 
 store_two_bytes((sixteen_bits)(0150000+section_count));
 
 
 /*:96*/
-#line 1448 "ctangle.w"
+#line 1444 "ctangle.w"
 
 scan_repl(section_name);
 /*97:*/
-#line 1456 "ctangle.w"
+#line 1452 "ctangle.w"
 
 if(p==name_dir||p==NULL){
 last_unnamed->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1556,16 +1554,16 @@
 
 
 /*:97*/
-#line 1450 "ctangle.w"
+#line 1446 "ctangle.w"
 
 
 /*:95*/
-#line 1402 "ctangle.w"
+#line 1398 "ctangle.w"
 
 }
 
 /*:90*//*98:*/
-#line 1471 "ctangle.w"
+#line 1467 "ctangle.w"
 
 static void
 phase_one(void){
@@ -1578,7 +1576,7 @@
 }
 
 /*:98*//*100:*/
-#line 1487 "ctangle.w"
+#line 1483 "ctangle.w"
 
 static void
 skip_limbo(void)
@@ -1592,7 +1590,7 @@
 switch(ccode[(eight_bits)c]){
 case new_section:return;
 case translit_code:/*102:*/
-#line 1517 "ctangle.w"
+#line 1513 "ctangle.w"
 
 while(xisspace(*loc)&&loc<limit)loc++;
 loc+= 3;
@@ -1617,7 +1615,7 @@
 }
 
 /*:102*/
-#line 1499 "ctangle.w"
+#line 1495 "ctangle.w"
 break;
 case format_code:case'@':break;
 case control_text:if(c=='q'||c=='Q'){
@@ -1635,7 +1633,7 @@
 }
 
 /*:100*//*103:*/
-#line 1543 "ctangle.w"
+#line 1539 "ctangle.w"
 
 void
 print_stats(void){

Modified: trunk/Build/source/texk/web2c/cwebdir/ctangle.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctangle.w	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/ctangle.w	2023-07-26 09:36:25 UTC (rev 67734)
@@ -162,10 +162,8 @@
   return length(p)==l && strncmp(first,p->byte_start,l)==0;
 }
 
-@ The common lookup routine |id_lookup| refers to separate routines |init_node|
-and |init_p| when the data structure grows. Actually |init_p| is called only by
-\.{CWEAVE}, but we need to declare a dummy version so that
-the loader won't complain of its absence.
+@ The common lookup routine |id_lookup| refers to a separate routine
+|init_node| when the data structure grows.
 
 @c
 void
@@ -174,8 +172,6 @@
 {
     node->equiv=(void *)text_info;
 }
-void
-init_p(name_pointer p,eight_bits t) {@+(void)p;@+(void)t;@+}
 
 @* Tokens.
 Replacement texts, which represent \CEE/ code in a compressed format,

Modified: trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch	2023-07-26 09:36:25 UTC (rev 67734)
@@ -118,12 +118,6 @@
 Section 8.
 
 @x
- at f line x /* make |line| an unreserved word */
- at y
- at s line x @q/* make |line| an unreserved word */@>
- at z
-
- at x
 @d cur_line line[include_depth] /* number of current line in current file */
 @y
 @d cur_line line[include_depth] /* number of current line in current file */

Modified: trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch	2023-07-26 09:36:25 UTC (rev 67734)
@@ -157,22 +157,24 @@
 @z
 
 @x
-@ Here are the three procedures needed to complete |id_lookup|:
+@ Here are the two procedures needed to complete |id_lookup|:
 @y
-@ Here are the three procedures needed to complete |id_lookup|:
+@ Here are the two procedures needed to complete |id_lookup|:
 @s perm_meaning int
 @z
 
 @x
-  p->ilk=t; init_node(p);
+  p->xref=(void *)xmem;
 @y
-  struct perm_meaning *q=get_meaning(p);
-  p->ilk=t; init_node(p);
-  q->stamp=0;
-  q->link=NULL;
-  q->perm.id=p;
-  q->perm.prog_no=q->perm.sec_no=0;
-  strcpy(q->perm.tex_part,"\\uninitialized");
+  p->xref=(void *)xmem;
+  if (p!=name_dir) {
+    struct perm_meaning *q=get_meaning(p);
+    q->stamp=0;
+    q->link=NULL;
+    q->perm.id=p;
+    q->perm.prog_no=q->perm.sec_no=0;
+    strcpy(q->perm.tex_part,"\\uninitialized");
+  }
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-w32.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-w32.ch	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-w32.ch	2023-07-26 09:36:25 UTC (rev 67734)
@@ -20,15 +20,3 @@
 size_t l, /* length of identifier */
 eight_bits t) /* desired |ilk| */
 @z
-
- at x
-void
-init_p(
-name_pointer p,
-eight_bits t)
- at y
-void __cdecl
-init_p(
-name_pointer p,
-eight_bits t)
- at z

Modified: trunk/Build/source/texk/web2c/cwebdir/cweave.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweave.w	2023-07-25 23:43:46 UTC (rev 67733)
+++ trunk/Build/source/texk/web2c/cwebdir/cweave.w	2023-07-26 09:36:25 UTC (rev 67734)
@@ -147,7 +147,6 @@
 explains how they are to be treated when \CEE/ code is being
 formatted.
 
- at d ilk dummy.Ilk
 @d normal 0 /* ordinary identifiers have |normal| ilk */
 @d roman 1 /* normal index entries have |roman| ilk */
 @d wildcard 2 /* user-formatted index entries have |wildcard| ilk */
@@ -355,7 +354,7 @@
 tok_start[0]=tok_start[1]=tok_mem+1;@/
 text_ptr=max_text_ptr=tok_start+1;
 
-@ Here are the three procedures needed to complete |id_lookup|:
+@ Here are the two procedures needed to complete |id_lookup|:
 @c
 boolean names_match(
 name_pointer p, /* points to the proposed match */
@@ -369,14 +368,6 @@
 }
 
 void
-init_p(
-name_pointer p,
-eight_bits t)
-{
-  p->ilk=t; init_node(p);
-}
-
-void
 init_node(
 name_pointer p)
 {



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