texlive[57806] Build/source/texk/web2c: [CWEB] New release 4.1.

commits+ascherer at tug.org commits+ascherer at tug.org
Sat Feb 20 11:48:31 CET 2021


Revision: 57806
          http://tug.org/svn/texlive?view=revision&revision=57806
Author:   ascherer
Date:     2021-02-20 11:48:30 +0100 (Sat, 20 Feb 2021)
Log Message:
-----------
[CWEB] New release 4.1.

Enough changes have accumulated since the major release of CWEB 4.0
to warrant a new revision number.

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/Makefile
    trunk/Build/source/texk/web2c/cwebdir/comm-mac.ch
    trunk/Build/source/texk/web2c/cwebdir/comm-ql.ch
    trunk/Build/source/texk/web2c/cwebdir/comm-vms.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/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-bs.ch
    trunk/Build/source/texk/web2c/cwebdir/ctang-pc.ch
    trunk/Build/source/texk/web2c/cwebdir/ctang-ql.ch
    trunk/Build/source/texk/web2c/cwebdir/ctang-vms.ch
    trunk/Build/source/texk/web2c/cwebdir/ctang-w2c.ch
    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-bs.ch
    trunk/Build/source/texk/web2c/cwebdir/cweav-man.ch
    trunk/Build/source/texk/web2c/cwebdir/cweav-pc.ch
    trunk/Build/source/texk/web2c/cwebdir/cweav-ql.ch
    trunk/Build/source/texk/web2c/cwebdir/cweav-vms.ch
    trunk/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
    trunk/Build/source/texk/web2c/cwebdir/cweav-w32.ch
    trunk/Build/source/texk/web2c/cwebdir/cweave.w
    trunk/Build/source/texk/web2c/cwebdir/cwebmac.tex
    trunk/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch
    trunk/Build/source/texk/web2c/cwebdir/cwebman.tex
    trunk/Build/source/texk/web2c/cwebdir/po/cweb-tl.pot
    trunk/Build/source/texk/web2c/cwebdir/po/cweb.pot
    trunk/Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po
    trunk/Build/source/texk/web2c/cwebdir/po/de/cweb.po
    trunk/Build/source/texk/web2c/cwebdir/po/it/cweb.po
    trunk/Build/source/texk/web2c/man/ChangeLog
    trunk/Build/source/texk/web2c/man/ctwill.man

Modified: trunk/Build/source/texk/web2c/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ChangeLog	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/ChangeLog	2021-02-20 10:48:30 UTC (rev 57806)
@@ -1,3 +1,8 @@
+2021-02-20  Andreas Scherer  <https://ascherer.github.io>
+
+	* ctangleboot.cin,
+	* cwebboot.cin: CWEB release 4.1.
+
 2021-02-19  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-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/ctangleboot.cin	2021-02-20 10:48:30 UTC (rev 57806)
@@ -25,7 +25,7 @@
 /*:4*/
 #line 67 "cwebdir/ctangle.w"
 
-#define banner "This is CTANGLE, Version 4.0" \
+#define banner "This is CTANGLE, Version 4.1" \
  \
 
 #define _(S) gettext(S)  \
@@ -148,7 +148,7 @@
 #define ishigh(c) ((eight_bits) (c) > 0177)  \
  \
 
-#define compress(c) if(loc++<=limit) return(c)  \
+#define compress(c) if(loc++<=limit) return c \
 
 #define macro 0
 #define app_repl(c) {if(tok_ptr==tok_mem_end) overflow(_("token") ) ;*tok_ptr++= c;} \
@@ -263,12 +263,12 @@
 extern FILE*active_file;
 extern FILE*check_file;
 
-/*:15*//*116:*/
+/*:15*//*115:*/
 #line 473 "cwebdir/ctang-w2c.ch"
 
 extern char cb_banner[];
 
-/*:116*/
+/*:115*/
 #line 69 "cwebdir/ctangle.w"
 
 /*19:*/
@@ -370,12 +370,7 @@
 text_pointer cur_text;
 eight_bits next_control;
 
-/*:82*//*90:*/
-#line 1348 "cwebdir/ctangle.w"
-
-extern sixteen_bits section_count;
-
-/*:90*/
+/*:82*/
 #line 71 "cwebdir/ctangle.w"
 
 /*8:*/
@@ -461,22 +456,22 @@
 
 static void scan_repl(eight_bits);
 
-/*:83*//*91:*/
-#line 1355 "cwebdir/ctangle.w"
+/*:83*//*90:*/
+#line 1348 "cwebdir/ctangle.w"
 
 static void scan_section(void);
 
-/*:91*//*99:*/
-#line 1458 "cwebdir/ctangle.w"
+/*:90*//*98:*/
+#line 1455 "cwebdir/ctangle.w"
 
 static void phase_one(void);
 
-/*:99*//*101:*/
-#line 1476 "cwebdir/ctangle.w"
+/*:98*//*100:*/
+#line 1473 "cwebdir/ctangle.w"
 
 static void skip_limbo(void);
 
-/*:101*/
+/*:100*/
 #line 72 "cwebdir/ctangle.w"
 
 
@@ -542,12 +537,12 @@
 #line 1108 "cwebdir/ctangle.w"
 section_text[0]= ' ';
 
-/*:78*//*117:*/
+/*:78*//*116:*/
 #line 476 "cwebdir/ctang-w2c.ch"
 
 strncpy(cb_banner,banner,max_banner-1);
 
-/*:117*/
+/*:116*/
 #line 88 "cwebdir/ctangle.w"
 
 common_init();
@@ -752,11 +747,11 @@
 #line 130 "cwebdir/ctang-w2c.ch"
 
 fclose(C_file);C_file= NULL;
-/*106:*/
+/*105:*/
 #line 356 "cwebdir/ctang-w2c.ch"
 
 if((C_file= fopen(C_file_name,"r"))!=NULL){
-/*107:*/
+/*106:*/
 #line 363 "cwebdir/ctang-w2c.ch"
 
 char x[BUFSIZ],y[BUFSIZ];
@@ -766,7 +761,7 @@
 fatal(_("! Cannot open output file "),check_file_name);
 
 
-if(temporary_output)/*108:*/
+if(temporary_output)/*107:*/
 #line 378 "cwebdir/ctang-w2c.ch"
 
 do{
@@ -776,7 +771,7 @@
 if(comparison)comparison= !memcmp(x,y,x_size);
 }while(comparison&&!feof(C_file)&&!feof(check_file));
 
-/*:108*/
+/*:107*/
 #line 371 "cwebdir/ctang-w2c.ch"
 
 
@@ -783,10 +778,10 @@
 fclose(C_file);C_file= NULL;
 fclose(check_file);check_file= NULL;
 
-/*:107*/
+/*:106*/
 #line 358 "cwebdir/ctang-w2c.ch"
 
-/*109:*/
+/*108:*/
 #line 389 "cwebdir/ctang-w2c.ch"
 
 if(comparison)
@@ -796,13 +791,13 @@
 rename(check_file_name,C_file_name);
 }
 
-/*:109*/
+/*:108*/
 #line 359 "cwebdir/ctang-w2c.ch"
 
 }else
 rename(check_file_name,C_file_name);
 
-/*:106*/
+/*:105*/
 #line 132 "cwebdir/ctang-w2c.ch"
 
 for(an_output_file= end_output_files;an_output_file> cur_out_file;){
@@ -823,14 +818,14 @@
 cur_end= (cur_repl+1)->tok_start;
 while(stack_ptr> stack)get_output();
 flush_buffer();fclose(C_file);C_file= NULL;
-/*110:*/
+/*109:*/
 #line 402 "cwebdir/ctang-w2c.ch"
 
 if(0==strcmp("/dev/stdout",output_file_name))
-/*112:*/
+/*111:*/
 #line 429 "cwebdir/ctang-w2c.ch"
 {
-/*115:*/
+/*114:*/
 #line 460 "cwebdir/ctang-w2c.ch"
 
 char in_buf[BUFSIZ+1];
@@ -839,7 +834,7 @@
 fatal(_("! Cannot open output file "),check_file_name);
 
 
-/*:115*/
+/*:114*/
 #line 430 "cwebdir/ctang-w2c.ch"
 
 do{
@@ -848,7 +843,7 @@
 fprintf(stdout,"%s",in_buf);
 }while(!feof(check_file));
 fclose(check_file);check_file= NULL;
-/*111:*/
+/*110:*/
 #line 419 "cwebdir/ctang-w2c.ch"
 
 if(comparison)
@@ -858,19 +853,19 @@
 rename(check_file_name,output_file_name);
 }
 
-/*:111*/
+/*:110*/
 #line 437 "cwebdir/ctang-w2c.ch"
 
 }
 
-/*:112*/
+/*:111*/
 #line 404 "cwebdir/ctang-w2c.ch"
 
 else if(0==strcmp("/dev/stderr",output_file_name))
-/*113:*/
+/*112:*/
 #line 442 "cwebdir/ctang-w2c.ch"
 {
-/*115:*/
+/*114:*/
 #line 460 "cwebdir/ctang-w2c.ch"
 
 char in_buf[BUFSIZ+1];
@@ -879,7 +874,7 @@
 fatal(_("! Cannot open output file "),check_file_name);
 
 
-/*:115*/
+/*:114*/
 #line 443 "cwebdir/ctang-w2c.ch"
 
 do{
@@ -888,7 +883,7 @@
 fprintf(stderr,"%s",in_buf);
 }while(!feof(check_file));
 fclose(check_file);check_file= NULL;
-/*111:*/
+/*110:*/
 #line 419 "cwebdir/ctang-w2c.ch"
 
 if(comparison)
@@ -898,20 +893,20 @@
 rename(check_file_name,output_file_name);
 }
 
-/*:111*/
+/*:110*/
 #line 450 "cwebdir/ctang-w2c.ch"
 
 }
 
-/*:113*/
+/*:112*/
 #line 406 "cwebdir/ctang-w2c.ch"
 
 else if(0==strcmp("/dev/null",output_file_name))
-/*114:*/
+/*113:*/
 #line 455 "cwebdir/ctang-w2c.ch"
 {
 int comparison= true;
-/*111:*/
+/*110:*/
 #line 419 "cwebdir/ctang-w2c.ch"
 
 if(comparison)
@@ -921,17 +916,17 @@
 rename(check_file_name,output_file_name);
 }
 
-/*:111*/
+/*:110*/
 #line 457 "cwebdir/ctang-w2c.ch"
 
 }
 
