summaryrefslogtreecommitdiff
path: root/Build/source
diff options
context:
space:
mode:
authorAndreas Scherer <andreas_tex@freenet.de>2021-02-20 10:48:30 +0000
committerAndreas Scherer <andreas_tex@freenet.de>2021-02-20 10:48:30 +0000
commitc863077bfa83886f32495e0596106d0eff1a4f1d (patch)
treef16260c753e192f95f50b1dc1470ca0aae9c5f47 /Build/source
parent961efd75d4ab4bfe367073287cadb0cb5e1ce457 (diff)
[CWEB] New release 4.1.
Enough changes have accumulated since the major release of CWEB 4.0 to warrant a new revision number. git-svn-id: svn://tug.org/texlive/trunk@57806 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r--Build/source/texk/web2c/ChangeLog5
-rw-r--r--Build/source/texk/web2c/ctangleboot.cin221
-rw-r--r--Build/source/texk/web2c/cwebboot.cin8
-rw-r--r--Build/source/texk/web2c/cwebdir/ChangeLog26
-rw-r--r--Build/source/texk/web2c/cwebdir/Makefile2
-rw-r--r--Build/source/texk/web2c/cwebdir/comm-mac.ch18
-rw-r--r--Build/source/texk/web2c/cwebdir/comm-ql.ch8
-rw-r--r--Build/source/texk/web2c/cwebdir/comm-vms.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/comm-w2c.ch12
-rw-r--r--Build/source/texk/web2c/cwebdir/comm-w2c.h2
-rw-r--r--Build/source/texk/web2c/cwebdir/common.c12
-rw-r--r--Build/source/texk/web2c/cwebdir/common.h2
-rw-r--r--Build/source/texk/web2c/cwebdir/common.w18
-rw-r--r--Build/source/texk/web2c/cwebdir/ctang-bs.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/ctang-pc.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/ctang-ql.ch8
-rw-r--r--Build/source/texk/web2c/cwebdir/ctang-vms.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/ctang-w2c.ch14
-rw-r--r--Build/source/texk/web2c/cwebdir/ctang-w32.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/ctangle.c137
-rw-r--r--Build/source/texk/web2c/cwebdir/ctangle.w57
-rw-r--r--Build/source/texk/web2c/cwebdir/ctwill-mini.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/ctwill-w2c.ch12
-rw-r--r--Build/source/texk/web2c/cwebdir/cweav-bs.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/cweav-man.ch2
-rw-r--r--Build/source/texk/web2c/cwebdir/cweav-pc.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/cweav-ql.ch8
-rw-r--r--Build/source/texk/web2c/cwebdir/cweav-vms.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/cweav-w2c.ch12
-rw-r--r--Build/source/texk/web2c/cwebdir/cweav-w32.ch4
-rw-r--r--Build/source/texk/web2c/cwebdir/cweave.w62
-rw-r--r--Build/source/texk/web2c/cwebdir/cwebmac.tex18
-rw-r--r--Build/source/texk/web2c/cwebdir/cwebman-w2c.ch14
-rw-r--r--Build/source/texk/web2c/cwebdir/cwebman.tex6
-rw-r--r--Build/source/texk/web2c/cwebdir/po/cweb-tl.pot6
-rw-r--r--Build/source/texk/web2c/cwebdir/po/cweb.pot6
-rw-r--r--Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po12
-rw-r--r--Build/source/texk/web2c/cwebdir/po/de/cweb.po12
-rw-r--r--Build/source/texk/web2c/cwebdir/po/it/cweb.po12
-rw-r--r--Build/source/texk/web2c/man/ChangeLog4
-rw-r--r--Build/source/texk/web2c/man/ctwill.man2
41 files changed, 399 insertions, 379 deletions
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog
index b474718ba3b..03e20277436 100644
--- a/Build/source/texk/web2c/ChangeLog
+++ b/Build/source/texk/web2c/ChangeLog
@@ -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,
diff --git a/Build/source/texk/web2c/ctangleboot.cin b/Build/source/texk/web2c/ctangleboot.cin
index 0013e74be5f..bb7a8621820 100644
--- a/Build/source/texk/web2c/ctangleboot.cin
+++ b/Build/source/texk/web2c/ctangleboot.cin
@@ -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*scn_file;
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 @@ boolean no_where;
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 eight_bits get_next(void);
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 @@ ccode['\'']= ord;
#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 @@ writeloop:/*50:*/
#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 @@ if((check_file= fopen(check_file_name,"r"))==NULL)
fatal(_("! Cannot open output file "),check_file_name);
-if(temporary_output)/*108:*/
+if(temporary_output)/*107:*/
#line 378 "cwebdir/ctang-w2c.ch"
do{
@@ -776,17 +771,17 @@ comparison= (x_size==y_size);
if(comparison)comparison= !memcmp(x,y,x_size);
}while(comparison&&!feof(C_file)&&!feof(check_file));
-/*:108*/
+/*:107*/
#line 371 "cwebdir/ctang-w2c.ch"
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 @@ remove(C_file_name);
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_byte= cur_repl->tok_start;
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 @@ if((check_file= fopen(check_file_name,"r"))==NULL)
fatal(_("! Cannot open output file "),check_file_name);
-/*:115*/
+/*:114*/
#line 430 "cwebdir/ctang-w2c.ch"
do{
@@ -848,7 +843,7 @@ in_buf[in_size]= '\0';
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 @@ remove(output_file_name);
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 @@ if((check_file= fopen(check_file_name,"r"))==NULL)
fatal(_("! Cannot open output file "),check_file_name);
-/*:115*/
+/*:114*/
#line 443 "cwebdir/ctang-w2c.ch"
do{
@@ -888,7 +883,7 @@ in_buf[in_size]= '\0';
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 @@ remove(output_file_name);
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 @@ remove(output_file_name);
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 @@ if((check_file= fopen(check_file_name,"r"))==NULL)
fatal(_("! Cannot open output file "),check_file_name);
-if(temporary_output)/*108:*/
+if(temporary_output)/*107:*/
#line 378 "cwebdir/ctang-w2c.ch"
do{
@@ -951,17 +946,17 @@ comparison= (x_size==y_size);
if(comparison)comparison= !memcmp(x,y,x_size);
}while(comparison&&!feof(C_file)&&!feof(check_file));
-/*:108*/
+/*:107*/
#line 371 "cwebdir/ctang-w2c.ch"
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,14 +966,14 @@ remove(output_file_name);
rename(check_file_name,output_file_name);
}
-/*:111*/
+/*:110*/
#line 412 "cwebdir/ctang-w2c.ch"
}else
rename(check_file_name,output_file_name);
}
-/*:110*/
+/*:109*/
#line 151 "cwebdir/ctang-w2c.ch"
}
@@ -1148,12 +1143,12 @@ skip_ahead(void)
{
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 @@ char c;
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 @@ if(ccode[(eight_bits)*loc]==new_section){
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 @@ eight_bits c;
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 @@ app_repl(a_l%0400);}
#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 @@ while(xisdigit(*loc))loc++;
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 @@ term_write(section_text+1,25);
err_print("...");
}
id_loc++;
-return(string);
+return string;
}
/*:74*/
@@ -1330,7 +1325,7 @@ else if(isalpha(c)||isxalpha(c)||ishigh(c))
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 @@ overflow(_("output files"));
/*:47*/
#line 1098 "cwebdir/ctangle.w"
-return(section_name);
+return section_name;
}
/*:77*/
@@ -1459,7 +1454,7 @@ if(loc>=limit)err_print(_("! Verbatim string didn't end"));
#line 1160 "cwebdir/ctangle.w"
id_loc= loc;loc+= 2;
-return(string);
+return string;
}
/*:81*/
@@ -1490,12 +1485,12 @@ err_print(_("! String didn't end"));loc= limit-1;break;
}
}
loc++;
-return(ord);
+return ord;
/*:76*/
#line 1058 "cwebdir/ctangle.w"
-default:return(c);
+default:return c;
}
}
@@ -1505,7 +1500,7 @@ default:return(c);
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 @@ case'!':if(*loc=='=')compress(non_eq);break;
/*:71*/
#line 926 "cwebdir/ctangle.w"
-return(c);
+return c;
}
}
@@ -1744,8 +1739,8 @@ if(text_ptr> text_info_end)overflow(_("text"));
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 @@ printf("*%d",section_count);update_terminal;
}
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 @@ if((next_control= skip_ahead())==section_name){
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 @@ scan_repl(macro);
cur_text->text_link= macro;
}
-/*:94*/
-#line 1374 "cwebdir/ctangle.w"
+/*:93*/
+#line 1371 "cwebdir/ctangle.w"
continue;
}
@@ -1803,36 +1798,36 @@ p= name_dir;break;
}
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;
}
return;
}
no_where= print_where= false;
-/*96:*/
-#line 1434 "cwebdir/ctangle.w"
+/*95:*/
+#line 1431 "cwebdir/ctangle.w"
-/*97:*/
-#line 1439 "cwebdir/ctangle.w"
+/*96:*/
+#line 1436 "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 @@ q->text_link= cur_text-text_info;
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 @@ check_complete();
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 @@ if(loc++<=limit){
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 @@ if(loc> limit||!xisxdigit(*(loc-3))||!xisxdigit(*(loc-2))
||(*(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 @@ while(loc<limit&&(xisalpha(*loc)||xisdigit(*loc)||*loc=='_'))loc++;
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 @@ translit[i-0200][loc-beg]= '\0';
}
}
-/*: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,21 +1919,21 @@ while((c= skip_ahead())=='@');
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"
}
}
}
}
-/*:102*//*104:*/
-#line 1534 "cwebdir/ctangle.w"
+/*:101*//*103:*/
+#line 1531 "cwebdir/ctangle.w"
void
print_stats(void){
@@ -1951,9 +1946,9 @@ printf(_("%ld replacement texts (out of %ld)\n"),
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*/
diff --git a/Build/source/texk/web2c/cwebboot.cin b/Build/source/texk/web2c/cwebboot.cin
index e087125b6b4..ad331384198 100644
--- a/Build/source/texk/web2c/cwebboot.cin
+++ b/Build/source/texk/web2c/cwebboot.cin
@@ -603,7 +603,7 @@ FILE*fp)
{
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 @@ ungetc(c,fp);loc= buffer;err_print(_("! Input line too long"));
#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 @@ init_p(p,t);
/*:51*/
#line 656 "cwebdir/common.w"
-return(p);
+return p;
}
/*:48*//*52:*/
diff --git a/Build/source/texk/web2c/cwebdir/ChangeLog b/Build/source/texk/web2c/cwebdir/ChangeLog
index fd6eb739c15..62332f87863 100644
--- a/Build/source/texk/web2c/cwebdir/ChangeLog
+++ b/Build/source/texk/web2c/cwebdir/ChangeLog
@@ -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,
diff --git a/Build/source/texk/web2c/cwebdir/Makefile b/Build/source/texk/web2c/cwebdir/Makefile
index f8f30afefb4..63dbd3db343 100644
--- a/Build/source/texk/web2c/cwebdir/Makefile
+++ b/Build/source/texk/web2c/cwebdir/Makefile
@@ -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
diff --git a/Build/source/texk/web2c/cwebdir/comm-mac.ch b/Build/source/texk/web2c/cwebdir/comm-mac.ch
index e3c601c47bf..8af008e70a2 100644
--- a/Build/source/texk/web2c/cwebdir/comm-mac.ch
+++ b/Build/source/texk/web2c/cwebdir/comm-mac.ch
@@ -4,9 +4,9 @@ No changes to CTANGLE or CWEAVE are needed.
(Contributed 13 Oct 2000 by AndPio@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 @@ FILE *fp@t\2\2@>) /* what file to read from */
{
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 @@ FILE *fp@t\2\2@>) /* what file to read from */
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 @@ FILE *fp@t\2\2@>) /* what file to read from */
{
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
diff --git a/Build/source/texk/web2c/cwebdir/comm-ql.ch b/Build/source/texk/web2c/cwebdir/comm-ql.ch
index e8525783895..f12bd125d67 100644
--- a/Build/source/texk/web2c/cwebdir/comm-ql.ch
+++ b/Build/source/texk/web2c/cwebdir/comm-ql.ch
@@ -10,24 +10,24 @@ ex <dev_>cc;'-v -h -c -=500000 -DCWEBINPUTS=flp2_ common_c'
@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
@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
diff --git a/Build/source/texk/web2c/cwebdir/comm-vms.ch b/Build/source/texk/web2c/cwebdir/comm-vms.ch
index cf6d6198486..caf8ecef795 100644
--- a/Build/source/texk/web2c/cwebdir/comm-vms.ch
+++ b/Build/source/texk/web2c/cwebdir/comm-vms.ch
@@ -45,8 +45,8 @@ print |"%SYSTEM-F-ABORT, abort"|, if |history > harmless_message|.
@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.
diff --git a/Build/source/texk/web2c/cwebdir/comm-w2c.ch b/Build/source/texk/web2c/cwebdir/comm-w2c.ch
index a300203de1f..34856c03e86 100644
--- a/Build/source/texk/web2c/cwebdir/comm-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/comm-w2c.ch
@@ -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 @@ can be made sensitive to these conditions.
@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;
diff --git a/Build/source/texk/web2c/cwebdir/comm-w2c.h b/Build/source/texk/web2c/cwebdir/comm-w2c.h
index 7c21ba1bc21..0adfa44977f 100644
--- a/Build/source/texk/web2c/cwebdir/comm-w2c.h
+++ b/Build/source/texk/web2c/cwebdir/comm-w2c.h
@@ -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
diff --git a/Build/source/texk/web2c/cwebdir/common.c b/Build/source/texk/web2c/cwebdir/common.c
index 37c467ae3b5..49b40d04664 100644
--- a/Build/source/texk/web2c/cwebdir/common.c
+++ b/Build/source/texk/web2c/cwebdir/common.c
@@ -459,7 +459,7 @@ FILE*fp)
{
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 @@ if((c= getc(fp))!=EOF&&c!='\n'){
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 @@ init_p(p,t);
/*:51*/
#line 656 "common.w"
-return(p);
+return p;
}
/*:48*//*52:*/
@@ -1146,8 +1146,8 @@ case fatal_message:puts("(That was a fatal error, my friend.)");
/*: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:*/
diff --git a/Build/source/texk/web2c/cwebdir/common.h b/Build/source/texk/web2c/cwebdir/common.h
index 3e0d07d77db..40896f808aa 100644
--- a/Build/source/texk/web2c/cwebdir/common.h
+++ b/Build/source/texk/web2c/cwebdir/common.h
@@ -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
diff --git a/Build/source/texk/web2c/cwebdir/common.w b/Build/source/texk/web2c/cwebdir/common.w
index e23a3d857b9..377a796126e 100644
--- a/Build/source/texk/web2c/cwebdir/common.w
+++ b/Build/source/texk/web2c/cwebdir/common.w
@@ -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 @@ FILE *fp@t\2\2@>) /* what file to read from */
{
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 @@ FILE *fp@t\2\2@>) /* what file to read from */
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 @@ char t@t\2\2@>) /* the |ilk|; used by \.{CWEAVE} only */
@<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 @@ int wrap_up(void) {
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|@>=
diff --git a/Build/source/texk/web2c/cwebdir/ctang-bs.ch b/Build/source/texk/web2c/cwebdir/ctang-bs.ch
index bbe1bcc8cc8..22310b8e70c 100644
--- a/Build/source/texk/web2c/cwebdir/ctang-bs.ch
+++ b/Build/source/texk/web2c/cwebdir/ctang-bs.ch
@@ -17,12 +17,12 @@ by using "huge" pointers.
The ``banner line'' defined here should be changed whenever \.{CTANGLE}
is modified.
-@d banner "This is CTANGLE (Version 4.0)"
+@d banner "This is CTANGLE (Version 4.1)"
@y
The ``banner line'' defined here should be changed whenever \.{CTANGLE}
is modified.
-@d banner "This is CTANGLE (Version 4.0pc/big)"
+@d banner "This is CTANGLE (Version 4.1pc/big)"
@z
diff --git a/Build/source/texk/web2c/cwebdir/ctang-pc.ch b/Build/source/texk/web2c/cwebdir/ctang-pc.ch
index a22a165be9e..686a2b0e6af 100644
--- a/Build/source/texk/web2c/cwebdir/ctang-pc.ch
+++ b/Build/source/texk/web2c/cwebdir/ctang-pc.ch
@@ -9,9 +9,9 @@ that allows >64K arrays. If you need lots of bytes and toks, try the
alternate change files with -bs suffix instead of -pc.
@x section 1
-@d banner "This is CTANGLE (Version 4.0)"
+@d banner "This is CTANGLE (Version 4.1)"
@y
-@d banner "This is CTANGLE (Version 4.0pc)"
+@d banner "This is CTANGLE (Version 4.1pc)"
@z
@x section 4
@d max_bytes 1000000 /* the number of bytes in identifiers,
diff --git a/Build/source/texk/web2c/cwebdir/ctang-ql.ch b/Build/source/texk/web2c/cwebdir/ctang-ql.ch
index d6cd1ee5e57..df4ca82a6f5 100644
--- a/Build/source/texk/web2c/cwebdir/ctang-ql.ch
+++ b/Build/source/texk/web2c/cwebdir/ctang-ql.ch
@@ -7,15 +7,15 @@ ex <dev_>cc;"-v -h -c -=500000 ctangle_c"
@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
-@d banner "This is CTANGLE (Version 4.0)"
+@d banner "This is CTANGLE (Version 4.1)"
@y
-@d banner "This is CTANGLE (QL Version 4.0)"
+@d banner "This is CTANGLE (QL Version 4.1)"
@z
@x
diff --git a/Build/source/texk/web2c/cwebdir/ctang-vms.ch b/Build/source/texk/web2c/cwebdir/ctang-vms.ch
index a4940e60e23..87acb6eb742 100644
--- a/Build/source/texk/web2c/cwebdir/ctang-vms.ch
+++ b/Build/source/texk/web2c/cwebdir/ctang-vms.ch
@@ -10,9 +10,9 @@ created:
(these changes not necessary for initial bootstrapping)
@x section 1 (01-FEB-1992 ST)
-@d banner "This is CTANGLE (Version 4.0)"
+@d banner "This is CTANGLE (Version 4.1)"
@y
-@d banner "This is CTANGLE (VAX/VMS Version 4.0)"
+@d banner "This is CTANGLE (VAX/VMS Version 4.1)"
@z
@x section 3 (01-FEB-1992 ST)
diff --git a/Build/source/texk/web2c/cwebdir/ctang-w2c.ch b/Build/source/texk/web2c/cwebdir/ctang-w2c.ch
index f814b343351..d7677e4028c 100644
--- a/Build/source/texk/web2c/cwebdir/ctang-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/ctang-w2c.ch
@@ -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
-@d banner "This is CTANGLE (Version 4.0)"
+@d banner "This is CTANGLE (Version 4.1)"
@y
-@d banner "This is CTANGLE, Version 4.0"
+@d banner "This is CTANGLE, Version 4.1"
/* will be extended by the \TeX~Live |versionstring| */
@z
@@ -343,7 +343,7 @@ features that have been created by numerous contributors over the course of a
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
diff --git a/Build/source/texk/web2c/cwebdir/ctang-w32.ch b/Build/source/texk/web2c/cwebdir/ctang-w32.ch
index 01b22a3d662..896d0863274 100644
--- a/Build/source/texk/web2c/cwebdir/ctang-w32.ch
+++ b/Build/source/texk/web2c/cwebdir/ctang-w32.ch
@@ -4,9 +4,9 @@ This is the change file for CWEB's CTANGLE under Win32
Changes necessary for compiling with Borland C/C++
@x section 1
-@d banner "This is CTANGLE (Version 4.0)"
+@d banner "This is CTANGLE (Version 4.1)"
@y
-@d banner "This is CTANGLE (Version 4.0win32)"
+@d banner "This is CTANGLE (Version 4.1win32)"
@z
@x
diff --git a/Build/source/texk/web2c/cwebdir/ctangle.c b/Build/source/texk/web2c/cwebdir/ctangle.c
index de0a05a39c6..200d61a92b7 100644
--- a/Build/source/texk/web2c/cwebdir/ctangle.c
+++ b/Build/source/texk/web2c/cwebdir/ctangle.c
@@ -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 @@ boolean no_where;
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 eight_bits get_next(void);
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 @@ skip_ahead(void)
{
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 @@ char c;
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 @@ eight_bits c;
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 @@ app_repl(a_l%0400);}
#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 @@ while(xisdigit(*loc))loc++;
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 @@ term_write(section_text+1,25);
err_print("...");
}
id_loc++;
-return(string);
+return string;
}
/*:74*/
@@ -1056,7 +1051,7 @@ else if(isalpha(c)||isxalpha(c)||ishigh(c))
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 @@ overflow("output files");
/*:47*/
#line 1098 "ctangle.w"
-return(section_name);
+return section_name;
}
/*:77*/
@@ -1169,7 +1164,7 @@ while(*loc!='@'||*(loc+1)!='>')loc++;
if(loc>=limit)err_print("! Verbatim string didn't end");
id_loc= loc;loc+= 2;
-return(string);
+return string;
}
/*:81*/
@@ -1196,12 +1191,12 @@ err_print("! String didn't end");loc= limit-1;break;
}
}
loc++;
-return(ord);
+return ord;
/*:76*/
#line 1058 "ctangle.w"
-default:return(c);
+default:return c;
}
}
@@ -1211,7 +1206,7 @@ default:return(c);
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 @@ case'!':if(*loc=='=')compress(non_eq);break;
/*:71*/
#line 926 "ctangle.w"
-return(c);
+return c;
}
}
@@ -1438,8 +1433,8 @@ if(text_ptr> text_info_end)overflow("text");
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 @@ printf("*%d",section_count);update_terminal;
}
next_control= 0;
while(true){
-/*93:*/
-#line 1397 "ctangle.w"
+/*92:*/
+#line 1394 "ctangle.w"
while(next_control<definition)
@@ -1462,12 +1457,12 @@ if((next_control= skip_ahead())==section_name){
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 @@ scan_repl(macro);
cur_text->text_link= macro;
}
-/*:94*/
-#line 1374 "ctangle.w"
+/*:93*/
+#line 1371 "ctangle.w"
continue;
}
@@ -1495,36 +1490,36 @@ p= name_dir;break;
}
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;
}
return;
}
no_where= print_where= false;
-/*96:*/
-#line 1434 "ctangle.w"
+/*95:*/
+#line 1431 "ctangle.w"
-/*97:*/
-#line 1439 "ctangle.w"
+/*96:*/
+#line 1436 "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 @@ q->text_link= cur_text-text_info;
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 @@ check_complete();
phase= 2;
}
-/*:100*//*102:*/
-#line 1479 "ctangle.w"
+/*:99*//*101:*/
+#line 1476 "ctangle.w"
static void
skip_limbo(void)
@@ -1578,8 +1573,8 @@ if(loc++<=limit){
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 @@ translit[i-0200][loc-beg]= '\0';
}
}
-/*: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 @@ default:err_print("! Double @ should be used in limbo");
}
}
-/*:102*//*104:*/
-#line 1534 "ctangle.w"
+/*:101*//*103:*/
+#line 1531 "ctangle.w"
void
print_stats(void){
@@ -1637,4 +1632,4 @@ printf("%ld tokens (out of %ld)\n",
(ptrdiff_t)(tok_ptr-tok_mem),(long)max_toks);
}
-/*:104*/
+/*:103*/
diff --git a/Build/source/texk/web2c/cwebdir/ctangle.w b/Build/source/texk/web2c/cwebdir/ctangle.w
index 64477a5c935..3e717fbda2f 100644
--- a/Build/source/texk/web2c/cwebdir/ctangle.w
+++ b/Build/source/texk/web2c/cwebdir/ctangle.w
@@ -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 @@ Joachim Schrod, Lee Wittenberg, and others who have contributed improvements.
The ``banner line'' defined here should be changed whenever \.{CTANGLE}
is modified.
-@d banner "This is CTANGLE (Version 4.0)"
+@d banner "This is CTANGLE (Version 4.1)"
@c
@<Include files@>@/
@@ -805,12 +805,12 @@ skip_ahead(void) /* skip to next control code */
{
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 @@ boolean is_long_comment@t\2\2@>)
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 @@ get_next(void) /* produces the next input token */
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 @@ get_next(void) /* produces the next input token */
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 @@ combinations \.{...}, \.{::}, \.{.*} and \.{->*}.
The compound assignment operators (e.g., \.{+=}) are
treated as separate tokens.
-@d compress(c) if (loc++<=limit) return(c)
+@d compress(c) if (loc++<=limit) return c
@<Compress tw...@>=
switch(c) {
@@ -963,7 +963,7 @@ switch(c) {
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 @@ switch(c) {
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 @@ convention, but do not allow the string to be longer than |longest_name|.
err_print("...");
}
id_loc++;
- return(string);
+ return string;
}
@ After an \.{@@} sign has been scanned, the next character tells us
@@ -1056,7 +1056,7 @@ whether there is more work to do.
@<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 @@ thus, \.{@@'\\nopq'} gives the same result as \.{@@'\\n'}.
}
}
loc++;
- return(ord);
+ return ord;
@ @<Scan the section name...@>= {
char *k; /* pointer into |section_text| */
@@ -1096,7 +1096,7 @@ thus, \.{@@'\\nopq'} gives the same result as \.{@@'\\n'}.
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 @@ buffer. We also set |loc| to the position just after the ending delimiter.
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 @@ sensed in the input, and it proceeds until the end of that section. It
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
+@c
static void
scan_section(void)
{
diff --git a/Build/source/texk/web2c/cwebdir/ctwill-mini.ch b/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
index 410f270491b..5f6788aa9f9 100644
--- a/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
+++ b/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
@@ -14,7 +14,7 @@ Section 1.
@z
@x
-@d banner "This is CTWILL, Version 4.0"
+@d banner "This is CTWILL, Version 4.1"
@y
\bigskip
{\font\itt=cmitt10 \font\bit=cmbxti10
@@ -35,7 +35,7 @@ be even more ``off'' from {\itt cweave.w}. Care has been taken to give a
faithful overall rendering of {\itt CTWILL}'s code, though. \hfill
---Enjoy!\bigskip}
-@d banner "This is CTWILL, Version 4.0"
+@d banner "This is CTWILL, Version 4.1"
@z
Section 2.
diff --git a/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch b/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
index 0849495bd85..4008555140e 100644
--- a/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
@@ -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 @@ Crusius, and others who have contributed improvements.
The ``banner line'' defined here should be changed whenever \.{CWEAVE}
is modified.
-@d banner "This is CWEAVE (Version 4.0)"
+@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 @@ reprinted in {\sl Digital Typography\/} (1999), 225--245.
The ``banner line'' defined here should be changed whenever \.{CTWILL} is
modified. The version number parallels the corresponding version of \.{CWEAVE}.
-@d banner "This is CTWILL, Version 4.0"
+@d banner "This is CTWILL, Version 4.1"
/* will be extended by the \TeX~Live |versionstring| */
@z
diff --git a/Build/source/texk/web2c/cwebdir/cweav-bs.ch b/Build/source/texk/web2c/cwebdir/cweav-bs.ch
index f6fa97175f6..723208d6c7f 100644
--- a/Build/source/texk/web2c/cwebdir/cweav-bs.ch
+++ b/Build/source/texk/web2c/cwebdir/cweav-bs.ch
@@ -20,12 +20,12 @@ This file contributed by Barry Schwartz, trashman@crud.mn.org, 28 Jun 94.
The ``banner line'' defined here should be changed whenever \.{CWEAVE}
is modified.
-@d banner "This is CWEAVE (Version 4.0)"
+@d banner "This is CWEAVE (Version 4.1)"
@y
The ``banner line'' defined here should be changed whenever \.{CWEAVE}
is modified.
-@d banner "This is CWEAVE (Version 4.0pc/big)"
+@d banner "This is CWEAVE (Version 4.1pc/big)"
@z
diff --git a/Build/source/texk/web2c/cwebdir/cweav-man.ch b/Build/source/texk/web2c/cwebdir/cweav-man.ch
index b72360944a2..83b14c9007e 100644
--- a/Build/source/texk/web2c/cwebdir/cweav-man.ch
+++ b/Build/source/texk/web2c/cwebdir/cweav-man.ch
@@ -16,7 +16,7 @@ under the terms of a permission notice identical to this one.
}
@y
\def\botofcontents{\vfill\titlefalse}
-\def\contentspagenumber{111}
+\def\contentspagenumber{110}
\def\title{APPENDIX F: CWEAVE}
\let\K=\leftarrow
@z
diff --git a/Build/source/texk/web2c/cwebdir/cweav-pc.ch b/Build/source/texk/web2c/cwebdir/cweav-pc.ch
index 64508e23697..2619998cc35 100644
--- a/Build/source/texk/web2c/cwebdir/cweav-pc.ch
+++ b/Build/source/texk/web2c/cwebdir/cweav-pc.ch
@@ -11,9 +11,9 @@ that allows >64K arrays. (If you need lots more bytes, try the alternate
change files that have -bs in their name instead of -pc.)
@x section 1
-@d banner "This is CWEAVE (Version 4.0)"
+@d banner "This is CWEAVE (Version 4.1)"
@y
-@d banner "This is CWEAVE (Version 4.0pc)"
+@d banner "This is CWEAVE (Version 4.1pc)"
@z
@x section 4
diff --git a/Build/source/texk/web2c/cwebdir/cweav-ql.ch b/Build/source/texk/web2c/cwebdir/cweav-ql.ch
index b61e570c2c9..28227aff889 100644
--- a/Build/source/texk/web2c/cwebdir/cweav-ql.ch
+++ b/Build/source/texk/web2c/cwebdir/cweav-ql.ch
@@ -7,15 +7,15 @@ ex <dev_>cc;"-v -h -c =500000 cweave_c"
@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
-@d banner "This is CWEAVE (Version 4.0)"
+@d banner "This is CWEAVE (Version 4.1)"
@y
-@d banner "This is CWEAVE (QL Version 4.0)"
+@d banner "This is CWEAVE (QL Version 4.1)"
@z
@x
diff --git a/Build/source/texk/web2c/cwebdir/cweav-vms.ch b/Build/source/texk/web2c/cwebdir/cweav-vms.ch
index 8f0535917d1..ea3501460bb 100644
--- a/Build/source/texk/web2c/cwebdir/cweav-vms.ch
+++ b/Build/source/texk/web2c/cwebdir/cweav-vms.ch
@@ -13,9 +13,9 @@ modified:
(also modified by Don Knuth to keep version numbers uptodate)
@x section 1 (01-FEB-1992 ST)
-@d banner "This is CWEAVE (Version 4.0)"
+@d banner "This is CWEAVE (Version 4.1)"
@y
-@d banner "This is CWEAVE (VAX/VMS Version 4.0)"
+@d banner "This is CWEAVE (VAX/VMS Version 4.1)"
@z
@x section 3 (01-FEB-1992 ST)
diff --git a/Build/source/texk/web2c/cwebdir/cweav-w2c.ch b/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
index 4ff1c15f3f0..79ff089b8ce 100644
--- a/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
@@ -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
-@d banner "This is CWEAVE (Version 4.0)"
+@d banner "This is CWEAVE (Version 4.1)"
@y
-@d banner "This is CWEAVE, Version 4.0"
+@d banner "This is CWEAVE, Version 4.1"
/* will be extended by the \TeX~Live |versionstring| */
@z
diff --git a/Build/source/texk/web2c/cwebdir/cweav-w32.ch b/Build/source/texk/web2c/cwebdir/cweav-w32.ch
index c993cb39f4a..575387bb1a1 100644
--- a/Build/source/texk/web2c/cwebdir/cweav-w32.ch
+++ b/Build/source/texk/web2c/cwebdir/cweav-w32.ch
@@ -2,9 +2,9 @@ This is the change file for CWEB's CWEAVE under Win32
(Contributed by Fabrice Popineau, February 2002)
@x section 1
-@d banner "This is CWEAVE (Version 4.0)"
+@d banner "This is CWEAVE (Version 4.1)"
@y
-@d banner "This is CWEAVE (Version 4.0win32)"
+@d banner "This is CWEAVE (Version 4.1win32)"
@z
@x
diff --git a/Build/source/texk/web2c/cwebdir/cweave.w b/Build/source/texk/web2c/cwebdir/cweave.w
index aed597b138c..8be353088c0 100644
--- a/Build/source/texk/web2c/cwebdir/cweave.w
+++ b/Build/source/texk/web2c/cwebdir/cweave.w
@@ -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 @@ Crusius, and others who have contributed improvements.
The ``banner line'' defined here should be changed whenever \.{CWEAVE}
is modified.
-@d banner "This is CWEAVE (Version 4.0)"
+@d banner "This is CWEAVE (Version 4.1)"
@c @<Include files@>@/
@h
@@ -618,11 +618,11 @@ static eight_bits
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 @@ get_next(void) /* produces the next input token */
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 @@ get_next(void) /* produces the next input token */
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 @@ boolean preprocessing=false; /* are we scanning a preprocessor command? */
@ @<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 @@ the last character was a \.\\.
@<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 @@ combinations \.{...}, \.{::}, \.{.*} and \.{->*}.
The compound assignment operators (e.g., \.{+=}) are
treated as separate tokens.
-@d compress(c) if (loc++<=limit) return(c)
+@d compress(c) if (loc++<=limit) return c
@<Compress tw...@>=
switch(c) {
@@ -790,7 +790,7 @@ switch(c) {
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 @@ are pointers into the array |section_text|, not into |buffer|.
|| *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 @@ convention, but do not allow the string to be longer than |longest_name|.
printf("..."); mark_error;
}
id_loc++;
- return(string);
+ return string;
}
@ After an \.{@@} sign has been scanned, the next character tells us
@@ -887,12 +887,12 @@ whether there is more work to do.
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 @@ because the section name might (for example) follow \&{int}.
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 @@ buffer. We also set |loc| to the position just after the ending delimiter.
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 @@ copy_TeX(void)
{
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 @@ int bal@t\2\2@>) /* brace balance */
}
}
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 @@ enough right braces to keep \TEX/ happy.
@<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 @@ where appropriate.
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 @@ C_translate(void)
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 @@ get_output(void) /* returns the next token of output */
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|.
diff --git a/Build/source/texk/web2c/cwebdir/cwebmac.tex b/Build/source/texk/web2c/cwebdir/cwebmac.tex
index 228de239bf9..8b49cab3c67 100644
--- a/Build/source/texk/web2c/cwebdir/cwebmac.tex
+++ b/Build/source/texk/web2c/cwebdir/cwebmac.tex
@@ -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
diff --git a/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch b/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch
index 3f8a3ff9335..491cb64c82d 100644
--- a/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch
@@ -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 @@ And here's what the same excerpt looks like when typeset.
@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
diff --git a/Build/source/texk/web2c/cwebdir/cwebman.tex b/Build/source/texk/web2c/cwebdir/cwebman.tex
index 3cf075b883e..fd7f16446c9 100644
--- a/Build/source/texk/web2c/cwebdir/cwebman.tex
+++ b/Build/source/texk/web2c/cwebdir/cwebman.tex
@@ -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 @@ $$\lpile{\.{\\def\\topofcontents\{\\null\\vfill}\cr
\.{ { }\\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.
diff --git a/Build/source/texk/web2c/cwebdir/po/cweb-tl.pot b/Build/source/texk/web2c/cwebdir/po/cweb-tl.pot
index 21d2b91c078..e46869ad565 100644
--- a/Build/source/texk/web2c/cwebdir/po/cweb-tl.pot
+++ b/Build/source/texk/web2c/cwebdir/po/cweb-tl.pot
@@ -30,15 +30,15 @@ msgid "%s: Need one to three file arguments.\n"
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
diff --git a/Build/source/texk/web2c/cwebdir/po/cweb.pot b/Build/source/texk/web2c/cwebdir/po/cweb.pot
index 812dbf3f72e..2d7023d3efd 100644
--- a/Build/source/texk/web2c/cwebdir/po/cweb.pot
+++ b/Build/source/texk/web2c/cwebdir/po/cweb.pot
@@ -523,15 +523,15 @@ msgid "Sorting:"
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
diff --git a/Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po b/Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po
index 25324153f30..c71367d504b 100644
--- a/Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po
+++ b/Build/source/texk/web2c/cwebdir/po/de/cweb-tl.po
@@ -32,16 +32,16 @@ msgid "%s: Need one to three file arguments.\n"
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
diff --git a/Build/source/texk/web2c/cwebdir/po/de/cweb.po b/Build/source/texk/web2c/cwebdir/po/de/cweb.po
index d421cbf8a81..d51f6cc7877 100644
--- a/Build/source/texk/web2c/cwebdir/po/de/cweb.po
+++ b/Build/source/texk/web2c/cwebdir/po/de/cweb.po
@@ -603,16 +603,16 @@ msgid "Sorting:"
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"
diff --git a/Build/source/texk/web2c/cwebdir/po/it/cweb.po b/Build/source/texk/web2c/cwebdir/po/it/cweb.po
index defb988831f..235de34a0b4 100644
--- a/Build/source/texk/web2c/cwebdir/po/it/cweb.po
+++ b/Build/source/texk/web2c/cwebdir/po/it/cweb.po
@@ -598,16 +598,16 @@ msgid "Sorting:"
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"
diff --git a/Build/source/texk/web2c/man/ChangeLog b/Build/source/texk/web2c/man/ChangeLog
index da98dd9e45b..de0705e7092 100644
--- a/Build/source/texk/web2c/man/ChangeLog
+++ b/Build/source/texk/web2c/man/ChangeLog
@@ -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,
diff --git a/Build/source/texk/web2c/man/ctwill.man b/Build/source/texk/web2c/man/ctwill.man
index 5efb9c7026e..f56d7394817 100644
--- a/Build/source/texk/web2c/man/ctwill.man
+++ b/Build/source/texk/web2c/man/ctwill.man
@@ -106,7 +106,7 @@ The present incarnation of \f[B]ctwill\f[R] and its utilities tries hard
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.