-/*:114*/
+/*:113*/
 #line 408 "cwebdir/ctang-w2c.ch"
 
 else{
 if((C_file= fopen(output_file_name,"r"))!=NULL){
-/*107:*/
+/*106:*/
 #line 363 "cwebdir/ctang-w2c.ch"
 
 char x[BUFSIZ],y[BUFSIZ];
@@ -941,7 +936,7 @@
 fatal(_("! Cannot open output file "),check_file_name);
 
 
-if(temporary_output)/*108:*/
+if(temporary_output)/*107:*/
 #line 378 "cwebdir/ctang-w2c.ch"
 
 do{
@@ -951,7 +946,7 @@
 if(comparison)comparison= !memcmp(x,y,x_size);
 }while(comparison&&!feof(C_file)&&!feof(check_file));
 
-/*:108*/
+/*:107*/
 #line 371 "cwebdir/ctang-w2c.ch"
 
 
@@ -958,10 +953,10 @@
 fclose(C_file);C_file= NULL;
 fclose(check_file);check_file= NULL;
 
-/*:107*/
+/*:106*/
 #line 411 "cwebdir/ctang-w2c.ch"
 
-/*111:*/
+/*110:*/
 #line 419 "cwebdir/ctang-w2c.ch"
 
 if(comparison)
@@ -971,7 +966,7 @@
 rename(check_file_name,output_file_name);
 }
 
-/*:111*/
+/*:110*/
 #line 412 "cwebdir/ctang-w2c.ch"
 
 }else
@@ -978,7 +973,7 @@
 rename(check_file_name,output_file_name);
 }
 
-/*:110*/
+/*:109*/
 #line 151 "cwebdir/ctang-w2c.ch"
 
 }
@@ -1148,12 +1143,12 @@
 {
 eight_bits c;
 while(true){
-if(loc> limit&&(get_line()==false))return(new_section);
+if(loc> limit&&(get_line()==false))return new_section;
 *(limit+1)= '@';
 while(*loc!='@')loc++;
 if(loc<=limit){
 loc++;c= ccode[(eight_bits)*loc];loc++;
-if(c!=ignore||*(loc-1)=='>')return(c);
+if(c!=ignore||*(loc-1)=='>')return c;
 }
 }
 }
@@ -1168,20 +1163,20 @@
 while(true){
 if(loc> limit){
 if(is_long_comment){
-if(get_line())return(comment_continues= true);
+if(get_line())return comment_continues= true;
 else{
 #line 165 "cwebdir/ctang-w2c.ch"
 err_print(_("! Input ended in mid-comment"));
 #line 848 "cwebdir/ctangle.w"
 
-return(comment_continues= false);
+return comment_continues= false;
 }
 }
-else return(comment_continues= false);
+else return comment_continues= false;
 }
 c= *(loc++);
 if(is_long_comment&&c=='*'&&*loc=='/'){
-loc++;return(comment_continues= false);
+loc++;return comment_continues= false;
 }
 if(c=='@'){
 if(ccode[(eight_bits)*loc]==new_section){
@@ -1189,7 +1184,7 @@
 err_print(_("! Section name ended in mid-comment"));loc--;
 #line 861 "cwebdir/ctangle.w"
 
-return(comment_continues= false);
+return comment_continues= false;
 }
 else loc++;
 }
@@ -1207,7 +1202,7 @@
 while(true){
 if(loc> limit){
 if(preprocessing&&*(limit-1)!='\\')preprocessing= 0;
-if(get_line()==false)return(new_section);
+if(get_line()==false)return new_section;
 else if(print_where&&!no_where){
 print_where= false;
 /*85:*/
@@ -1229,13 +1224,13 @@
 #line 900 "cwebdir/ctangle.w"
 
 }
-else return('\n');
+else return'\n';
 }
 c= *loc;
 if(comment_continues||(c=='/'&&(*(loc+1)=='*'||*(loc+1)=='/'))){
 skip_comment(comment_continues||*(loc+1)=='*');
 
-if(comment_continues)return('\n');
+if(comment_continues)return'\n';
 else continue;
 }
 loc++;
@@ -1261,7 +1256,7 @@
 found:while(*loc=='u'||*loc=='U'||*loc=='l'||*loc=='L'
 ||*loc=='f'||*loc=='F')loc++;
 id_loc= loc;
-return(constant);
+return constant;
 }
 
 /*:73*/
@@ -1317,7 +1312,7 @@
 err_print("...");
 }
 id_loc++;
-return(string);
+return string;
 }
 
 /*:74*/
@@ -1330,7 +1325,7 @@
 id_first= --loc;
 while(isalpha((eight_bits)*++loc)||isdigit((eight_bits)*loc)
 ||isxalpha((eight_bits)*loc)||ishigh((eight_bits)*loc));
-id_loc= loc;return(identifier);
+id_loc= loc;return identifier;
 }
 
 /*:72*/
@@ -1443,7 +1438,7 @@
 /*:47*/
 #line 1098 "cwebdir/ctangle.w"
 
-return(section_name);
+return section_name;
 }
 
 /*:77*/
@@ -1459,7 +1454,7 @@
 #line 1160 "cwebdir/ctangle.w"
 
 id_loc= loc;loc+= 2;
-return(string);
+return string;
 }
 
 /*:81*/
@@ -1490,12 +1485,12 @@
 }
 }
 loc++;
-return(ord);
+return ord;
 
 /*:76*/
 #line 1058 "cwebdir/ctangle.w"
 
-default:return(c);
+default:return c;
 }
 }
 
@@ -1505,7 +1500,7 @@
 else if(xisspace(c)){
 if(!preprocessing||loc> limit)continue;
 
-else return(' ');
+else return' ';
 }
 else if(c=='#'&&loc==buffer+1)preprocessing= 1;
 mistake:/*71:*/
@@ -1535,7 +1530,7 @@
 /*:71*/
 #line 926 "cwebdir/ctangle.w"
 
-return(c);
+return c;
 }
 }
 
@@ -1744,8 +1739,8 @@
 cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr;
 }
 
-/*:84*//*92:*/
-#line 1358 "cwebdir/ctangle.w"
+/*:84*//*91:*/
+#line 1355 "cwebdir/ctangle.w"
 
 static void
 scan_section(void)
@@ -1759,8 +1754,8 @@
 }
 next_control= 0;
 while(true){
-/*93:*/
-#line 1397 "cwebdir/ctangle.w"
+/*92:*/
+#line 1394 "cwebdir/ctangle.w"
 
 while(next_control<definition)
 
@@ -1768,18 +1763,18 @@
 loc-= 2;next_control= get_next();
 }
 
-/*:93*/
-#line 1372 "cwebdir/ctangle.w"
+/*:92*/
+#line 1369 "cwebdir/ctangle.w"
 
 if(next_control==definition){
-/*94:*/
-#line 1404 "cwebdir/ctangle.w"
+/*93:*/
+#line 1401 "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 1408 "cwebdir/ctangle.w"
+#line 1405 "cwebdir/ctangle.w"
 
 continue;
 }
@@ -1793,8 +1788,8 @@
 cur_text->text_link= macro;
 }
 
-/*:94*/
-#line 1374 "cwebdir/ctangle.w"
+/*:93*/
+#line 1371 "cwebdir/ctangle.w"
 
 continue;
 }
@@ -1803,15 +1798,15 @@
 }
 if(next_control==section_name){
 p= cur_section_name;
-/*95:*/
-#line 1429 "cwebdir/ctangle.w"
+/*94:*/
+#line 1426 "cwebdir/ctangle.w"
 
 while((next_control= get_next())=='+');
 if(next_control!='='&&next_control!=eq_eq)
 continue;
 
-/*:95*/
-#line 1382 "cwebdir/ctangle.w"
+/*:94*/
+#line 1379 "cwebdir/ctangle.w"
 
 break;
 }
@@ -1818,21 +1813,21 @@
 return;
 }
 no_where= print_where= false;
+/*95:*/
+#line 1431 "cwebdir/ctangle.w"
+
 /*96:*/
-#line 1434 "cwebdir/ctangle.w"
+#line 1436 "cwebdir/ctangle.w"
 
-/*97:*/
-#line 1439 "cwebdir/ctangle.w"
-
 store_two_bytes((sixteen_bits)(0150000+section_count));
 
 
-/*:97*/
-#line 1435 "cwebdir/ctangle.w"
+/*:96*/
+#line 1432 "cwebdir/ctangle.w"
 
 scan_repl(section_name);
-/*98:*/
-#line 1443 "cwebdir/ctangle.w"
+/*97:*/
+#line 1440 "cwebdir/ctangle.w"
 
 if(p==name_dir||p==0){
 (last_unnamed)->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1848,17 +1843,17 @@
 cur_text->text_link= section_flag;
 
 
-/*:98*/
-#line 1437 "cwebdir/ctangle.w"
+/*:97*/
+#line 1434 "cwebdir/ctangle.w"
 
 
-/*:96*/
-#line 1388 "cwebdir/ctangle.w"
+/*:95*/
+#line 1385 "cwebdir/ctangle.w"
 
 }
 
-/*:92*//*100:*/
-#line 1461 "cwebdir/ctangle.w"
+/*:91*//*99:*/
+#line 1458 "cwebdir/ctangle.w"
 
 static void
 phase_one(void){
@@ -1871,8 +1866,8 @@
 phase= 2;
 }
 
-/*:100*//*102:*/
-#line 1479 "cwebdir/ctangle.w"
+/*:99*//*101:*/
+#line 1476 "cwebdir/ctangle.w"
 
 static void
 skip_limbo(void)
@@ -1886,8 +1881,8 @@
 c= *loc++;
 if(ccode[(eight_bits)c]==new_section)break;
 switch(ccode[(eight_bits)c]){
-case translit_code:/*103:*/
-#line 1508 "cwebdir/ctangle.w"
+case translit_code:/*102:*/
+#line 1505 "cwebdir/ctangle.w"
 
 while(xisspace(*loc)&&loc<limit)loc++;
 loc+= 3;
@@ -1895,7 +1890,7 @@
 ||(*(loc-3)>='0'&&*(loc-3)<='7')||!xisspace(*(loc-1)))
 #line 309 "cwebdir/ctang-w2c.ch"
 err_print(_("! Improper hex number following @l"));
-#line 1514 "cwebdir/ctangle.w"
+#line 1511 "cwebdir/ctangle.w"
 
 else{
 unsigned int i;
@@ -1907,7 +1902,7 @@
 if(loc-beg>=translit_length)
 #line 315 "cwebdir/ctang-w2c.ch"
 err_print(_("! Replacement string in @l too long"));
-#line 1524 "cwebdir/ctangle.w"
+#line 1521 "cwebdir/ctangle.w"
 
 else{
 strncpy(translit[i-0200],beg,(size_t)(loc-beg));
@@ -1915,8 +1910,8 @@
 }
 }
 
-/*:103*/
-#line 1492 "cwebdir/ctangle.w"
+/*:102*/
+#line 1489 "cwebdir/ctangle.w"
 break;
 case format_code:case'@':break;
 case control_text:if(c=='q'||c=='Q'){
@@ -1924,13 +1919,13 @@
 if(*(loc-1)!='>')
 #line 297 "cwebdir/ctang-w2c.ch"
 err_print(_("! Double @ should be used in control text"));
-#line 1498 "cwebdir/ctangle.w"
+#line 1495 "cwebdir/ctangle.w"
 
 break;
 }
 #line 303 "cwebdir/ctang-w2c.ch"
 default:err_print(_("! Double @ should be used in limbo"));
-#line 1502 "cwebdir/ctangle.w"
+#line 1499 "cwebdir/ctangle.w"
 
 }
 }
@@ -1937,8 +1932,8 @@
 }
 }
 
-/*:102*//*104:*/
-#line 1534 "cwebdir/ctangle.w"
+/*:101*//*103:*/
+#line 1531 "cwebdir/ctangle.w"
 
 void
 print_stats(void){
@@ -1951,9 +1946,9 @@
 printf(_("%ld bytes (out of %ld)\n"),
 (ptrdiff_t)(byte_ptr-byte_mem),(long)max_bytes);
 printf(_("%ld tokens (out of %ld)\n"),
-#line 1545 "cwebdir/ctangle.w"
+#line 1542 "cwebdir/ctangle.w"
 (ptrdiff_t)(tok_ptr-tok_mem),(long)max_toks);
 }
 
 #line 341 "cwebdir/ctang-w2c.ch"
-/*:104*/
+/*:103*/

Modified: trunk/Build/source/texk/web2c/cwebboot.cin
===================================================================
--- trunk/Build/source/texk/web2c/cwebboot.cin	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebboot.cin	2021-02-20 10:48:30 UTC (rev 57806)
@@ -603,7 +603,7 @@
 {
 register int c= EOF;
 register char*k;
-if(feof(fp))return(false);
+if(feof(fp))return false;
 limit= k= buffer;
 while(k<=buffer_end&&(c= getc(fp))!=EOF&&c!='\n')
 #line 92 "cwebdir/comm-w2c.ch"
@@ -616,9 +616,9 @@
 #line 175 "cwebdir/common.w"
 
 }
-if(c==EOF&&limit==buffer)return(false);
+if(c==EOF&&limit==buffer)return false;
 
-return(true);
+return true;
 }
 
 /*:24*//*28:*/
@@ -1007,7 +1007,7 @@
 /*:51*/
 #line 656 "cwebdir/common.w"
 
-return(p);
+return p;
 }
 
 /*:48*//*52:*/

Modified: trunk/Build/source/texk/web2c/cwebdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ChangeLog	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ChangeLog	2021-02-20 10:48:30 UTC (rev 57806)
@@ -1,3 +1,29 @@
+2021-02-20  Andreas Scherer  <https://ascherer.github.io>
+
+	* Makefile,
+	* comm-{mac,ql,vms,w32}.ch,
+	* comm-w2c.ch,
+	* comm-w2c.h,
+	* common.c,
+	* common.h,
+	* common.w,
+	* ctang-{bs,pc,ql,vms,w32}.ch,
+	* ctang-w2c.ch,
+	* ctangle.c,
+	* ctangle.w,
+	* ctwill-mini.ch,
+	* ctwill-w2c.ch,
+	* cweav-{bs,pc,ql,vms,w32}.ch,
+	* cweav-man.ch,
+	* cweav-w2c.ch,
+	* cweave.w,
+	* cwebmac.tex,
+	* cwebman-w2c.ch,
+	* cwebman.tex,
+	* po/{cweb,cweb-tl}.pot,
+	* po/de/{cweb,cweb-tl}.po,
+	* po/it/cweb.po: CWEB 4.1 and CWEBbin 2021.
+
 2021-02-19  Andreas Scherer  <https://ascherer.github.io>
 
 	* comm-bs.ch,

Modified: trunk/Build/source/texk/web2c/cwebdir/Makefile
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/Makefile	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/Makefile	2021-02-20 10:48:30 UTC (rev 57806)
@@ -1,6 +1,6 @@
 # This file is part of CWEB.
 # It is distributed WITHOUT ANY WARRANTY, express or implied.
-# Version 4.0 --- February 2021
+# Version 4.1 --- February 2021
 
 # Copyright (C) 1987,1990,1993,2000 Silvio Levy and Donald E. Knuth
 

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-mac.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-mac.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-mac.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -4,9 +4,9 @@
 (Contributed 13 Oct 2000 by AndPio at aol.com; slightly edited by Don Knuth)
 
 @x in limbo, change the title page document to specify Mac version
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
 @y
-  \centerline{(Version 4.0 for MacOS)}
+  \centerline{(Version 4.1 for MacOS)}
 @z
 
 @x sections 23/24: Make input_ln accept \n, \r, \n\r, or \r\n as line endings
@@ -23,7 +23,7 @@
 {
   register int  c=EOF; /* character read; initialized so some compilers won't complain */
   register char *k;  /* where next character goes */
-  if (feof(fp)) return(false);  /* we have hit end-of-file */
+  if (feof(fp)) return false;  /* we have hit end-of-file */
   limit = k = buffer;  /* beginning of buffer */
   while (k<=buffer_end && (c=getc(fp)) != EOF && c!='\n')
     if ((*(k++) = c) != ' ') limit = k;
@@ -32,9 +32,9 @@
       ungetc(c,fp); loc=buffer; err_print("! Input line too long");
 @.Input line too long@>
     }
-  if (c==EOF && limit==buffer) return(false);  /* there was nothing after
+  if (c==EOF && limit==buffer) return false;  /* there was nothing after
     the last newline */
-  return(true);
+  return true;
 }
 @y
 @ In the unlikely event that your standard I/O library does not
@@ -54,21 +54,21 @@
 {
   register int  c=EOF; /* character read; initialized so some compilers won't complain */
   register char *k;  /* where next character goes */
-  if (feof(fp)) return(false);  /* we have hit end-of-file */
+  if (feof(fp)) return false;  /* we have hit end-of-file */
   limit = k = buffer;  /* beginning of buffer */
   while (true) {
     c = getc(fp);
-    if (c==EOF)  return (limit!=buffer); /* |false|, if there was nothing after
+    if (c==EOF)  return limit!=buffer; /* |false|, if there was nothing after
       the last newline */
     else if (c=='\n' || c=='\r') { /* we have hit end-of-line */
       int d = getc(fp);
       if (c+d!='\n'+'\r') /* no combination |"\n\r"| or |"\r\n"| */
         ungetc(d,fp);
-      return (true);
+      return true;
     }
     else if (k>buffer_end) {
       ungetc(c,fp); loc=buffer; err_print("! Input line too long");
-      return (true);
+      return true;
 @.Input line too long@>
     }
     else

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-ql.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-ql.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-ql.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -10,12 +10,12 @@
 @x
 \def\v{\char'174} % vertical (|) in typewriter font
 
-\def\title{Common code for CTANGLE and CWEAVE (Version 4.0)}
+\def\title{Common code for CTANGLE and CWEAVE (Version 4.1)}
 \def\topofcontents{\null\vfill
   \centerline{\titlefont Common code for {\ttitlefont CTANGLE} and
     {\ttitlefont CWEAVE}}
   \vskip 15pt
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
   \vfill}
 \def\botofcontents{\vfill
 \noindent
@@ -22,12 +22,12 @@
 @y
 \def\v{\char'174} % vertical (|) in typewriter font
 
-\def\title{Common code for CTANGLE and CWEAVE (QL Version 4.0)}
+\def\title{Common code for CTANGLE and CWEAVE (QL Version 4.1)}
 \def\topofcontents{\null\vfill
   \centerline{\titlefont Common code for {\ttitlefont CTANGLE} and
     {\ttitlefont CWEAVE}}
   \vskip 15pt
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
   \vfill}
 \def\botofcontents{\vfill
 \noindent

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-vms.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-vms.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-vms.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -45,8 +45,8 @@
 @z
 
 @x section 68 (1987 BL) (01-FEB-1992 ST) (11-JAN-1993 DEK)
-  if (history > harmless_message) return(1);
-  else return(0);
+  if (history > harmless_message) return EXIT_FAILURE;
+  else return EXIT_SUCCESS;
 @y
 /*
    VAX/VMS and UNIX have different error status conventions.

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-w2c.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-w2c.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -17,16 +17,16 @@
 @q Please send comments, suggestions, etc. to tex-k@@tug.org.            @>
 
 @x
-\def\title{Common code for CTANGLE and CWEAVE (Version 4.0)}
+\def\title{Common code for CTANGLE and CWEAVE (Version 4.1)}
 @y
 \def\Kpathsea/{{\mc KPATHSEA\spacefactor1000}} \ifacro\sanitizecommand\Kpathsea{KPATHSEA}\fi
-\def\title{Common code for CTANGLE and CWEAVE (4.0 [\TeX~Live])}
+\def\title{Common code for CTANGLE and CWEAVE (4.1 [\TeX~Live])}
 @z
 
 @x
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
 @y
-  \centerline{(Version 4.0 [\TeX~Live])}
+  \centerline{(Version 4.1 [\TeX~Live])}
 @z
 
 @x
@@ -390,8 +390,8 @@
 @z
 
 @x
-  if (history > harmless_message) return(1);
-  else return(0);
+  if (history > harmless_message) return EXIT_FAILURE;
+  else return EXIT_SUCCESS;
 @y
   switch(history) {
   case harmless_message: return RETURN_WARN;

Modified: trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/comm-w2c.h	2021-02-20 10:48:30 UTC (rev 57806)
@@ -2,7 +2,7 @@
 % This program by Silvio Levy and Donald E. Knuth
 % is based on a program by Knuth.
 % It is distributed WITHOUT ANY WARRANTY, express or implied.
-% Version 4.0 --- February 2021 (works also with later versions)
+% Version 4.1 --- February 2021 (works also with later versions)
 
 % Copyright (C) 1987,1990,1993 Silvio Levy and Donald E. Knuth
 

Modified: trunk/Build/source/texk/web2c/cwebdir/common.c
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.c	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/common.c	2021-02-20 10:48:30 UTC (rev 57806)
@@ -459,7 +459,7 @@
 {
 register int c= EOF;
 register char*k;
-if(feof(fp))return(false);
+if(feof(fp))return false;
 limit= k= buffer;
 while(k<=buffer_end&&(c= getc(fp))!=EOF&&c!='\n')
 if((*(k++)= c)!=' ')limit= k;
@@ -468,9 +468,9 @@
 ungetc(c,fp);loc= buffer;err_print("! Input line too long");
 
 }
-if(c==EOF&&limit==buffer)return(false);
+if(c==EOF&&limit==buffer)return false;
 
-return(true);
+return true;
 }
 
 /*:24*//*28:*/
@@ -829,7 +829,7 @@
 /*:51*/
 #line 656 "common.w"
 
-return(p);
+return p;
 }
 
 /*:48*//*52:*/
@@ -1146,8 +1146,8 @@
 /*:69*/
 #line 1084 "common.w"
 
-if(history> harmless_message)return(1);
-else return(0);
+if(history> harmless_message)return EXIT_FAILURE;
+else return EXIT_SUCCESS;
 }
 
 /*:68*//*70:*/

Modified: trunk/Build/source/texk/web2c/cwebdir/common.h
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.h	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/common.h	2021-02-20 10:48:30 UTC (rev 57806)
@@ -2,7 +2,7 @@
 % This program by Silvio Levy and Donald E. Knuth
 % is based on a program by Knuth.
 % It is distributed WITHOUT ANY WARRANTY, express or implied.
-% Version 4.0 --- February 2021 (works also with later versions)
+% Version 4.1 --- February 2021 (works also with later versions)
 
 % Copyright (C) 1987,1990,1993 Silvio Levy and Donald E. Knuth
 

Modified: trunk/Build/source/texk/web2c/cwebdir/common.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/common.w	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/common.w	2021-02-20 10:48:30 UTC (rev 57806)
@@ -2,7 +2,7 @@
 % This program by Silvio Levy and Donald E. Knuth
 % is based on a program by Knuth.
 % It is distributed WITHOUT ANY WARRANTY, express or implied.
-% Version 4.0 --- February 2021
+% Version 4.1 --- February 2021
 
 % Copyright (C) 1987,1990,1993,2000 Silvio Levy and Donald E. Knuth
 
@@ -22,12 +22,12 @@
 
 \def\v{\char'174} % vertical (|) in typewriter font
 
-\def\title{Common code for CTANGLE and CWEAVE (Version 4.0)}
+\def\title{Common code for CTANGLE and CWEAVE (Version 4.1)}
 \def\topofcontents{\null\vfill
   \centerline{\titlefont Common code for {\ttitlefont CTANGLE} and
     {\ttitlefont CWEAVE}}
   \vskip 15pt
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
   \vfill}
 \def\botofcontents{\vfill
 \noindent
@@ -165,7 +165,7 @@
 {
   register int  c=EOF; /* character read; initialized so some compilers won't complain */
   register char *k;  /* where next character goes */
-  if (feof(fp)) return(false);  /* we have hit end-of-file */
+  if (feof(fp)) return false;  /* we have hit end-of-file */
   limit = k = buffer;  /* beginning of buffer */
   while (k<=buffer_end && (c=getc(fp)) != EOF && c!='\n')
     if ((*(k++) = c) != ' ') limit = k;
@@ -174,9 +174,9 @@
       ungetc(c,fp); loc=buffer; err_print("! Input line too long");
 @.Input line too long@>
     }
-  if (c==EOF && limit==buffer) return(false);  /* there was nothing after
+  if (c==EOF && limit==buffer) return false;  /* there was nothing after
     the last newline */
-  return(true);
+  return true;
 }
 
 @ Now comes the problem of deciding which file to read from next.
@@ -654,7 +654,7 @@
   @<Compute the hash code |h|@>@;
   @<Compute the name location |p|@>@;
   if (p==name_ptr) @<Enter a new name into the table at position |p|@>@;
-  return(p);
+  return p;
 }
 
 @ A simple hash code is used: If the sequence of
@@ -1082,8 +1082,8 @@
   if (show_stats)
     print_stats(); /* print statistics about memory usage */
   @<Print the job |history|@>@;
-  if (history > harmless_message) return(1);
-  else return(0);
+  if (history > harmless_message) return EXIT_FAILURE;
+  else return EXIT_SUCCESS;
 }
 
 @ @<Print the job |history|@>=

Modified: trunk/Build/source/texk/web2c/cwebdir/ctang-bs.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctang-bs.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctang-bs.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -17,12 +17,12 @@
 The ``banner line'' defined here should be changed whenever \.{CTANGLE}
 is modified.
 
- at d banner "This is CTANGLE (Version 4.0)"
+ at d banner "This is CTANGLE (Version 4.1)"
 @y
 The ``banner line'' defined here should be changed whenever \.{CTANGLE}
 is modified.
 
- at d banner "This is CTANGLE (Version 4.0pc/big)"
+ at d banner "This is CTANGLE (Version 4.1pc/big)"
 @z
 
 

Modified: trunk/Build/source/texk/web2c/cwebdir/ctang-pc.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctang-pc.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctang-pc.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -9,9 +9,9 @@
 alternate change files with -bs suffix instead of -pc.
 
 @x section 1
- at d banner "This is CTANGLE (Version 4.0)"
+ at d banner "This is CTANGLE (Version 4.1)"
 @y
- at d banner "This is CTANGLE (Version 4.0pc)"
+ at d banner "This is CTANGLE (Version 4.1pc)"
 @z
 @x section 4
 @d max_bytes 1000000 /* the number of bytes in identifiers,

Modified: trunk/Build/source/texk/web2c/cwebdir/ctang-ql.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctang-ql.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctang-ql.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -7,15 +7,15 @@
 
 
 @x
-\def\title{CTANGLE (Version 4.0)}
+\def\title{CTANGLE (Version 4.1)}
 @y
-\def\title{CTANGLE (QL Version 4.0)}
+\def\title{CTANGLE (QL Version 4.1)}
 @z
 
 @x section 1
- at d banner "This is CTANGLE (Version 4.0)"
+ at d banner "This is CTANGLE (Version 4.1)"
 @y
- at d banner "This is CTANGLE (QL Version 4.0)"
+ at d banner "This is CTANGLE (QL Version 4.1)"
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/cwebdir/ctang-vms.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctang-vms.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctang-vms.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -10,9 +10,9 @@
 (these changes not necessary for initial bootstrapping)
 
 @x section 1 (01-FEB-1992 ST)
- at d banner "This is CTANGLE (Version 4.0)"
+ at d banner "This is CTANGLE (Version 4.1)"
 @y
- at d banner "This is CTANGLE (VAX/VMS Version 4.0)"
+ at d banner "This is CTANGLE (VAX/VMS Version 4.1)"
 @z
 
 @x section 3 (01-FEB-1992 ST)

Modified: trunk/Build/source/texk/web2c/cwebdir/ctang-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctang-w2c.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctang-w2c.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -17,15 +17,15 @@
 @q Please send comments, suggestions, etc. to tex-k@@tug.org.            @>
 
 @x
-\def\title{CTANGLE (Version 4.0)}
+\def\title{CTANGLE (Version 4.1)}
 @y
-\def\title{CTANGLE (Version 4.0 [\TeX~Live])}
+\def\title{CTANGLE (Version 4.1 [\TeX~Live])}
 @z
 
 @x
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
 @y
-  \centerline{(Version 4.0 [\TeX~Live])}
+  \centerline{(Version 4.1 [\TeX~Live])}
 @z
 
 @x
@@ -41,9 +41,9 @@
 @z
 
 @x
- at d banner "This is CTANGLE (Version 4.0)"
+ at d banner "This is CTANGLE (Version 4.1)"
 @y
- at d banner "This is CTANGLE, Version 4.0"
+ at d banner "This is CTANGLE, Version 4.1"
   /* will be extended by the \TeX~Live |versionstring| */
 @z
 
@@ -343,7 +343,7 @@
 quarter century.
 
 Care has been taken to keep the original section numbering intact, so this new
-material should nicely integrate with the original ``\&{105.~Index}.''
+material should nicely integrate with the original ``\&{104.~Index}.''
 
 @* Output file update.  Most \CEE/ projects are controlled by a
 \.{Makefile} that automatically takes care of the temporal dependecies

Modified: trunk/Build/source/texk/web2c/cwebdir/ctang-w32.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctang-w32.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctang-w32.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -4,9 +4,9 @@
 Changes necessary for compiling with Borland C/C++
 
 @x section 1
- at d banner "This is CTANGLE (Version 4.0)"
+ at d banner "This is CTANGLE (Version 4.1)"
 @y
- at d banner "This is CTANGLE (Version 4.0win32)"
+ at d banner "This is CTANGLE (Version 4.1win32)"
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/cwebdir/ctangle.c
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctangle.c	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctangle.c	2021-02-20 10:48:30 UTC (rev 57806)
@@ -15,7 +15,7 @@
 /*:4*/
 #line 67 "ctangle.w"
 
-#define banner "This is CTANGLE (Version 4.0)" \
+#define banner "This is CTANGLE (Version 4.1)" \
 
 #define ctangle false
 #define cweave true \
@@ -137,7 +137,7 @@
 #define ishigh(c) ((eight_bits) (c) > 0177)  \
  \
 
-#define compress(c) if(loc++<=limit) return(c)  \
+#define compress(c) if(loc++<=limit) return c \
 
 #define macro 0
 #define app_repl(c) {if(tok_ptr==tok_mem_end) overflow("token") ;*tok_ptr++= c;} \
@@ -346,12 +346,7 @@
 text_pointer cur_text;
 eight_bits next_control;
 
-/*:82*//*90:*/
-#line 1348 "ctangle.w"
-
-extern sixteen_bits section_count;
-
-/*:90*/
+/*:82*/
 #line 71 "ctangle.w"
 
 /*8:*/
@@ -436,22 +431,22 @@
 
 static void scan_repl(eight_bits);
 
-/*:83*//*91:*/
-#line 1355 "ctangle.w"
+/*:83*//*90:*/
+#line 1348 "ctangle.w"
 
 static void scan_section(void);
 
-/*:91*//*99:*/
-#line 1458 "ctangle.w"
+/*:90*//*98:*/
+#line 1455 "ctangle.w"
 
 static void phase_one(void);
 
-/*:99*//*101:*/
-#line 1476 "ctangle.w"
+/*:98*//*100:*/
+#line 1473 "ctangle.w"
 
 static void skip_limbo(void);
 
-/*:101*/
+/*:100*/
 #line 72 "ctangle.w"
 
 
@@ -884,12 +879,12 @@
 {
 eight_bits c;
 while(true){
-if(loc> limit&&(get_line()==false))return(new_section);
+if(loc> limit&&(get_line()==false))return new_section;
 *(limit+1)= '@';
 while(*loc!='@')loc++;
 if(loc<=limit){
 loc++;c= ccode[(eight_bits)*loc];loc++;
-if(c!=ignore||*(loc-1)=='>')return(c);
+if(c!=ignore||*(loc-1)=='>')return c;
 }
 }
 }
@@ -904,24 +899,24 @@
 while(true){
 if(loc> limit){
 if(is_long_comment){
-if(get_line())return(comment_continues= true);
+if(get_line())return comment_continues= true;
 else{
 err_print("! Input ended in mid-comment");
 
-return(comment_continues= false);
+return comment_continues= false;
 }
 }
-else return(comment_continues= false);
+else return comment_continues= false;
 }
 c= *(loc++);
 if(is_long_comment&&c=='*'&&*loc=='/'){
-loc++;return(comment_continues= false);
+loc++;return comment_continues= false;
 }
 if(c=='@'){
 if(ccode[(eight_bits)*loc]==new_section){
 err_print("! Section name ended in mid-comment");loc--;
 
-return(comment_continues= false);
+return comment_continues= false;
 }
 else loc++;
 }
@@ -939,7 +934,7 @@
 while(true){
 if(loc> limit){
 if(preprocessing&&*(limit-1)!='\\')preprocessing= 0;
-if(get_line()==false)return(new_section);
+if(get_line()==false)return new_section;
 else if(print_where&&!no_where){
 print_where= false;
 /*85:*/
@@ -961,13 +956,13 @@
 #line 900 "ctangle.w"
 
 }
-else return('\n');
+else return'\n';
 }
 c= *loc;
 if(comment_continues||(c=='/'&&(*(loc+1)=='*'||*(loc+1)=='/'))){
 skip_comment(comment_continues||*(loc+1)=='*');
 
-if(comment_continues)return('\n');
+if(comment_continues)return'\n';
 else continue;
 }
 loc++;
@@ -993,7 +988,7 @@
 found:while(*loc=='u'||*loc=='U'||*loc=='l'||*loc=='L'
 ||*loc=='f'||*loc=='F')loc++;
 id_loc= loc;
-return(constant);
+return constant;
 }
 
 /*:73*/
@@ -1043,7 +1038,7 @@
 err_print("...");
 }
 id_loc++;
-return(string);
+return string;
 }
 
 /*:74*/
@@ -1056,7 +1051,7 @@
 id_first= --loc;
 while(isalpha((eight_bits)*++loc)||isdigit((eight_bits)*loc)
 ||isxalpha((eight_bits)*loc)||ishigh((eight_bits)*loc));
-id_loc= loc;return(identifier);
+id_loc= loc;return identifier;
 }
 
 /*:72*/
@@ -1155,7 +1150,7 @@
 /*:47*/
 #line 1098 "ctangle.w"
 
-return(section_name);
+return section_name;
 }
 
 /*:77*/
@@ -1169,7 +1164,7 @@
 if(loc>=limit)err_print("! Verbatim string didn't end");
 
 id_loc= loc;loc+= 2;
-return(string);
+return string;
 }
 
 /*:81*/
@@ -1196,12 +1191,12 @@
 }
 }
 loc++;
-return(ord);
+return ord;
 
 /*:76*/
 #line 1058 "ctangle.w"
 
-default:return(c);
+default:return c;
 }
 }
 
@@ -1211,7 +1206,7 @@
 else if(xisspace(c)){
 if(!preprocessing||loc> limit)continue;
 
-else return(' ');
+else return' ';
 }
 else if(c=='#'&&loc==buffer+1)preprocessing= 1;
 mistake:/*71:*/
@@ -1241,7 +1236,7 @@
 /*:71*/
 #line 926 "ctangle.w"
 
-return(c);
+return c;
 }
 }
 
@@ -1438,8 +1433,8 @@
 cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr;
 }
 
-/*:84*//*92:*/
-#line 1358 "ctangle.w"
+/*:84*//*91:*/
+#line 1355 "ctangle.w"
 
 static void
 scan_section(void)
@@ -1453,8 +1448,8 @@
 }
 next_control= 0;
 while(true){
-/*93:*/
-#line 1397 "ctangle.w"
+/*92:*/
+#line 1394 "ctangle.w"
 
 while(next_control<definition)
 
@@ -1462,12 +1457,12 @@
 loc-= 2;next_control= get_next();
 }
 
-/*:93*/
-#line 1372 "ctangle.w"
+/*:92*/
+#line 1369 "ctangle.w"
 
 if(next_control==definition){
-/*94:*/
-#line 1404 "ctangle.w"
+/*93:*/
+#line 1401 "ctangle.w"
 {
 while((next_control= get_next())=='\n');
 if(next_control!=identifier){
@@ -1485,8 +1480,8 @@
 cur_text->text_link= macro;
 }
 
-/*:94*/
-#line 1374 "ctangle.w"
+/*:93*/
+#line 1371 "ctangle.w"
 
 continue;
 }
@@ -1495,15 +1490,15 @@
 }
 if(next_control==section_name){
 p= cur_section_name;
-/*95:*/
-#line 1429 "ctangle.w"
+/*94:*/
+#line 1426 "ctangle.w"
 
 while((next_control= get_next())=='+');
 if(next_control!='='&&next_control!=eq_eq)
 continue;
 
-/*:95*/
-#line 1382 "ctangle.w"
+/*:94*/
+#line 1379 "ctangle.w"
 
 break;
 }
@@ -1510,21 +1505,21 @@
 return;
 }
 no_where= print_where= false;
+/*95:*/
+#line 1431 "ctangle.w"
+
 /*96:*/
-#line 1434 "ctangle.w"
+#line 1436 "ctangle.w"
 
-/*97:*/
-#line 1439 "ctangle.w"
-
 store_two_bytes((sixteen_bits)(0150000+section_count));
 
 
-/*:97*/
-#line 1435 "ctangle.w"
+/*:96*/
+#line 1432 "ctangle.w"
 
 scan_repl(section_name);
-/*98:*/
-#line 1443 "ctangle.w"
+/*97:*/
+#line 1440 "ctangle.w"
 
 if(p==name_dir||p==0){
 (last_unnamed)->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1540,17 +1535,17 @@
 cur_text->text_link= section_flag;
 
 
-/*:98*/
-#line 1437 "ctangle.w"
+/*:97*/
+#line 1434 "ctangle.w"
 
 
-/*:96*/
-#line 1388 "ctangle.w"
+/*:95*/
+#line 1385 "ctangle.w"
 
 }
 
-/*:92*//*100:*/
-#line 1461 "ctangle.w"
+/*:91*//*99:*/
+#line 1458 "ctangle.w"
 
 static void
 phase_one(void){
@@ -1563,8 +1558,8 @@
 phase= 2;
 }
 
-/*:100*//*102:*/
-#line 1479 "ctangle.w"
+/*:99*//*101:*/
+#line 1476 "ctangle.w"
 
 static void
 skip_limbo(void)
@@ -1578,8 +1573,8 @@
 c= *loc++;
 if(ccode[(eight_bits)c]==new_section)break;
 switch(ccode[(eight_bits)c]){
-case translit_code:/*103:*/
-#line 1508 "ctangle.w"
+case translit_code:/*102:*/
+#line 1505 "ctangle.w"
 
 while(xisspace(*loc)&&loc<limit)loc++;
 loc+= 3;
@@ -1603,8 +1598,8 @@
 }
 }
 
-/*:103*/
-#line 1492 "ctangle.w"
+/*:102*/
+#line 1489 "ctangle.w"
 break;
 case format_code:case'@':break;
 case control_text:if(c=='q'||c=='Q'){
@@ -1621,8 +1616,8 @@
 }
 }
 
-/*:102*//*104:*/
-#line 1534 "ctangle.w"
+/*:101*//*103:*/
+#line 1531 "ctangle.w"
 
 void
 print_stats(void){
@@ -1637,4 +1632,4 @@
 (ptrdiff_t)(tok_ptr-tok_mem),(long)max_toks);
 }
 
-/*:104*/
+/*:103*/

Modified: trunk/Build/source/texk/web2c/cwebdir/ctangle.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctangle.w	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctangle.w	2021-02-20 10:48:30 UTC (rev 57806)
@@ -2,7 +2,7 @@
 % This program by Silvio Levy and Donald E. Knuth
 % is based on a program by Knuth.
 % It is distributed WITHOUT ANY WARRANTY, express or implied.
-% Version 4.0 --- February 2021
+% Version 4.1 --- February 2021
 
 % Copyright (C) 1987,1990,1993,2000 Silvio Levy and Donald E. Knuth
 
@@ -27,11 +27,11 @@
 \mathchardef\RA="3221 % right arrow
 \mathchardef\BA="3224 % double arrow
 
-\def\title{CTANGLE (Version 4.0)}
+\def\title{CTANGLE (Version 4.1)}
 \def\topofcontents{\null\vfill
   \centerline{\titlefont The {\ttitlefont CTANGLE} processor}
   \vskip 15pt
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
   \vfill}
 \def\botofcontents{\vfill
 \noindent
@@ -61,7 +61,7 @@
 The ``banner line'' defined here should be changed whenever \.{CTANGLE}
 is modified.
 
- at d banner "This is CTANGLE (Version 4.0)"
+ at d banner "This is CTANGLE (Version 4.1)"
 
 @c
 @<Include files@>@/
@@ -805,12 +805,12 @@
 {
   eight_bits c; /* control code found */
   while (true) {
-    if (loc>limit && (get_line()==false)) return(new_section);
+    if (loc>limit && (get_line()==false)) return new_section;
     *(limit+1)='@@';
     while (*loc!='@@') loc++;
     if (loc<=limit) {
       loc++; c=ccode[(eight_bits)*loc]; loc++;
-      if (c!=ignore || *(loc-1)=='>') return(c);
+      if (c!=ignore || *(loc-1)=='>') return c;
     }
   }
 }
@@ -842,24 +842,24 @@
   while (true) {
     if (loc>limit) {
       if (is_long_comment) {
-        if(get_line()) return(comment_continues=true);
+        if(get_line()) return comment_continues=true;
         else{
           err_print("! Input ended in mid-comment");
 @.Input ended in mid-comment@>
-          return(comment_continues=false);
+          return comment_continues=false;
         }
       }
-      else return(comment_continues=false);
+      else return comment_continues=false;
     }
     c=*(loc++);
     if (is_long_comment && c=='*' && *loc=='/') {
-      loc++; return(comment_continues=false);
+      loc++; return comment_continues=false;
     }
     if (c=='@@') {
       if (ccode[(eight_bits)*loc]==new_section) {
         err_print("! Section name ended in mid-comment"); loc--;
 @.Section name ended in mid-comment@>
-        return(comment_continues=false);
+        return comment_continues=false;
       }
       else loc++;
     }
@@ -894,18 +894,18 @@
   while (true) {
     if (loc>limit) {
       if (preprocessing && *(limit-1)!='\\') preprocessing=0;
-      if (get_line()==false) return(new_section);
+      if (get_line()==false) return new_section;
       else if (print_where && !no_where) {
           print_where=false;
           @<Insert the line number into |tok_mem|@>@;
         }
-        else return ('\n');
+        else return '\n';
     }
     c=*loc;
     if (comment_continues || (c=='/' && (*(loc+1)=='*' || *(loc+1)=='/'))) {
       skip_comment(comment_continues||*(loc+1)=='*');
           /* scan to end of comment or newline */
-      if (comment_continues) return('\n');
+      if (comment_continues) return '\n';
       else continue;
     }
     loc++;
@@ -920,11 +920,11 @@
     else if (xisspace(c)) {
         if (!preprocessing || loc>limit) continue;
           /* we don't want a blank after a final backslash */
-        else return(' '); /* ignore spaces and tabs, unless preprocessing */
+        else return ' '; /* ignore spaces and tabs, unless preprocessing */
     }
     else if (c=='#' && loc==buffer+1) preprocessing=1;
     mistake: @<Compress two-symbol operator@>@;
-    return(c);
+    return c;
   }
 }
 
@@ -935,7 +935,7 @@
 The compound assignment operators (e.g., \.{+=}) are
 treated as separate tokens.
 
- at d compress(c) if (loc++<=limit) return(c)
+ at d compress(c) if (loc++<=limit) return c
 
 @<Compress tw...@>=
 switch(c) {
@@ -963,7 +963,7 @@
   id_first=--loc;
   while (isalpha((eight_bits)*++loc) || isdigit((eight_bits)*loc) @|
       || isxalpha((eight_bits)*loc) || ishigh((eight_bits)*loc));
-  id_loc=loc; return(identifier);
+  id_loc=loc; return identifier;
 }
 
 @ @<Get a constant@>= {
@@ -986,7 +986,7 @@
  found: while (*loc=='u' || *loc=='U' || *loc=='l' || *loc=='L'
              || *loc=='f' || *loc=='F') loc++;
   id_loc=loc;
-  return(constant);
+  return constant;
 }
 
 @ \CEE/ strings and character constants, delimited by double and single
@@ -1033,7 +1033,7 @@
     err_print("...");
   }
   id_loc++;
-  return(string);
+  return string;
 }
 
 @ After an \.{@@} sign has been scanned, the next character tells us
@@ -1056,7 +1056,7 @@
       @<Scan the section name and make |cur_section_name| point to it@>@;
     case string: @<Scan a verbatim string@>@;
     case ord: @<Scan an ASCII constant@>@;
-    default: return(c);
+    default: return c;
   }
 }
 
@@ -1085,7 +1085,7 @@
     }
   }
   loc++;
-  return(ord);
+  return ord;
 
 @ @<Scan the section name...@>= {
   char *k; /* pointer into |section_text| */
@@ -1096,7 +1096,7 @@
   if (cur_section_name_char=='(')
     @<If it's not there, add |cur_section_name| to the output file stack, or
           complain we're out of room@>@;
-  return(section_name);
+  return section_name;
 }
 
 @ Section names are placed into the |section_text| array with consecutive spaces,
@@ -1159,7 +1159,7 @@
   if (loc>=limit) err_print("! Verbatim string didn't end");
 @.Verbatim string didn't end@>
   id_loc=loc; loc+=2;
-  return(string);
+  return string;
 }
 
 @* Scanning a macro definition.
@@ -1345,17 +1345,14 @@
 uses |section_count| to keep track of the current section number; with luck,
 \.{CWEAVE} and \.{CTANGLE} will both assign the same numbers to sections.
 
-@<Global...@>=
-extern sixteen_bits section_count; /* the current section number */
+@<Predecl...@>=
+static void scan_section(void);@/
 
 @ 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.
 
-@<Predecl...@>=
-static void scan_section(void);@/
-
-@ @c
+ at c
 static void
 scan_section(void)
 {

Modified: trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctwill-mini.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -14,7 +14,7 @@
 @z
 
 @x
- at d banner "This is CTWILL, Version 4.0"
+ at d banner "This is CTWILL, Version 4.1"
 @y
 \bigskip
 {\font\itt=cmitt10 \font\bit=cmbxti10
@@ -35,7 +35,7 @@
 faithful overall rendering of {\itt CTWILL}'s code, though. \hfill
 ---Enjoy!\bigskip}
 
- at d banner "This is CTWILL, Version 4.0"
+ at d banner "This is CTWILL, Version 4.1"
 @z
 
 Section 2.

Modified: trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -34,9 +34,9 @@
 @z
 
 @x
-\def\title{CWEAVE (Version 4.0)}
+\def\title{CWEAVE (Version 4.1)}
 @y
-\def\title{CTWILL (Version 4.0 [\TeX~Live])}
+\def\title{CTWILL (Version 4.1 [\TeX~Live])}
 @z
 
 @x
@@ -46,9 +46,9 @@
 @z
 
 @x
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
 @y
-  \centerline{(Version 4.0 [\TeX~Live])}
+  \centerline{(Version 4.1 [\TeX~Live])}
 @z
 
 @x
@@ -75,7 +75,7 @@
 The ``banner line'' defined here should be changed whenever \.{CWEAVE}
 is modified.
 
- at d banner "This is CWEAVE (Version 4.0)"
+ at d banner "This is CWEAVE (Version 4.1)"
 @y
 This is the \.{CTWILL} program by D. E. Knuth, based
 on \.{CWEAVE} by Silvio Levy and D.~E. Knuth. It is also based on
@@ -94,7 +94,7 @@
 The ``banner line'' defined here should be changed whenever \.{CTWILL} is
 modified. The version number parallels the corresponding version of \.{CWEAVE}.
 
- at d banner "This is CTWILL, Version 4.0"
+ at d banner "This is CTWILL, Version 4.1"
   /* will be extended by the \TeX~Live |versionstring| */
 @z
 

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-bs.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-bs.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-bs.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -20,12 +20,12 @@
 The ``banner line'' defined here should be changed whenever \.{CWEAVE}
 is modified.
 
- at d banner "This is CWEAVE (Version 4.0)"
+ at d banner "This is CWEAVE (Version 4.1)"
 @y
 The ``banner line'' defined here should be changed whenever \.{CWEAVE}
 is modified.
 
- at d banner "This is CWEAVE (Version 4.0pc/big)"
+ at d banner "This is CWEAVE (Version 4.1pc/big)"
 @z
 
 

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-man.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-man.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-man.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -16,7 +16,7 @@
 }
 @y
 \def\botofcontents{\vfill\titlefalse}
-\def\contentspagenumber{111}
+\def\contentspagenumber{110}
 \def\title{APPENDIX F: CWEAVE}
 \let\K=\leftarrow
 @z

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-pc.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-pc.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-pc.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -11,9 +11,9 @@
 change files that have -bs in their name instead of -pc.)
 
 @x section 1
- at d banner "This is CWEAVE (Version 4.0)"
+ at d banner "This is CWEAVE (Version 4.1)"
 @y
- at d banner "This is CWEAVE (Version 4.0pc)"
+ at d banner "This is CWEAVE (Version 4.1pc)"
 @z
 
 @x section 4

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-ql.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-ql.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-ql.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -7,15 +7,15 @@
 
 
 @x
-\def\title{CWEAVE (Version 4.0)}
+\def\title{CWEAVE (Version 4.1)}
 @y
-\def\title{CWEAVE (QL Version 4.0)}
+\def\title{CWEAVE (QL Version 4.1)}
 @z
 
 @x section 1
- at d banner "This is CWEAVE (Version 4.0)"
+ at d banner "This is CWEAVE (Version 4.1)"
 @y
- at d banner "This is CWEAVE (QL Version 4.0)"
+ at d banner "This is CWEAVE (QL Version 4.1)"
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-vms.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-vms.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-vms.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -13,9 +13,9 @@
 (also modified by Don Knuth to keep version numbers uptodate)
 
 @x section 1 (01-FEB-1992 ST)
- at d banner "This is CWEAVE (Version 4.0)"
+ at d banner "This is CWEAVE (Version 4.1)"
 @y
- at d banner "This is CWEAVE (VAX/VMS Version 4.0)"
+ at d banner "This is CWEAVE (VAX/VMS Version 4.1)"
 @z
 
 @x section 3 (01-FEB-1992 ST)

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-w2c.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-w2c.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -17,15 +17,15 @@
 @q Please send comments, suggestions, etc. to tex-k@@tug.org.            @>
 
 @x
-\def\title{CWEAVE (Version 4.0)}
+\def\title{CWEAVE (Version 4.1)}
 @y
-\def\title{CWEAVE (Version 4.0 [\TeX~Live])}
+\def\title{CWEAVE (Version 4.1 [\TeX~Live])}
 @z
 
 @x
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
 @y
-  \centerline{(Version 4.0 [\TeX~Live])}
+  \centerline{(Version 4.1 [\TeX~Live])}
 @z
 
 @x
@@ -41,9 +41,9 @@
 @z
 
 @x
- at d banner "This is CWEAVE (Version 4.0)"
+ at d banner "This is CWEAVE (Version 4.1)"
 @y
- at d banner "This is CWEAVE, Version 4.0"
+ at d banner "This is CWEAVE, Version 4.1"
   /* will be extended by the \TeX~Live |versionstring| */
 @z
 

Modified: trunk/Build/source/texk/web2c/cwebdir/cweav-w32.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweav-w32.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cweav-w32.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -2,9 +2,9 @@
 (Contributed by Fabrice Popineau, February 2002)
 
 @x section 1
- at d banner "This is CWEAVE (Version 4.0)"
+ at d banner "This is CWEAVE (Version 4.1)"
 @y
- at d banner "This is CWEAVE (Version 4.0win32)"
+ at d banner "This is CWEAVE (Version 4.1win32)"
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/cwebdir/cweave.w
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cweave.w	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cweave.w	2021-02-20 10:48:30 UTC (rev 57806)
@@ -2,7 +2,7 @@
 % This program by Silvio Levy and Donald E. Knuth
 % is based on a program by Knuth.
 % It is distributed WITHOUT ANY WARRANTY, express or implied.
-% Version 4.0 --- February 2021
+% Version 4.1 --- February 2021
 
 % Copyright (C) 1987,1990,1993,2000 Silvio Levy and Donald E. Knuth
 
@@ -32,11 +32,11 @@
 \def\skipxTeX{\\{skip\_\TEX/}}
 \def\copyxTeX{\\{copy\_\TEX/}}
 
-\def\title{CWEAVE (Version 4.0)}
+\def\title{CWEAVE (Version 4.1)}
 \def\topofcontents{\null\vfill
   \centerline{\titlefont The {\ttitlefont CWEAVE} processor}
   \vskip 15pt
-  \centerline{(Version 4.0)}
+  \centerline{(Version 4.1)}
   \vfill}
 \def\botofcontents{\vfill
 \noindent
@@ -67,7 +67,7 @@
 The ``banner line'' defined here should be changed whenever \.{CWEAVE}
 is modified.
 
- at d banner "This is CWEAVE (Version 4.0)"
+ at d banner "This is CWEAVE (Version 4.1)"
 
 @c @<Include files@>@/
 @h
@@ -618,11 +618,11 @@
 skip_TeX(void) /* skip past pure \TEX/ code */
 {
   while (true) {
-    if (loc>limit && get_line()==false) return(new_section);
+    if (loc>limit && get_line()==false) return new_section;
     *(limit+1)='@@';
     while (*loc!='@@' && *loc!='|') loc++;
-    if (*loc++ =='|') return('|');
-    if (loc<=limit) return(ccode[(eight_bits)*(loc++)]);
+    if (*loc++ =='|') return '|';
+    if (loc<=limit) return ccode[(eight_bits)*(loc++)];
   }
 }
 
@@ -690,7 +690,7 @@
   eight_bits c; /* the current character */
   while (true) {
     @<Check if we're at the end of a preprocessor command@>@;
-    if (loc>limit && get_line()==false) return(new_section);
+    if (loc>limit && get_line()==false) return new_section;
     c=*(loc++);
     if (xisdigit(c) || c=='.') @<Get a constant@>@;
     else if (c=='\'' || c=='"'@|
@@ -704,7 +704,7 @@
     else if (xisspace(c)) continue; /* ignore spaces and tabs */
     if (c=='#' && loc==buffer+1) @<Raise preprocessor flag@>@;
     mistake: @<Compress two-symbol operator@>@;
-    return(c);
+    return c;
   }
 }
 
@@ -727,7 +727,7 @@
 @ @<Raise prep...@>= {
   preprocessing=true;
   @<Check if next token is |include|@>@;
-  return (left_preproc);
+  return left_preproc;
 }
 
 @ An additional complication is the freakish use of \.< and \.> to delimit
@@ -747,10 +747,10 @@
 
 @<Check if we're at...@>=
   while (loc==limit-1 && preprocessing && *loc=='\\')
-    if (get_line()==false) return(new_section); /* still in preprocessor mode */
+    if (get_line()==false) return new_section; /* still in preprocessor mode */
   if (loc>=limit && preprocessing) {
     preprocessing=sharp_include_line=false;
-    return(right_preproc);
+    return right_preproc;
   }
 
 @ The following code assigns values to the combinations \.{++},
@@ -760,7 +760,7 @@
 The compound assignment operators (e.g., \.{+=}) are
 treated as separate tokens.
 
- at d compress(c) if (loc++<=limit) return(c)
+ at d compress(c) if (loc++<=limit) return c
 
 @<Compress tw...@>=
 switch(c) {
@@ -790,7 +790,7 @@
   id_first=--loc;
   while (isalpha((eight_bits)*++loc) || isdigit((eight_bits)*loc) @|
       || isxalpha((eight_bits)*loc) || ishigh((eight_bits)*loc));
-  id_loc=loc; return(identifier);
+  id_loc=loc; return identifier;
 }
 
 @ Different conventions are followed by \TEX/ and \CEE/ to express octal
@@ -826,7 +826,7 @@
          || *loc=='f' || *loc=='F') {
     *id_loc++='$'; *id_loc++=toupper((eight_bits)*loc); loc++;
   }
-  return(constant);
+  return constant;
 }
 
 @ \CEE/ strings and character constants, delimited by double and single
@@ -873,7 +873,7 @@
     printf("..."); mark_error;
   }
   id_loc++;
-  return(string);
+  return string;
 }
 
 @ After an \.{@@} sign has been scanned, the next character tells us
@@ -887,12 +887,12 @@
     case underline: xref_switch=def_flag; continue;
     case trace: tracing=c-'0'; continue;
     case xref_roman: case xref_wildcard: case xref_typewriter: case noop:
-    case TeX_string: c=ccode[(eight_bits)c]; skip_restricted(); return(c);
+    case TeX_string: c=ccode[(eight_bits)c]; skip_restricted(); return c;
     case section_name:
       @<Scan the section name and make |cur_section| point to it@>@;
     case verbatim: @<Scan a verbatim string@>@;
     case ord: @<Get a string@>@;
-    default: return(ccode[(eight_bits)c]);
+    default: return ccode[(eight_bits)c];
   }
 }
 
@@ -906,7 +906,7 @@
   if (k-section_text>3 && strncmp(k-2,"...",3)==0)
         cur_section=section_lookup(section_text+1,k-3,1); /* 1 indicates a prefix */
   else cur_section=section_lookup(section_text+1,k,0);
-  xref_switch=0; return(section_name);
+  xref_switch=0; return section_name;
 }
 
 @ Section names are placed into the |section_text| array with consecutive spaces,
@@ -994,7 +994,7 @@
   if (loc>=limit) err_print("! Verbatim string didn't end");
 @.Verbatim string didn't end@>
   id_loc=loc; loc+=2;
-  return (verbatim);
+  return verbatim;
 }
 
 @** Phase one processing.
@@ -1527,14 +1527,14 @@
 {
   char c; /* current character being copied */
   while (true) {
-    if (loc>limit && (finish_line(), get_line()==false)) return(new_section);
+    if (loc>limit && (finish_line(), get_line()==false)) return new_section;
     *(limit+1)='@@';
     while ((c=*(loc++))!='|' && c!='@@') {
       out(c);
       if (out_ptr==out_buf+1 && (xisspace(c))) out_ptr--;
     }
-    if (c=='|') return('|');
-    if (loc<=limit) return(ccode[(eight_bits)*(loc++)]);
+    if (c=='|') return '|';
+    if (loc<=limit) return ccode[(eight_bits)*(loc++)];
   }
 }
 
@@ -1572,7 +1572,7 @@
       }
     }
     c=*(loc++);
-    if (c=='|') return(bal);
+    if (c=='|') return bal;
     if (is_long_comment) @<Check for end of comment@>@;
     if (phase==2) {
       if (ishigh(c)) app_tok(quoted_char);
@@ -1615,7 +1615,7 @@
 
 @<Clear |bal|...@>=
 if (phase==2) while (bal-- >0) app_tok('}');
-return(0);
+return 0;
 
 @** Parsing.
 The most intricate part of \.{CWEAVE} is its mechanism for converting
@@ -3175,7 +3175,7 @@
     if (j->mathness / 4 == yes_math) app('$');
     if (tok_ptr+6>tok_mem_end) overflow("token");
   }
-  freeze_text; return(text_ptr-1);
+  freeze_text; return text_ptr-1;
 }
 
 @ @<If semi-tracing, show the irreducible scraps@>=
@@ -3494,7 +3494,7 @@
   p=translate(); /* make the translation */
   if (scrap_ptr>max_scr_ptr) max_scr_ptr=scrap_ptr;
   scrap_ptr=scrap_base-1; scrap_base=save_base; /* scrap the scraps */
-  return(p);
+  return p;
 }
 
 @ The |outer_parse| routine is to |C_parse| as |outer_xref|
@@ -3679,16 +3679,16 @@
   if (a>=0400) {
     cur_name=a % id_flag + name_dir;
     switch (a / id_flag) {
-      case 2: return(res_word); /* |a==res_flag+cur_name| */
-      case 3: return(section_code); /* |a==section_flag+cur_name| */
+      case 2: return res_word ; /* |a==res_flag+cur_name| */
+      case 3: return section_code ; /* |a==section_flag+cur_name| */
       case 4: push_level(a % id_flag + tok_start); goto restart;
         /* |a==tok_flag+cur_name| */
       case 5: push_level(a % id_flag + tok_start); cur_mode=inner; goto restart;
         /* |a==inner_tok_flag+cur_name| */
-      default: return(identifier); /* |a==id_flag+cur_name| */
+      default: return identifier; /* |a==id_flag+cur_name| */
     }
   }
-  return((eight_bits)a);
+  return (eight_bits)a;
 }
 
 @ The real work associated with token output is done by |make_output|.

Modified: trunk/Build/source/texk/web2c/cwebdir/cwebmac.tex
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cwebmac.tex	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cwebmac.tex	2021-02-20 10:48:30 UTC (rev 57806)
@@ -1,8 +1,8 @@
 % standard macros for CWEB listings (in addition to plain.tex)
-% Version 4.0 --- February 2021
+% Version 4.1 --- February 2021
 \ifx\renewenvironment\undefined\else\endinput\fi % LaTeX will use other macros
-\xdef\fmtversion{\fmtversion+CWEB4.0}
-\chardef\cwebversion=4 \chardef\cwebrevision=0
+\xdef\fmtversion{\fmtversion+CWEB4.1}
+\chardef\cwebversion=4 \chardef\cwebrevision=1
 \newif\ifpdf
 \ifx\pdf+\pdftrue\fi
 % Uncomment the following line if you want PDF goodies to be the default
@@ -14,7 +14,7 @@
 %\else \pdftextrue \pdfoutput=1 \input pdfcolor \let\setcolor\pdfsetcolor \fi\fi
 \else \pdftextrue \pdfoutput=1 % changed in 3.69
   \def\Black{\pdfliteral{0 g 0 G}}  % use rgb colors for direct PDF output too
-  \def\Blue{\pdfliteral{0 0 1 rg 0 0 1 RG}}
+  \def\Blue{\pdfliteral{\pdflinkcolor\space rg \pdflinkcolor\space RG}}
 \fi\fi
 \newif\ifacro \ifpdf\acrotrue\fi \ifpdftex\acrotrue\fi
 
@@ -282,12 +282,10 @@
 \def\stsec{\rightskip=0pt % get out of C mode (cf. \B)
   \sfcode`;=1500 \pretolerance 200 \hyphenpenalty 50 \exhyphenpenalty 50
   \noindent{\let\*=\lapstar\bf\secstar.\quad}%
-  \ifpdftex\smash{\raise\baselineskip\hbox to0pt{%
-%     \let\*=\empty\pdfdest num \secstar fith}} % bad space in versions < 3.68
-     \let\*=\empty\pdfdest num \secstar fith}}% changed in version 3.68
-  \else\ifpdf\smash{\raise\baselineskip\hbox to0pt{%
-     \let\*=\empty\special{%
-       pdf: dest (\romannumeral\secstar) [ @thispage /FitH @ypos ]}}}\fi\fi}
+  \ifacro \smash{\raise\baselineskip\hbox to0pt{\let\*=\empty
+    \ifpdftex \pdfdest num \secstar fith%
+    \else \special{pdf: dest (\romannumeral\secstar)
+      [ @thispage /FitH @ypos ]}\fi}}\fi}
 \let\startsection=\stsec
 \def\defin#1{\global\advance\ind by 2 \1\&{#1 } } % begin `define' or `format'
 \def\A{\note{See also section}} % xref for doubly defined section name

Modified: trunk/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch	2021-02-20 10:48:30 UTC (rev 57806)
@@ -93,17 +93,17 @@
 @z
 
 @x
-\def\runninghead{{\tentt CWEB} USER MANUAL (VERSION 4.0)}
+\def\runninghead{{\tentt CWEB} USER MANUAL (VERSION 4.1)}
 @y
 \def\Kpathsea/{{\mc KPATHSEA\spacefactor1000}}
-\def\runninghead{{\tentt CWEB} USER MANUAL (4.0 [\TeX~Live])}
+\def\runninghead{{\tentt CWEB} USER MANUAL (4.1 [\TeX~Live])}
 @z
 
 @x
-\vskip 18pt\centerline{(Version 4.0 --- February 2021)}
+\vskip 18pt\centerline{(Version 4.1 --- February 2021)}
 @y
-\vskip 18pt\centerline{(Version 4.0 --- February 2021)%
-\footnote*{This document describes the extended \.{CWEB} (4.0 [\TeX~Live]).}}
+\vskip 18pt\centerline{(Version 4.1 --- February 2021)%
+\footnote*{This document describes the extended \.{CWEB} (4.1 [\TeX~Live]).}}
 @z
 
 @x
@@ -303,9 +303,9 @@
 @z
 
 @x
-  \.{ { }\\vskip 15pt \\centerline\{(Version 4.0)\}{ }\\vfill\}}\cr}$$
+  \.{ { }\\vskip 15pt \\centerline\{(Version 4.1)\}{ }\\vfill\}}\cr}$$
 @y
-  \.{ { }\\vskip 15pt \\centerline\{(Version 4.0)\}{ }\\vfill\}}\cr}$$
+  \.{ { }\\vskip 15pt \\centerline\{(Version 4.1)\}{ }\\vfill\}}\cr}$$
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/cwebdir/cwebman.tex
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/cwebman.tex	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/cwebman.tex	2021-02-20 10:48:30 UTC (rev 57806)
@@ -36,7 +36,7 @@
 
 \def\lheader{\mainfont\the\pageno\hfill\sc\runninghead\hfill}
 \def\rheader{\hfill\sc\runninghead\hfill\mainfont\the\pageno}
-\def\runninghead{{\tentt CWEB} USER MANUAL (VERSION 4.0)}
+\def\runninghead{{\tentt CWEB} USER MANUAL (VERSION 4.1)}
 
 % This verbatim mode assumes that ! marks are !! in the text being copied.
 \def\verbatim{\begingroup
@@ -50,7 +50,7 @@
 \null\vfill
 \centerline{\titlefont The {\ttitlefont CWEB} System of
     Structured Documentation}
-\vskip 18pt\centerline{(Version 4.0 --- February 2021)}
+\vskip 18pt\centerline{(Version 4.1 --- February 2021)}
 \vskip 24pt
 \centerline{\authorfont Donald E. Knuth and Silvio Levy}
 \vfill
@@ -1591,7 +1591,7 @@
   \.{ { }\\titlefalse \% include headline on the contents page}\cr
   \.{ { }\\def\\rheader\{\\mainfont The \{\\tt CWEAVE\}{ }processor\\hfil\}}\cr
   \.{ { }\\centerline\{\\titlefont The \{\\ttitlefont CWEAVE\}{ }processor\}}\cr
-  \.{ { }\\vskip 15pt \\centerline\{(Version 4.0)\}{ }\\vfill\}}\cr}$$
+  \.{ { }\\vskip 15pt \\centerline\{(Version 4.1)\}{ }\\vfill\}}\cr}$$
 Redefining \.{\\rheader}, which is the headline for right-hand pages,
 suffices in this case to put the desired information at the top of the
 contents page.

Modified: trunk/Build/source/texk/web2c/cwebdir/po/cweb-tl.pot
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/po/cweb-tl.pot	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/po/cweb-tl.pot	2021-02-20 10:48:30 UTC (rev 57806)
@@ -30,15 +30,15 @@
 msgstr ""
 
 #: ctang-texlive.ch:39
-msgid "This is CTANGLE, Version 4.0"
+msgid "This is CTANGLE, Version 4.1"
 msgstr ""
 
 #: ctwill-texlive.ch:39
-msgid "This is CTWILL, Version 4.0"
+msgid "This is CTWILL, Version 4.1"
 msgstr ""
 
 #: cweav-texlive.ch:39
-msgid "This is CWEAVE, Version 4.0"
+msgid "This is CWEAVE, Version 4.1"
 msgstr ""
 
 #: comm-texlive.ch:512

Modified: trunk/Build/source/texk/web2c/cwebdir/po/cweb.pot
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/po/cweb.pot	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/po/cweb.pot	2021-02-20 10:48:30 UTC (rev 57806)
@@ -523,15 +523,15 @@
 msgstr ""
 
 #: ctang-i18n.ch:17
-msgid "This is CTANGLE (Version 4.0 [CWEBbin 2021])"
+msgid "This is CTANGLE (Version 4.1 [CWEBbin 2021])"
 msgstr ""
 
 #: cweav-twill.ch:61
-msgid "This is CTWILL (Version 4.0 [CWEBbin 2021])"
+msgid "This is CTWILL (Version 4.1 [CWEBbin 2021])"
 msgstr ""
 
 #: cweav-i18n.ch:17 cweav-twill.ch:42
-msgid "This is CWEAVE (Version 4.0 [CWEBbin 2021])"
+msgid "This is CWEAVE (Version 4.1 [CWEBbin 2021])"
 msgstr ""
 
 #: cweav-i18n.ch:301 cweav-i18n.ch:309

Modified: trunk/Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po	2021-02-20 10:48:30 UTC (rev 57806)
@@ -32,16 +32,16 @@
 msgstr "%s: Benötige ein bis drei Dateiargumente.\n"
 
 #: ctang-texlive.ch:39
-msgid "This is CTANGLE, Version 4.0"
-msgstr "Dies ist CTANGLE, Version 4.0"
+msgid "This is CTANGLE, Version 4.1"
+msgstr "Dies ist CTANGLE, Version 4.1"
 
 #: ctwill-texlive.ch:39
-msgid "This is CTWILL, Version 4.0"
-msgstr "Dies ist CTWILL, Version 4.0"
+msgid "This is CTWILL, Version 4.1"
+msgstr "Dies ist CTWILL, Version 4.1"
 
 #: cweav-texlive.ch:39
-msgid "This is CWEAVE, Version 4.0"
-msgstr "Dies ist CWEAVE, Version 4.0"
+msgid "This is CWEAVE, Version 4.1"
+msgstr "Dies ist CWEAVE, Version 4.1"
 
 #: comm-texlive.ch:512
 #, c-format

Modified: trunk/Build/source/texk/web2c/cwebdir/po/de/cweb.po
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/po/de/cweb.po	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/po/de/cweb.po	2021-02-20 10:48:30 UTC (rev 57806)
@@ -603,16 +603,16 @@
 msgstr "Sortieren:"
 
 #: ctang-i18n.ch:17
-msgid "This is CTANGLE (Version 4.0 [CWEBbin 2021])"
-msgstr "Dies ist CTANGLE (Version 4.0 [CWEBbin 2021])"
+msgid "This is CTANGLE (Version 4.1 [CWEBbin 2021])"
+msgstr "Dies ist CTANGLE (Version 4.1 [CWEBbin 2021])"
 
 #: cweav-twill.ch:61
-msgid "This is CTWILL (Version 4.0 [CWEBbin 2021])"
-msgstr "Dies ist CTWILL (Version 4.0 [CWEBbin 2021])"
+msgid "This is CTWILL (Version 4.1 [CWEBbin 2021])"
+msgstr "Dies ist CTWILL (Version 4.1 [CWEBbin 2021])"
 
 #: cweav-i18n.ch:17 cweav-twill.ch:42
-msgid "This is CWEAVE (Version 4.0 [CWEBbin 2021])"
-msgstr "Dies ist CWEAVE (Version 4.0 [CWEBbin 2021])"
+msgid "This is CWEAVE (Version 4.1 [CWEBbin 2021])"
+msgstr "Dies ist CWEAVE (Version 4.1 [CWEBbin 2021])"
 
 #: cweav-i18n.ch:301 cweav-i18n.ch:309
 msgid "buffer"

Modified: trunk/Build/source/texk/web2c/cwebdir/po/it/cweb.po
===================================================================
--- trunk/Build/source/texk/web2c/cwebdir/po/it/cweb.po	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/cwebdir/po/it/cweb.po	2021-02-20 10:48:30 UTC (rev 57806)
@@ -598,16 +598,16 @@
 msgstr "Ordinamento:"
 
 #: ctang-i18n.ch:17
-msgid "This is CTANGLE (Version 4.0 [CWEBbin 2021])"
-msgstr "Questo è CTANGLE (Versione 4.0 [CWEBbin 2021])"
+msgid "This is CTANGLE (Version 4.1 [CWEBbin 2021])"
+msgstr "Questo è CTANGLE (Versione 4.1 [CWEBbin 2021])"
 
 #: cweav-i18n.ch:17
-msgid "This is CWEAVE (Version 4.0 [CWEBbin 2021])"
-msgstr "Questo è CWEAVE (Versione 4.0 [CWEBbin 2021])"
+msgid "This is CWEAVE (Version 4.1 [CWEBbin 2021])"
+msgstr "Questo è CWEAVE (Versione 4.1 [CWEBbin 2021])"
 
 #: cweav-twill.ch:68
-msgid "This is CTWILL (Version 4.0 [CWEBbin 2021])"
-msgstr "Questo è CTWILL (Versione 4.0 [CWEBbin 2021])"
+msgid "This is CTWILL (Version 4.1 [CWEBbin 2021])"
+msgstr "Questo è CTWILL (Versione 4.1 [CWEBbin 2021])"
 
 #: cweav-i18n.ch:301 cweav-i18n.ch:309
 msgid "buffer"

Modified: trunk/Build/source/texk/web2c/man/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/man/ChangeLog	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/man/ChangeLog	2021-02-20 10:48:30 UTC (rev 57806)
@@ -1,3 +1,7 @@
+2021-02-20  Andreas Scherer  <https://ascherer.github.io>
+
+	* ctwill.man: CWEB 4.1 release.
+
 2020-09-23  Andreas Scherer  <https://ascherer.github.io>
 
 	* ctwill.man,

Modified: trunk/Build/source/texk/web2c/man/ctwill.man
===================================================================
--- trunk/Build/source/texk/web2c/man/ctwill.man	2021-02-20 00:47:44 UTC (rev 57805)
+++ trunk/Build/source/texk/web2c/man/ctwill.man	2021-02-20 10:48:30 UTC (rev 57806)
@@ -106,7 +106,7 @@
 to be a drop-in replacement for the original package.
 There are, however, a few differences worth noting:
 .IP \[bu] 2
-This version is based on the most recent version of CWEB (4.0).
+This version is based on the most recent version of CWEB (4.1).
 .IP \[bu] 2
 In TeX\ Live the utility programs are prefixed with \f[B]ctwill-\f[R]
 and the macro files with \f[B]ct\f[R] for technical reasons.



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