summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/web2c/ctangleboot.cin394
-rw-r--r--Build/source/texk/web2c/cwebboot.cin6
-rw-r--r--Build/source/texk/web2c/cwebdir/ChangeLog8
-rw-r--r--Build/source/texk/web2c/cwebdir/common.c6
-rw-r--r--Build/source/texk/web2c/cwebdir/common.w6
-rw-r--r--Build/source/texk/web2c/cwebdir/ctang-w2c.ch12
-rw-r--r--Build/source/texk/web2c/cwebdir/ctangle.c192
-rw-r--r--Build/source/texk/web2c/cwebdir/ctangle.w26
8 files changed, 317 insertions, 333 deletions
diff --git a/Build/source/texk/web2c/ctangleboot.cin b/Build/source/texk/web2c/ctangleboot.cin
index e614b2b5c95..19333f7898a 100644
--- a/Build/source/texk/web2c/ctangleboot.cin
+++ b/Build/source/texk/web2c/ctangleboot.cin
@@ -282,7 +282,7 @@ extern FILE*active_file;
extern FILE*check_file;
/*:16*//*116:*/
-#line 553 "cwebdir/ctang-w2c.ch"
+#line 549 "cwebdir/ctang-w2c.ch"
extern char cb_banner[];
@@ -355,33 +355,33 @@ static char cur_section_name_char;
static char output_file_name[longest_name+1];
/*:45*//*52:*/
-#line 579 "cwebdir/ctangle.w"
+#line 573 "cwebdir/ctangle.w"
static boolean output_defs_seen= false;
/*:52*//*57:*/
-#line 693 "cwebdir/ctangle.w"
+#line 687 "cwebdir/ctangle.w"
static char translit[0200][translit_length];
/*:57*//*62:*/
-#line 769 "cwebdir/ctangle.w"
+#line 763 "cwebdir/ctangle.w"
static eight_bits ccode[256];
/*:62*//*66:*/
-#line 829 "cwebdir/ctangle.w"
+#line 823 "cwebdir/ctangle.w"
static boolean comment_continues= false;
/*:66*//*68:*/
-#line 866 "cwebdir/ctangle.w"
+#line 860 "cwebdir/ctangle.w"
static name_pointer cur_section_name;
static boolean no_where;
/*:68*//*82:*/
-#line 1183 "cwebdir/ctangle.w"
+#line 1177 "cwebdir/ctangle.w"
static text_pointer cur_text;
static eight_bits next_control;
@@ -445,39 +445,39 @@ static void get_output(void);
static void flush_buffer(void);
/*:44*//*49:*/
-#line 547 "cwebdir/ctangle.w"
+#line 541 "cwebdir/ctangle.w"
static void phase_two(void);
/*:49*//*53:*/
-#line 582 "cwebdir/ctangle.w"
+#line 576 "cwebdir/ctangle.w"
static void output_defs(void);
static void out_char(eight_bits);
/*:53*//*65:*/
-#line 809 "cwebdir/ctangle.w"
+#line 803 "cwebdir/ctangle.w"
static eight_bits skip_ahead(void);
static boolean skip_comment(boolean);
/*:65*//*70:*/
-#line 916 "cwebdir/ctangle.w"
+#line 910 "cwebdir/ctangle.w"
static eight_bits get_next(void);
/*:70*//*84:*/
-#line 1209 "cwebdir/ctangle.w"
+#line 1203 "cwebdir/ctangle.w"
static void scan_repl(eight_bits);
/*:84*//*91:*/
-#line 1401 "cwebdir/ctangle.w"
+#line 1395 "cwebdir/ctangle.w"
static void scan_section(void);
/*:91*//*99:*/
-#line 1478 "cwebdir/ctangle.w"
+#line 1472 "cwebdir/ctangle.w"
static void phase_one(void);
/*:99*//*101:*/
-#line 1511 "cwebdir/ctangle.w"
+#line 1505 "cwebdir/ctangle.w"
static void skip_limbo(void);
/*:101*/
@@ -515,16 +515,16 @@ last_unnamed= text_info;text_info->text_link= macro;
cur_out_file= end_output_files= output_files+max_files;
/*:46*//*58:*/
-#line 696 "cwebdir/ctangle.w"
+#line 690 "cwebdir/ctangle.w"
{int i;
for(i= 0;i<0200;i++)
snprintf(translit[i],translit_length,"X%02X",(unsigned int)(0200+i));
}
-#line 178 "cwebdir/ctang-w2c.ch"
+#line 174 "cwebdir/ctang-w2c.ch"
/*:58*//*63:*/
-#line 772 "cwebdir/ctangle.w"
+#line 766 "cwebdir/ctangle.w"
{
int c;
for(c= 0;c<256;c++)ccode[c]= ignore;
@@ -544,11 +544,11 @@ ccode['<']= ccode['(']= section_name;
ccode['\'']= ord;
/*:63*//*78:*/
-#line 1104 "cwebdir/ctangle.w"
+#line 1098 "cwebdir/ctangle.w"
section_text[0]= ' ';
/*:78*//*117:*/
-#line 556 "cwebdir/ctang-w2c.ch"
+#line 552 "cwebdir/ctang-w2c.ch"
strncpy(cb_banner,banner,max_banner-1);
@@ -716,7 +716,7 @@ cur_byte= cur_repl->tok_start;cur_section= 0;
#line 515 "cwebdir/ctangle.w"
/*51:*/
-#line 575 "cwebdir/ctangle.w"
+#line 569 "cwebdir/ctangle.w"
if(!output_defs_seen)
output_defs();
@@ -731,38 +731,30 @@ fputs(_("\n! No program text was specified."),stdout);mark_harmless();
}
else{
-if(cur_out_file==end_output_files){
-if(show_progress){
-#line 103 "cwebdir/ctang-w2c.ch"
-printf(_("\nWriting the output file (%s):"),C_file_name);
-#line 525 "cwebdir/ctangle.w"
-update_terminal();
-}
-}
-else{
if(show_progress){
-#line 109 "cwebdir/ctang-w2c.ch"
-fputs(_("\nWriting the output files:"),stdout);
-#line 531 "cwebdir/ctangle.w"
+printf(cur_out_file==end_output_files?
+#line 104 "cwebdir/ctang-w2c.ch"
+_("\nWriting the output file (%s):"):
+_("\nWriting the output files: (%s)"),C_file_name);
+#line 526 "cwebdir/ctangle.w"
-printf(" (%s)",C_file_name);
update_terminal();
}
-if(text_info->text_link==macro)goto writeloop;
-}
+if(text_info->text_link!=macro){
while(stack_ptr> stack)get_output();
flush_buffer();
-writeloop:/*50:*/
-#line 137 "cwebdir/ctang-w2c.ch"
+}
+/*50:*/
+#line 133 "cwebdir/ctang-w2c.ch"
if(check_for_change){
fclose(C_file);C_file= NULL;
/*106:*/
-#line 436 "cwebdir/ctang-w2c.ch"
+#line 432 "cwebdir/ctang-w2c.ch"
if((C_file= fopen(C_file_name,"r"))!=NULL){
/*107:*/
-#line 443 "cwebdir/ctang-w2c.ch"
+#line 439 "cwebdir/ctang-w2c.ch"
boolean comparison= false;
@@ -771,7 +763,7 @@ fatal(_("! Cannot open output file "),check_file_name);
/*108:*/
-#line 457 "cwebdir/ctang-w2c.ch"
+#line 453 "cwebdir/ctang-w2c.ch"
do{
char x[BUFSIZ],y[BUFSIZ];
@@ -781,17 +773,17 @@ comparison= (x_size==y_size)&&!memcmp(x,y,x_size);
}while(comparison&&!feof(C_file)&&!feof(check_file));
/*:108*/
-#line 450 "cwebdir/ctang-w2c.ch"
+#line 446 "cwebdir/ctang-w2c.ch"
fclose(C_file);C_file= NULL;
fclose(check_file);check_file= NULL;
/*:107*/
-#line 438 "cwebdir/ctang-w2c.ch"
+#line 434 "cwebdir/ctang-w2c.ch"
/*109:*/
-#line 468 "cwebdir/ctang-w2c.ch"
+#line 464 "cwebdir/ctang-w2c.ch"
if(comparison)
remove(check_file_name);
@@ -801,20 +793,20 @@ rename(check_file_name,C_file_name);
}
/*:109*/
-#line 439 "cwebdir/ctang-w2c.ch"
+#line 435 "cwebdir/ctang-w2c.ch"
}else
rename(check_file_name,C_file_name);
/*:106*/
-#line 140 "cwebdir/ctang-w2c.ch"
+#line 136 "cwebdir/ctang-w2c.ch"
}
for(an_output_file= end_output_files;an_output_file> cur_out_file;){
an_output_file--;
sprint_section_name(output_file_name,*an_output_file);
if(check_for_change)/*105:*/
-#line 427 "cwebdir/ctang-w2c.ch"
+#line 423 "cwebdir/ctang-w2c.ch"
{
if((C_file= fopen(output_file_name,"a"))==NULL)
fatal(_("! Cannot open output file "),output_file_name);
@@ -825,7 +817,7 @@ fatal(_("! Cannot open output file "),check_file_name);
}
/*:105*/
-#line 145 "cwebdir/ctang-w2c.ch"
+#line 141 "cwebdir/ctang-w2c.ch"
else{
fclose(C_file);
@@ -844,14 +836,14 @@ flush_buffer();
if(check_for_change){
fclose(C_file);C_file= NULL;
/*110:*/
-#line 481 "cwebdir/ctang-w2c.ch"
+#line 477 "cwebdir/ctang-w2c.ch"
if(0==strcmp("/dev/stdout",output_file_name))
/*112:*/
-#line 508 "cwebdir/ctang-w2c.ch"
+#line 504 "cwebdir/ctang-w2c.ch"
{
/*115:*/
-#line 539 "cwebdir/ctang-w2c.ch"
+#line 535 "cwebdir/ctang-w2c.ch"
char in_buf[BUFSIZ+1];
int in_size;
@@ -861,7 +853,7 @@ fatal(_("! Cannot open output file "),check_file_name);
/*:115*/
-#line 509 "cwebdir/ctang-w2c.ch"
+#line 505 "cwebdir/ctang-w2c.ch"
do{
in_size= fread(in_buf,sizeof(char),BUFSIZ,check_file);
@@ -870,7 +862,7 @@ fprintf(stdout,"%s",in_buf);
}while(!feof(check_file));
fclose(check_file);check_file= NULL;
/*111:*/
-#line 498 "cwebdir/ctang-w2c.ch"
+#line 494 "cwebdir/ctang-w2c.ch"
if(comparison)
remove(check_file_name);
@@ -880,19 +872,19 @@ rename(check_file_name,output_file_name);
}
/*:111*/
-#line 516 "cwebdir/ctang-w2c.ch"
+#line 512 "cwebdir/ctang-w2c.ch"
}
/*:112*/
-#line 483 "cwebdir/ctang-w2c.ch"
+#line 479 "cwebdir/ctang-w2c.ch"
else if(0==strcmp("/dev/stderr",output_file_name))
/*113:*/
-#line 521 "cwebdir/ctang-w2c.ch"
+#line 517 "cwebdir/ctang-w2c.ch"
{
/*115:*/
-#line 539 "cwebdir/ctang-w2c.ch"
+#line 535 "cwebdir/ctang-w2c.ch"
char in_buf[BUFSIZ+1];
int in_size;
@@ -902,7 +894,7 @@ fatal(_("! Cannot open output file "),check_file_name);
/*:115*/
-#line 522 "cwebdir/ctang-w2c.ch"
+#line 518 "cwebdir/ctang-w2c.ch"
do{
in_size= fread(in_buf,sizeof(char),BUFSIZ,check_file);
@@ -911,7 +903,7 @@ fprintf(stderr,"%s",in_buf);
}while(!feof(check_file));
fclose(check_file);check_file= NULL;
/*111:*/
-#line 498 "cwebdir/ctang-w2c.ch"
+#line 494 "cwebdir/ctang-w2c.ch"
if(comparison)
remove(check_file_name);
@@ -921,20 +913,20 @@ rename(check_file_name,output_file_name);
}
/*:111*/
-#line 529 "cwebdir/ctang-w2c.ch"
+#line 525 "cwebdir/ctang-w2c.ch"
}
/*:113*/
-#line 485 "cwebdir/ctang-w2c.ch"
+#line 481 "cwebdir/ctang-w2c.ch"
else if(0==strcmp("/dev/null",output_file_name))
/*114:*/
-#line 534 "cwebdir/ctang-w2c.ch"
+#line 530 "cwebdir/ctang-w2c.ch"
{
boolean comparison= true;
/*111:*/
-#line 498 "cwebdir/ctang-w2c.ch"
+#line 494 "cwebdir/ctang-w2c.ch"
if(comparison)
remove(check_file_name);
@@ -944,17 +936,17 @@ rename(check_file_name,output_file_name);
}
/*:111*/
-#line 536 "cwebdir/ctang-w2c.ch"
+#line 532 "cwebdir/ctang-w2c.ch"
}
/*:114*/
-#line 487 "cwebdir/ctang-w2c.ch"
+#line 483 "cwebdir/ctang-w2c.ch"
else{
if((C_file= fopen(output_file_name,"r"))!=NULL){
/*107:*/
-#line 443 "cwebdir/ctang-w2c.ch"
+#line 439 "cwebdir/ctang-w2c.ch"
boolean comparison= false;
@@ -963,7 +955,7 @@ fatal(_("! Cannot open output file "),check_file_name);
/*108:*/
-#line 457 "cwebdir/ctang-w2c.ch"
+#line 453 "cwebdir/ctang-w2c.ch"
do{
char x[BUFSIZ],y[BUFSIZ];
@@ -973,17 +965,17 @@ comparison= (x_size==y_size)&&!memcmp(x,y,x_size);
}while(comparison&&!feof(C_file)&&!feof(check_file));
/*:108*/
-#line 450 "cwebdir/ctang-w2c.ch"
+#line 446 "cwebdir/ctang-w2c.ch"
fclose(C_file);C_file= NULL;
fclose(check_file);check_file= NULL;
/*:107*/
-#line 490 "cwebdir/ctang-w2c.ch"
+#line 486 "cwebdir/ctang-w2c.ch"
/*111:*/
-#line 498 "cwebdir/ctang-w2c.ch"
+#line 494 "cwebdir/ctang-w2c.ch"
if(comparison)
remove(check_file_name);
@@ -993,35 +985,35 @@ rename(check_file_name,output_file_name);
}
/*:111*/
-#line 491 "cwebdir/ctang-w2c.ch"
+#line 487 "cwebdir/ctang-w2c.ch"
}else
rename(check_file_name,output_file_name);
}
/*:110*/
-#line 162 "cwebdir/ctang-w2c.ch"
+#line 158 "cwebdir/ctang-w2c.ch"
}
}
if(check_for_change)
strcpy(check_file_name,"");
-#line 570 "cwebdir/ctangle.w"
+#line 564 "cwebdir/ctangle.w"
/*:50*/
-#line 539 "cwebdir/ctangle.w"
+#line 533 "cwebdir/ctangle.w"
if(show_happiness){
if(show_progress)new_line();
-#line 115 "cwebdir/ctang-w2c.ch"
+#line 111 "cwebdir/ctang-w2c.ch"
fputs(_("Done."),stdout);
-#line 543 "cwebdir/ctangle.w"
+#line 537 "cwebdir/ctangle.w"
}
}
}
/*:48*//*54:*/
-#line 591 "cwebdir/ctangle.w"
+#line 585 "cwebdir/ctangle.w"
static void
output_defs(void)
@@ -1046,9 +1038,9 @@ a= (a-0200)*0400+*cur_byte++;
if(a<024000){
cur_val= (int)a;out_char(identifier);
}
-#line 172 "cwebdir/ctang-w2c.ch"
+#line 168 "cwebdir/ctang-w2c.ch"
else if(a<050000)confusion(_("macro defs have strange char"));
-#line 616 "cwebdir/ctangle.w"
+#line 610 "cwebdir/ctangle.w"
else{
cur_val= (int)a-050000;cur_section= (sixteen_bits)cur_val;
out_char(section_number);
@@ -1063,7 +1055,7 @@ pop_level(false);
}
/*:54*//*55:*/
-#line 634 "cwebdir/ctangle.w"
+#line 628 "cwebdir/ctangle.w"
static void
out_char(
@@ -1076,14 +1068,14 @@ case'\n':if(protect&&out_state!=verbatim)C_putc(' ');
if(protect||out_state==verbatim)C_putc('\\');
flush_buffer();if(out_state!=verbatim)out_state= normal;break;
/*59:*/
-#line 204 "cwebdir/ctang-w2c.ch"
+#line 200 "cwebdir/ctang-w2c.ch"
-#line 703 "cwebdir/ctangle.w"
+#line 697 "cwebdir/ctangle.w"
case identifier:
if(out_state==num_or_id)C_putc(' ');
for(j= (cur_val+name_dir)->byte_start;
j<(cur_val+name_dir+1)->byte_start;j++)
-#line 212 "cwebdir/ctang-w2c.ch"
+#line 208 "cwebdir/ctang-w2c.ch"
if(ishigh(*j)){
if(transliterate_utf_eight){
@@ -1094,14 +1086,14 @@ else if((eight_bits)(*j)>=0300)j+= 1;
C_printf("%s",translit[(eight_bits)(*j)-0200]);
}
else C_putc(*j);
-#line 710 "cwebdir/ctangle.w"
+#line 704 "cwebdir/ctangle.w"
out_state= num_or_id;break;
/*:59*/
-#line 645 "cwebdir/ctangle.w"
+#line 639 "cwebdir/ctangle.w"
/*60:*/
-#line 712 "cwebdir/ctangle.w"
+#line 706 "cwebdir/ctangle.w"
case section_number:
if(cur_val> 0)C_printf("/*%d:*/",cur_val);
@@ -1128,10 +1120,10 @@ C_putc('"');C_putc('\n');
break;
/*:60*/
-#line 646 "cwebdir/ctangle.w"
+#line 640 "cwebdir/ctangle.w"
/*56:*/
-#line 664 "cwebdir/ctangle.w"
+#line 658 "cwebdir/ctangle.w"
case plus_plus:C_putc('+');C_putc('+');out_state= normal;break;
case minus_minus:C_putc('-');C_putc('-');out_state= normal;break;
@@ -1152,7 +1144,7 @@ case minus_gt_ast:C_putc('-');C_putc('>');C_putc('*');out_state= normal;
break;
/*:56*/
-#line 647 "cwebdir/ctangle.w"
+#line 641 "cwebdir/ctangle.w"
case'=':case'>':C_putc(cur_char);C_putc(' ');
out_state= normal;break;
@@ -1171,7 +1163,7 @@ default:C_putc(cur_char);out_state= normal;break;
}
/*:55*//*64:*/
-#line 793 "cwebdir/ctangle.w"
+#line 787 "cwebdir/ctangle.w"
static eight_bits
skip_ahead(void)
@@ -1189,7 +1181,7 @@ if(c!=ignore||*(loc-1)=='>')return c;
}
/*:64*//*67:*/
-#line 832 "cwebdir/ctangle.w"
+#line 826 "cwebdir/ctangle.w"
static boolean skip_comment(
boolean is_long_comment)
@@ -1200,9 +1192,9 @@ if(loc> limit){
if(is_long_comment){
if(get_line())return comment_continues= true;
else{
-#line 227 "cwebdir/ctang-w2c.ch"
+#line 223 "cwebdir/ctang-w2c.ch"
err_print(_("! Input ended in mid-comment"));
-#line 843 "cwebdir/ctangle.w"
+#line 837 "cwebdir/ctangle.w"
return comment_continues= false;
}
@@ -1215,9 +1207,9 @@ loc++;return comment_continues= false;
}
if(c=='@'){
if(ccode[(eight_bits)*loc]==new_section){
-#line 233 "cwebdir/ctang-w2c.ch"
+#line 229 "cwebdir/ctang-w2c.ch"
err_print(_("! Section name ended in mid-comment"));loc--;
-#line 856 "cwebdir/ctangle.w"
+#line 850 "cwebdir/ctangle.w"
return comment_continues= false;
}
@@ -1227,7 +1219,7 @@ else loc++;
}
/*:67*//*69:*/
-#line 873 "cwebdir/ctangle.w"
+#line 867 "cwebdir/ctangle.w"
static eight_bits
get_next(void)
@@ -1241,7 +1233,7 @@ if(get_line()==false)return new_section;
else if(print_where&&!no_where){
print_where= false;
/*85:*/
-#line 1219 "cwebdir/ctangle.w"
+#line 1213 "cwebdir/ctangle.w"
{
eight_bits a;
@@ -1258,7 +1250,7 @@ store_id(a);
}
/*:85*/
-#line 885 "cwebdir/ctangle.w"
+#line 879 "cwebdir/ctangle.w"
}
else return(eight_bits)'\n';
@@ -1271,7 +1263,7 @@ else continue;
}
loc++;
if(xisdigit(c)||c=='.')/*73:*/
-#line 957 "cwebdir/ctangle.w"
+#line 951 "cwebdir/ctangle.w"
{
boolean hex_flag= false;
id_first= loc-1;
@@ -1305,13 +1297,13 @@ return constant;
}
/*:73*/
-#line 896 "cwebdir/ctangle.w"
+#line 890 "cwebdir/ctangle.w"
else if(c=='\''||c=='"'
||((c=='L'||c=='u'||c=='U')&&(*loc=='\''||*loc=='"'))
||((c=='u'&&*loc=='8')&&(*(loc+1)=='\''||*(loc+1)=='"')))
/*74:*/
-#line 994 "cwebdir/ctangle.w"
+#line 988 "cwebdir/ctangle.w"
{
char delim= (char)c;
id_first= section_text+1;
@@ -1323,15 +1315,15 @@ delim= *loc++;*++id_loc= delim;
while(true){
if(loc>=limit){
if(*(limit-1)!='\\'){
-#line 239 "cwebdir/ctang-w2c.ch"
+#line 235 "cwebdir/ctang-w2c.ch"
err_print(_("! String didn't end"));loc= limit;break;
-#line 1006 "cwebdir/ctangle.w"
+#line 1000 "cwebdir/ctangle.w"
}
if(get_line()==false){
-#line 245 "cwebdir/ctang-w2c.ch"
+#line 241 "cwebdir/ctang-w2c.ch"
err_print(_("! Input ended in middle of string"));loc= buffer;break;
-#line 1010 "cwebdir/ctangle.w"
+#line 1004 "cwebdir/ctangle.w"
}
else if(++id_loc<=section_text_end)*id_loc= '\n';
@@ -1349,9 +1341,9 @@ c= (eight_bits)*loc++;
if(++id_loc<=section_text_end)*id_loc= (char)c;
}
if(id_loc>=section_text_end){
-#line 251 "cwebdir/ctang-w2c.ch"
+#line 247 "cwebdir/ctang-w2c.ch"
fputs(_("\n! String too long: "),stdout);
-#line 1028 "cwebdir/ctangle.w"
+#line 1022 "cwebdir/ctangle.w"
term_write(section_text+1,25);
err_print("...");
@@ -1361,11 +1353,11 @@ return string;
}
/*:74*/
-#line 900 "cwebdir/ctangle.w"
+#line 894 "cwebdir/ctangle.w"
else if(isalpha((int)c)||isxalpha(c)||ishigh(c))
/*72:*/
-#line 948 "cwebdir/ctangle.w"
+#line 942 "cwebdir/ctangle.w"
{
id_first= --loc;
do
@@ -1376,45 +1368,45 @@ id_loc= loc;return identifier;
}
/*:72*/
-#line 902 "cwebdir/ctangle.w"
+#line 896 "cwebdir/ctangle.w"
else if(c=='@')/*75:*/
-#line 1039 "cwebdir/ctangle.w"
+#line 1033 "cwebdir/ctangle.w"
switch(c= ccode[(eight_bits)*loc++]){
case ignore:continue;
-#line 257 "cwebdir/ctang-w2c.ch"
+#line 253 "cwebdir/ctang-w2c.ch"
case translit_code:err_print(_("! Use @l in limbo only"));continue;
-#line 1043 "cwebdir/ctangle.w"
+#line 1037 "cwebdir/ctangle.w"
case control_text:while((c= skip_ahead())=='@');
if(*(loc-1)!='>')
-#line 263 "cwebdir/ctang-w2c.ch"
+#line 259 "cwebdir/ctang-w2c.ch"
err_print(_("! Double @ should be used in control text"));
-#line 1048 "cwebdir/ctangle.w"
+#line 1042 "cwebdir/ctangle.w"
continue;
case section_name:
cur_section_name_char= *(loc-1);
/*77:*/
-#line 1084 "cwebdir/ctangle.w"
+#line 1078 "cwebdir/ctangle.w"
{
char*k= section_text;
/*79:*/
-#line 1106 "cwebdir/ctangle.w"
+#line 1100 "cwebdir/ctangle.w"
while(true){
if(loc> limit&&get_line()==false){
-#line 281 "cwebdir/ctang-w2c.ch"
+#line 277 "cwebdir/ctang-w2c.ch"
err_print(_("! Input ended in section name"));
-#line 1110 "cwebdir/ctangle.w"
+#line 1104 "cwebdir/ctangle.w"
loc= buffer+1;break;
}
c= (eight_bits)*loc;
/*80:*/
-#line 1129 "cwebdir/ctangle.w"
+#line 1123 "cwebdir/ctangle.w"
if(c=='@'){
c= (eight_bits)*(loc+1);
@@ -1422,22 +1414,22 @@ if(c=='>'){
loc+= 2;break;
}
if(ccode[(eight_bits)c]==new_section){
-#line 293 "cwebdir/ctang-w2c.ch"
+#line 289 "cwebdir/ctang-w2c.ch"
err_print(_("! Section name didn't end"));break;
-#line 1137 "cwebdir/ctangle.w"
+#line 1131 "cwebdir/ctangle.w"
}
if(ccode[(eight_bits)c]==section_name){
-#line 299 "cwebdir/ctang-w2c.ch"
+#line 295 "cwebdir/ctang-w2c.ch"
err_print(_("! Nesting of section names not allowed"));break;
-#line 1141 "cwebdir/ctangle.w"
+#line 1135 "cwebdir/ctangle.w"
}
*(++k)= '@';loc++;
}
/*:80*/
-#line 1114 "cwebdir/ctangle.w"
+#line 1108 "cwebdir/ctangle.w"
loc++;if(k<section_text_end)k++;
if(xisspace(c)){
@@ -1446,9 +1438,9 @@ c= (eight_bits)' ';if(*(k-1)==' ')k--;
*k= (char)c;
}
if(k>=section_text_end){
-#line 287 "cwebdir/ctang-w2c.ch"
+#line 283 "cwebdir/ctang-w2c.ch"
fputs(_("\n! Section name too long: "),stdout);
-#line 1123 "cwebdir/ctangle.w"
+#line 1117 "cwebdir/ctangle.w"
term_write(section_text+1,25);
printf("...");mark_harmless();
@@ -1456,7 +1448,7 @@ printf("...");mark_harmless();
if(*k==' '&&k> section_text)k--;
/*:79*/
-#line 1086 "cwebdir/ctangle.w"
+#line 1080 "cwebdir/ctangle.w"
if(k-section_text> 3&&strncmp(k-2,"...",3)==0)
cur_section_name= section_lookup(section_text+1,k-3,true);
@@ -1481,31 +1473,31 @@ else overflow(_("output files"));
}
/*:47*/
-#line 1094 "cwebdir/ctangle.w"
+#line 1088 "cwebdir/ctangle.w"
return section_name;
}
/*:77*/
-#line 1052 "cwebdir/ctangle.w"
+#line 1046 "cwebdir/ctangle.w"
case string:/*81:*/
-#line 1151 "cwebdir/ctangle.w"
+#line 1145 "cwebdir/ctangle.w"
id_first= loc++;*(limit+1)= '@';*(limit+2)= '>';
while(*loc!='@'||*(loc+1)!='>')loc++;
-#line 305 "cwebdir/ctang-w2c.ch"
+#line 301 "cwebdir/ctang-w2c.ch"
if(loc>=limit)err_print(_("! Verbatim string didn't end"));
-#line 1155 "cwebdir/ctangle.w"
+#line 1149 "cwebdir/ctangle.w"
id_loc= loc;loc+= 2;
return string;
/*:81*/
-#line 1053 "cwebdir/ctangle.w"
+#line 1047 "cwebdir/ctangle.w"
case ord:/*76:*/
-#line 1064 "cwebdir/ctangle.w"
+#line 1058 "cwebdir/ctangle.w"
id_first= loc;
if(*loc=='\\')
@@ -1513,17 +1505,17 @@ if(*++loc=='\'')loc++;
while(*loc!='\''){
if(*loc=='@'){
if(*(loc+1)!='@')
-#line 269 "cwebdir/ctang-w2c.ch"
+#line 265 "cwebdir/ctang-w2c.ch"
err_print(_("! Double @ should be used in ASCII constant"));
-#line 1072 "cwebdir/ctangle.w"
+#line 1066 "cwebdir/ctangle.w"
else loc++;
}
loc++;
if(loc> limit){
-#line 275 "cwebdir/ctang-w2c.ch"
+#line 271 "cwebdir/ctang-w2c.ch"
err_print(_("! String didn't end"));loc= limit-1;break;
-#line 1078 "cwebdir/ctangle.w"
+#line 1072 "cwebdir/ctangle.w"
}
}
@@ -1531,13 +1523,13 @@ loc++;
return ord;
/*:76*/
-#line 1054 "cwebdir/ctangle.w"
+#line 1048 "cwebdir/ctangle.w"
default:return c;
}
/*:75*/
-#line 903 "cwebdir/ctangle.w"
+#line 897 "cwebdir/ctangle.w"
else if(xisspace(c)){
if(!preprocessing||loc> limit)continue;
@@ -1547,7 +1539,7 @@ else return(eight_bits)' ';
}
else if(c=='#'&&loc==buffer+1)preprocessing= true;
mistake:/*71:*/
-#line 925 "cwebdir/ctangle.w"
+#line 919 "cwebdir/ctangle.w"
switch(c){
case'+':if(*loc=='+')compress(plus_plus);break;
@@ -1572,14 +1564,14 @@ case'!':if(*loc=='=')compress(non_eq);break;
}
/*:71*/
-#line 911 "cwebdir/ctangle.w"
+#line 905 "cwebdir/ctangle.w"
return c;
}
}
/*:69*//*83:*/
-#line 1187 "cwebdir/ctangle.w"
+#line 1181 "cwebdir/ctangle.w"
static void
scan_repl(
@@ -1587,7 +1579,7 @@ eight_bits t)
{
sixteen_bits a;
if(t==section_name)/*85:*/
-#line 1219 "cwebdir/ctangle.w"
+#line 1213 "cwebdir/ctangle.w"
{
eight_bits a;
@@ -1604,11 +1596,11 @@ store_id(a);
}
/*:85*/
-#line 1193 "cwebdir/ctangle.w"
+#line 1187 "cwebdir/ctangle.w"
while(true)switch(a= get_next()){
/*86:*/
-#line 1234 "cwebdir/ctangle.w"
+#line 1228 "cwebdir/ctangle.w"
case identifier:store_id(a);
if(*buffer=='#'&&(
@@ -1621,28 +1613,28 @@ break;
case section_name:if(t!=section_name)goto done;
else{
/*87:*/
-#line 1275 "cwebdir/ctangle.w"
+#line 1269 "cwebdir/ctangle.w"
{
char*try_loc= loc;
while(*try_loc==' '&&try_loc<limit)try_loc++;
if(*try_loc=='+'&&try_loc<limit)try_loc++;
while(*try_loc==' '&&try_loc<limit)try_loc++;
-#line 341 "cwebdir/ctang-w2c.ch"
+#line 337 "cwebdir/ctang-w2c.ch"
if(*try_loc=='=')err_print(_("! Missing `@ ' before a named section"));
-#line 1281 "cwebdir/ctangle.w"
+#line 1275 "cwebdir/ctangle.w"
}
/*:87*/
-#line 1245 "cwebdir/ctangle.w"
+#line 1239 "cwebdir/ctangle.w"
a= cur_section_name-name_dir;
app_repl((a/0400)+0250);
app_repl(a%0400);
/*85:*/
-#line 1219 "cwebdir/ctangle.w"
+#line 1213 "cwebdir/ctangle.w"
{
eight_bits a;
@@ -1659,13 +1651,13 @@ store_id(a);
}
/*:85*/
-#line 1249 "cwebdir/ctangle.w"
+#line 1243 "cwebdir/ctangle.w"
}
break;
-#line 329 "cwebdir/ctang-w2c.ch"
+#line 325 "cwebdir/ctang-w2c.ch"
case output_defs_code:if(t!=section_name)err_print(_("! Misplaced @h"));
-#line 1253 "cwebdir/ctangle.w"
+#line 1247 "cwebdir/ctangle.w"
else{
output_defs_seen= true;
@@ -1673,7 +1665,7 @@ a= output_defs_flag;
app_repl((a/0400)+0200);
app_repl(a%0400);
/*85:*/
-#line 1219 "cwebdir/ctangle.w"
+#line 1213 "cwebdir/ctangle.w"
{
eight_bits a;
@@ -1690,21 +1682,21 @@ store_id(a);
}
/*:85*/
-#line 1259 "cwebdir/ctangle.w"
+#line 1253 "cwebdir/ctangle.w"
}
break;
case constant:case string:
/*88:*/
-#line 1292 "cwebdir/ctangle.w"
+#line 1286 "cwebdir/ctangle.w"
app_repl(a);
while(id_first<id_loc){
if(*id_first=='@'){
if(*(id_first+1)=='@')id_first++;
-#line 347 "cwebdir/ctang-w2c.ch"
+#line 343 "cwebdir/ctang-w2c.ch"
else err_print(_("! Double @ should be used in string"));
-#line 1298 "cwebdir/ctangle.w"
+#line 1292 "cwebdir/ctangle.w"
}
else if(a==constant&&*id_first=='\''&&!keep_digit_separators)
@@ -1714,12 +1706,12 @@ app_repl(*id_first++);
app_repl(a);
/*:88*/
-#line 1263 "cwebdir/ctangle.w"
+#line 1257 "cwebdir/ctangle.w"
break;
case ord:
/*89:*/
-#line 1310 "cwebdir/ctangle.w"
+#line 1304 "cwebdir/ctangle.w"
{
int c= (int)((eight_bits)*id_first);
if(c=='\\'){
@@ -1756,9 +1748,9 @@ break;
case'\\':c= '\\';break;
case'\'':c= '\'';break;
case'\"':c= '\"';break;
-#line 353 "cwebdir/ctang-w2c.ch"
+#line 349 "cwebdir/ctang-w2c.ch"
default:err_print(_("! Unrecognized escape sequence"));
-#line 1347 "cwebdir/ctangle.w"
+#line 1341 "cwebdir/ctangle.w"
}
}
@@ -1771,20 +1763,20 @@ app_repl(constant);
}
/*:89*/
-#line 1266 "cwebdir/ctangle.w"
+#line 1260 "cwebdir/ctangle.w"
break;
case definition:case format_code:case begin_C:if(t!=section_name)goto done;
else{
-#line 335 "cwebdir/ctang-w2c.ch"
+#line 331 "cwebdir/ctang-w2c.ch"
err_print(_("! @d, @f and @c are ignored in C text"));continue;
-#line 1271 "cwebdir/ctangle.w"
+#line 1265 "cwebdir/ctangle.w"
}
case new_section:goto done;
/*:86*/
-#line 1198 "cwebdir/ctangle.w"
+#line 1192 "cwebdir/ctangle.w"
case')':app_repl(a);
if(t==macro)app_repl(' ');
@@ -1792,14 +1784,14 @@ break;
default:app_repl(a);
}
done:next_control= (eight_bits)a;
-#line 323 "cwebdir/ctang-w2c.ch"
+#line 319 "cwebdir/ctang-w2c.ch"
if(text_ptr> text_info_end)overflow(_("text"));
-#line 1206 "cwebdir/ctangle.w"
+#line 1200 "cwebdir/ctangle.w"
cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr;
}
/*:83*//*90:*/
-#line 1368 "cwebdir/ctangle.w"
+#line 1362 "cwebdir/ctangle.w"
static void
scan_section(void)
@@ -1814,7 +1806,7 @@ printf("*%d",(int)section_count);update_terminal();
next_control= ignore;
while(true){
/*92:*/
-#line 1409 "cwebdir/ctangle.w"
+#line 1403 "cwebdir/ctangle.w"
while(next_control<definition)
@@ -1823,17 +1815,17 @@ loc-= 2;next_control= get_next();
}
/*:92*/
-#line 1382 "cwebdir/ctangle.w"
+#line 1376 "cwebdir/ctangle.w"
if(next_control==definition){
/*93:*/
-#line 1416 "cwebdir/ctangle.w"
+#line 1410 "cwebdir/ctangle.w"
while((next_control= get_next())=='\n');
if(next_control!=identifier){
-#line 359 "cwebdir/ctang-w2c.ch"
+#line 355 "cwebdir/ctang-w2c.ch"
err_print(_("! Definition flushed, must start with identifier"));
-#line 1420 "cwebdir/ctangle.w"
+#line 1414 "cwebdir/ctangle.w"
continue;
}
@@ -1845,7 +1837,7 @@ scan_repl(macro);
cur_text->text_link= macro;
/*:93*/
-#line 1384 "cwebdir/ctangle.w"
+#line 1378 "cwebdir/ctangle.w"
continue;
}
@@ -1855,14 +1847,14 @@ p= name_dir;break;
if(next_control==section_name){
p= cur_section_name;
/*94:*/
-#line 1438 "cwebdir/ctangle.w"
+#line 1432 "cwebdir/ctangle.w"
while((next_control= get_next())=='+');
if(next_control!='='&&next_control!=eq_eq)
continue;
/*:94*/
-#line 1392 "cwebdir/ctangle.w"
+#line 1386 "cwebdir/ctangle.w"
break;
}
@@ -1870,20 +1862,20 @@ return;
}
no_where= print_where= false;
/*95:*/
-#line 1443 "cwebdir/ctangle.w"
+#line 1437 "cwebdir/ctangle.w"
/*96:*/
-#line 1448 "cwebdir/ctangle.w"
+#line 1442 "cwebdir/ctangle.w"
store_two_bytes((sixteen_bits)(0150000+section_count));
/*:96*/
-#line 1444 "cwebdir/ctangle.w"
+#line 1438 "cwebdir/ctangle.w"
scan_repl(section_name);
/*97:*/
-#line 1452 "cwebdir/ctangle.w"
+#line 1446 "cwebdir/ctangle.w"
if(p==name_dir||p==NULL){
last_unnamed->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1900,16 +1892,16 @@ cur_text->text_link= section_flag;
/*:97*/
-#line 1446 "cwebdir/ctangle.w"
+#line 1440 "cwebdir/ctangle.w"
/*:95*/
-#line 1398 "cwebdir/ctangle.w"
+#line 1392 "cwebdir/ctangle.w"
}
/*:90*//*98:*/
-#line 1467 "cwebdir/ctangle.w"
+#line 1461 "cwebdir/ctangle.w"
static void
phase_one(void){
@@ -1922,7 +1914,7 @@ check_complete();
}
/*:98*//*100:*/
-#line 1483 "cwebdir/ctangle.w"
+#line 1477 "cwebdir/ctangle.w"
static void
skip_limbo(void)
@@ -1936,15 +1928,15 @@ char c= *loc++;
switch(ccode[(eight_bits)c]){
case new_section:return;
case translit_code:/*102:*/
-#line 1513 "cwebdir/ctangle.w"
+#line 1507 "cwebdir/ctangle.w"
while(xisspace(*loc)&&loc<limit)loc++;
loc+= 3;
if(loc> limit||!xisxdigit(*(loc-3))||!xisxdigit(*(loc-2))
||(*(loc-3)>='0'&&*(loc-3)<='7')||!xisspace(*(loc-1)))
-#line 379 "cwebdir/ctang-w2c.ch"
+#line 375 "cwebdir/ctang-w2c.ch"
err_print(_("! Improper hex number following @l"));
-#line 1519 "cwebdir/ctangle.w"
+#line 1513 "cwebdir/ctangle.w"
else{
unsigned int i;
@@ -1954,9 +1946,9 @@ while(xisspace(*loc)&&loc<limit)loc++;
beg= loc;
while(loc<limit&&(xisalpha(*loc)||xisdigit(*loc)||isxalpha(*loc)))loc++;
if(loc-beg>=translit_length)
-#line 385 "cwebdir/ctang-w2c.ch"
+#line 381 "cwebdir/ctang-w2c.ch"
err_print(_("! Replacement string in @l too long"));
-#line 1529 "cwebdir/ctangle.w"
+#line 1523 "cwebdir/ctangle.w"
else{
strncpy(translit[i-0200],beg,(size_t)(loc-beg));
@@ -1965,21 +1957,21 @@ translit[i-0200][loc-beg]= '\0';
}
/*:102*/
-#line 1495 "cwebdir/ctangle.w"
+#line 1489 "cwebdir/ctangle.w"
break;
case format_code:case'@':break;
case control_text:if(c=='q'||c=='Q'){
while((c= (char)skip_ahead())=='@');
if(*(loc-1)!='>')
-#line 365 "cwebdir/ctang-w2c.ch"
+#line 361 "cwebdir/ctang-w2c.ch"
err_print(_("! Double @ should be used in control text"));
-#line 1501 "cwebdir/ctangle.w"
+#line 1495 "cwebdir/ctangle.w"
break;
-#line 372 "cwebdir/ctang-w2c.ch"
+#line 368 "cwebdir/ctang-w2c.ch"
}/* otherwise fall through */
default:err_print(_("! Double @ should be used in limbo"));
-#line 1505 "cwebdir/ctangle.w"
+#line 1499 "cwebdir/ctangle.w"
}
}
@@ -1987,11 +1979,11 @@ default:err_print(_("! Double @ should be used in limbo"));
}
/*:100*//*103:*/
-#line 1539 "cwebdir/ctangle.w"
+#line 1533 "cwebdir/ctangle.w"
void
print_stats(void){
-#line 398 "cwebdir/ctang-w2c.ch"
+#line 394 "cwebdir/ctang-w2c.ch"
puts(_("\nMemory usage statistics:"));
printf(_("%td names (out of %ld)\n"),
(ptrdiff_t)(name_ptr-name_dir),(long)max_names);
@@ -2000,9 +1992,9 @@ printf(_("%td replacement texts (out of %ld)\n"),
printf(_("%td bytes (out of %ld)\n"),
(ptrdiff_t)(byte_ptr-byte_mem),(long)max_bytes);
printf(_("%td tokens (out of %ld)\n"),
-#line 1550 "cwebdir/ctangle.w"
+#line 1544 "cwebdir/ctangle.w"
(ptrdiff_t)(tok_ptr-tok_mem),(long)max_toks);
}
-#line 411 "cwebdir/ctang-w2c.ch"
+#line 407 "cwebdir/ctang-w2c.ch"
/*:103*/
diff --git a/Build/source/texk/web2c/cwebboot.cin b/Build/source/texk/web2c/cwebboot.cin
index e579678f617..fcd319d8df7 100644
--- a/Build/source/texk/web2c/cwebboot.cin
+++ b/Build/source/texk/web2c/cwebboot.cin
@@ -726,17 +726,17 @@ change_limit= change_buffer;changing= false;
return;
}
if(limit> buffer+1&&buffer[0]=='@'){
-char xyz_code= xisupper(buffer[1])?tolower((int)buffer[1]):buffer[1];
+if(xisupper(buffer[1]))buffer[1]= tolower((int)buffer[1]);
/*34:*/
#line 336 "cwebdir/common.w"
-if(xyz_code=='x'||xyz_code=='z'){
+if(buffer[1]=='x'||buffer[1]=='z'){
#line 134 "cwebdir/comm-w2c.ch"
loc= buffer+2;err_print(_("! Where is the matching @y?"));
#line 339 "cwebdir/common.w"
}
-else if(xyz_code=='y'){
+else if(buffer[1]=='y'){
if(n> 0){
loc= buffer+2;
printf("\n! Hmm... %d ",n);
diff --git a/Build/source/texk/web2c/cwebdir/ChangeLog b/Build/source/texk/web2c/cwebdir/ChangeLog
index 0926728bbde..586756acc43 100644
--- a/Build/source/texk/web2c/cwebdir/ChangeLog
+++ b/Build/source/texk/web2c/cwebdir/ChangeLog
@@ -1,3 +1,11 @@
+2023-08-07 Andreas Scherer <https://ascherer.github.io>
+
+ * common.c,
+ * common.w,
+ * ctang-w2c.ch,
+ * ctangle.c,
+ * ctangle.w: Code cleanup.
+
2023-08-06 Andreas Scherer <https://ascherer.github.io>
* ctwill-hint.ch,
diff --git a/Build/source/texk/web2c/cwebdir/common.c b/Build/source/texk/web2c/cwebdir/common.c
index 05e8b9cb90b..797cda58ea7 100644
--- a/Build/source/texk/web2c/cwebdir/common.c
+++ b/Build/source/texk/web2c/cwebdir/common.c
@@ -546,15 +546,15 @@ change_limit= change_buffer;changing= false;
return;
}
if(limit> buffer+1&&buffer[0]=='@'){
-char xyz_code= xisupper(buffer[1])?tolower((int)buffer[1]):buffer[1];
+if(xisupper(buffer[1]))buffer[1]= tolower((int)buffer[1]);
/*34:*/
#line 336 "common.w"
-if(xyz_code=='x'||xyz_code=='z'){
+if(buffer[1]=='x'||buffer[1]=='z'){
loc= buffer+2;err_print("! Where is the matching @y?");
}
-else if(xyz_code=='y'){
+else if(buffer[1]=='y'){
if(n> 0){
loc= buffer+2;
printf("\n! Hmm... %d ",n);
diff --git a/Build/source/texk/web2c/cwebdir/common.w b/Build/source/texk/web2c/cwebdir/common.w
index f3f22834853..83e37c14ac8 100644
--- a/Build/source/texk/web2c/cwebdir/common.w
+++ b/Build/source/texk/web2c/cwebdir/common.w
@@ -313,7 +313,7 @@ check_change(void) /* switches to |change_file| if the buffers match */
return;
}
if (limit>buffer+1 && buffer[0]=='@@') {
- char xyz_code=xisupper(buffer[1])? tolower((int)buffer[1]): buffer[1];
+ if (xisupper(buffer[1])) buffer[1]=tolower((int)buffer[1]);
@<If the current line starts with \.{@@y},
report any discrepancies and |return|@>@;
}
@@ -334,11 +334,11 @@ check_change(void) /* switches to |change_file| if the buffers match */
@ @<Predecl...@>=@+static void check_change(void);
@ @<If the current line starts with \.{@@y}...@>=
-if (xyz_code=='x' || xyz_code=='z') {
+if (buffer[1]=='x' || buffer[1]=='z') {
loc=buffer+2; err_print("! Where is the matching @@y?");
@.Where is the match...@>
}
-else if (xyz_code=='y') {
+else if (buffer[1]=='y') {
if (n>0) {
loc=buffer+2;
printf("\n! Hmm... %d ",n);
diff --git a/Build/source/texk/web2c/cwebdir/ctang-w2c.ch b/Build/source/texk/web2c/cwebdir/ctang-w2c.ch
index c8fd9a39d8c..464a0a25a63 100644
--- a/Build/source/texk/web2c/cwebdir/ctang-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/ctang-w2c.ch
@@ -98,15 +98,11 @@
@z
@x
- printf("\nWriting the output file (%s):",C_file_name);
+ "\nWriting the output file (%s):" : @|
+ "\nWriting the output files: (%s)",C_file_name);
@y
- printf(_("\nWriting the output file (%s):"),C_file_name);
-@z
-
-@x
- fputs("\nWriting the output files:",stdout);
-@y
- fputs(_("\nWriting the output files:"),stdout);
+ _("\nWriting the output file (%s):") : @|
+ _("\nWriting the output files: (%s)"),C_file_name);
@z
@x
diff --git a/Build/source/texk/web2c/cwebdir/ctangle.c b/Build/source/texk/web2c/cwebdir/ctangle.c
index e742f5abfdc..a060e8f678c 100644
--- a/Build/source/texk/web2c/cwebdir/ctangle.c
+++ b/Build/source/texk/web2c/cwebdir/ctangle.c
@@ -325,33 +325,33 @@ static char cur_section_name_char;
static char output_file_name[longest_name+1];
/*:45*//*52:*/
-#line 579 "ctangle.w"
+#line 573 "ctangle.w"
static boolean output_defs_seen= false;
/*:52*//*57:*/
-#line 693 "ctangle.w"
+#line 687 "ctangle.w"
static char translit[0200][translit_length];
/*:57*//*62:*/
-#line 769 "ctangle.w"
+#line 763 "ctangle.w"
static eight_bits ccode[256];
/*:62*//*66:*/
-#line 829 "ctangle.w"
+#line 823 "ctangle.w"
static boolean comment_continues= false;
/*:66*//*68:*/
-#line 866 "ctangle.w"
+#line 860 "ctangle.w"
static name_pointer cur_section_name;
static boolean no_where;
/*:68*//*82:*/
-#line 1183 "ctangle.w"
+#line 1177 "ctangle.w"
static text_pointer cur_text;
static eight_bits next_control;
@@ -413,39 +413,39 @@ static void get_output(void);
static void flush_buffer(void);
/*:44*//*49:*/
-#line 547 "ctangle.w"
+#line 541 "ctangle.w"
static void phase_two(void);
/*:49*//*53:*/
-#line 582 "ctangle.w"
+#line 576 "ctangle.w"
static void output_defs(void);
static void out_char(eight_bits);
/*:53*//*65:*/
-#line 809 "ctangle.w"
+#line 803 "ctangle.w"
static eight_bits skip_ahead(void);
static boolean skip_comment(boolean);
/*:65*//*70:*/
-#line 916 "ctangle.w"
+#line 910 "ctangle.w"
static eight_bits get_next(void);
/*:70*//*84:*/
-#line 1209 "ctangle.w"
+#line 1203 "ctangle.w"
static void scan_repl(eight_bits);
/*:84*//*91:*/
-#line 1401 "ctangle.w"
+#line 1395 "ctangle.w"
static void scan_section(void);
/*:91*//*99:*/
-#line 1478 "ctangle.w"
+#line 1472 "ctangle.w"
static void phase_one(void);
/*:99*//*101:*/
-#line 1511 "ctangle.w"
+#line 1505 "ctangle.w"
static void skip_limbo(void);
/*:101*/
@@ -483,7 +483,7 @@ last_unnamed= text_info;text_info->text_link= macro;
cur_out_file= end_output_files= output_files+max_files;
/*:46*//*58:*/
-#line 696 "ctangle.w"
+#line 690 "ctangle.w"
{int i;
for(i= 0;i<0200;i++)
@@ -491,7 +491,7 @@ snprintf(translit[i],translit_length,"X%02X",(unsigned int)(0200+i));
}
/*:58*//*63:*/
-#line 772 "ctangle.w"
+#line 766 "ctangle.w"
{
int c;
for(c= 0;c<256;c++)ccode[c]= ignore;
@@ -511,7 +511,7 @@ ccode['<']= ccode['(']= section_name;
ccode['\'']= ord;
/*:63*//*78:*/
-#line 1104 "ctangle.w"
+#line 1098 "ctangle.w"
section_text[0]= ' ';
/*:78*/
@@ -670,7 +670,7 @@ cur_byte= cur_repl->tok_start;cur_section= 0;
#line 515 "ctangle.w"
/*51:*/
-#line 575 "ctangle.w"
+#line 569 "ctangle.w"
if(!output_defs_seen)
output_defs();
@@ -683,25 +683,19 @@ fputs("\n! No program text was specified.",stdout);mark_harmless();
}
else{
-if(cur_out_file==end_output_files){
if(show_progress){
-printf("\nWriting the output file (%s):",C_file_name);
-update_terminal();
-}
-}
-else{
-if(show_progress){
-fputs("\nWriting the output files:",stdout);
+printf(cur_out_file==end_output_files?
+"\nWriting the output file (%s):":
+"\nWriting the output files: (%s)",C_file_name);
-printf(" (%s)",C_file_name);
update_terminal();
}
-if(text_info->text_link==macro)goto writeloop;
-}
+if(text_info->text_link!=macro){
while(stack_ptr> stack)get_output();
flush_buffer();
-writeloop:/*50:*/
-#line 553 "ctangle.w"
+}
+/*50:*/
+#line 547 "ctangle.w"
for(an_output_file= end_output_files;an_output_file> cur_out_file;){
an_output_file--;
@@ -721,7 +715,7 @@ flush_buffer();
}
/*:50*/
-#line 539 "ctangle.w"
+#line 533 "ctangle.w"
if(show_happiness){
if(show_progress)new_line();
@@ -731,7 +725,7 @@ fputs("Done.",stdout);
}
/*:48*//*54:*/
-#line 591 "ctangle.w"
+#line 585 "ctangle.w"
static void
output_defs(void)
@@ -771,7 +765,7 @@ pop_level(false);
}
/*:54*//*55:*/
-#line 634 "ctangle.w"
+#line 628 "ctangle.w"
static void
out_char(
@@ -784,7 +778,7 @@ case'\n':if(protect&&out_state!=verbatim)C_putc(' ');
if(protect||out_state==verbatim)C_putc('\\');
flush_buffer();if(out_state!=verbatim)out_state= normal;break;
/*59:*/
-#line 702 "ctangle.w"
+#line 696 "ctangle.w"
case identifier:
if(out_state==num_or_id)C_putc(' ');
@@ -796,10 +790,10 @@ else C_printf("%s",translit[(eight_bits)(*j)-0200]);
out_state= num_or_id;break;
/*:59*/
-#line 645 "ctangle.w"
+#line 639 "ctangle.w"
/*60:*/
-#line 712 "ctangle.w"
+#line 706 "ctangle.w"
case section_number:
if(cur_val> 0)C_printf("/*%d:*/",cur_val);
@@ -826,10 +820,10 @@ C_putc('"');C_putc('\n');
break;
/*:60*/
-#line 646 "ctangle.w"
+#line 640 "ctangle.w"
/*56:*/
-#line 664 "ctangle.w"
+#line 658 "ctangle.w"
case plus_plus:C_putc('+');C_putc('+');out_state= normal;break;
case minus_minus:C_putc('-');C_putc('-');out_state= normal;break;
@@ -850,7 +844,7 @@ case minus_gt_ast:C_putc('-');C_putc('>');C_putc('*');out_state= normal;
break;
/*:56*/
-#line 647 "ctangle.w"
+#line 641 "ctangle.w"
case'=':case'>':C_putc(cur_char);C_putc(' ');
out_state= normal;break;
@@ -869,7 +863,7 @@ default:C_putc(cur_char);out_state= normal;break;
}
/*:55*//*64:*/
-#line 793 "ctangle.w"
+#line 787 "ctangle.w"
static eight_bits
skip_ahead(void)
@@ -887,7 +881,7 @@ if(c!=ignore||*(loc-1)=='>')return c;
}
/*:64*//*67:*/
-#line 832 "ctangle.w"
+#line 826 "ctangle.w"
static boolean skip_comment(
boolean is_long_comment)
@@ -921,7 +915,7 @@ else loc++;
}
/*:67*//*69:*/
-#line 873 "ctangle.w"
+#line 867 "ctangle.w"
static eight_bits
get_next(void)
@@ -935,7 +929,7 @@ if(get_line()==false)return new_section;
else if(print_where&&!no_where){
print_where= false;
/*85:*/
-#line 1219 "ctangle.w"
+#line 1213 "ctangle.w"
{
eight_bits a;
@@ -952,7 +946,7 @@ store_id(a);
}
/*:85*/
-#line 885 "ctangle.w"
+#line 879 "ctangle.w"
}
else return(eight_bits)'\n';
@@ -965,7 +959,7 @@ else continue;
}
loc++;
if(xisdigit(c)||c=='.')/*73:*/
-#line 957 "ctangle.w"
+#line 951 "ctangle.w"
{
boolean hex_flag= false;
id_first= loc-1;
@@ -999,13 +993,13 @@ return constant;
}
/*:73*/
-#line 896 "ctangle.w"
+#line 890 "ctangle.w"
else if(c=='\''||c=='"'
||((c=='L'||c=='u'||c=='U')&&(*loc=='\''||*loc=='"'))
||((c=='u'&&*loc=='8')&&(*(loc+1)=='\''||*(loc+1)=='"')))
/*74:*/
-#line 994 "ctangle.w"
+#line 988 "ctangle.w"
{
char delim= (char)c;
id_first= section_text+1;
@@ -1049,11 +1043,11 @@ return string;
}
/*:74*/
-#line 900 "ctangle.w"
+#line 894 "ctangle.w"
else if(isalpha((int)c)||isxalpha(c)||ishigh(c))
/*72:*/
-#line 948 "ctangle.w"
+#line 942 "ctangle.w"
{
id_first= --loc;
do
@@ -1064,10 +1058,10 @@ id_loc= loc;return identifier;
}
/*:72*/
-#line 902 "ctangle.w"
+#line 896 "ctangle.w"
else if(c=='@')/*75:*/
-#line 1039 "ctangle.w"
+#line 1033 "ctangle.w"
switch(c= ccode[(eight_bits)*loc++]){
case ignore:continue;
@@ -1082,11 +1076,11 @@ continue;
case section_name:
cur_section_name_char= *(loc-1);
/*77:*/
-#line 1084 "ctangle.w"
+#line 1078 "ctangle.w"
{
char*k= section_text;
/*79:*/
-#line 1106 "ctangle.w"
+#line 1100 "ctangle.w"
while(true){
if(loc> limit&&get_line()==false){
@@ -1096,7 +1090,7 @@ loc= buffer+1;break;
}
c= (eight_bits)*loc;
/*80:*/
-#line 1129 "ctangle.w"
+#line 1123 "ctangle.w"
if(c=='@'){
c= (eight_bits)*(loc+1);
@@ -1115,7 +1109,7 @@ err_print("! Nesting of section names not allowed");break;
}
/*:80*/
-#line 1114 "ctangle.w"
+#line 1108 "ctangle.w"
loc++;if(k<section_text_end)k++;
if(xisspace(c)){
@@ -1132,7 +1126,7 @@ printf("...");mark_harmless();
if(*k==' '&&k> section_text)k--;
/*:79*/
-#line 1086 "ctangle.w"
+#line 1080 "ctangle.w"
if(k-section_text> 3&&strncmp(k-2,"...",3)==0)
cur_section_name= section_lookup(section_text+1,k-3,true);
@@ -1155,16 +1149,16 @@ else overflow("output files");
}
/*:47*/
-#line 1094 "ctangle.w"
+#line 1088 "ctangle.w"
return section_name;
}
/*:77*/
-#line 1052 "ctangle.w"
+#line 1046 "ctangle.w"
case string:/*81:*/
-#line 1151 "ctangle.w"
+#line 1145 "ctangle.w"
id_first= loc++;*(limit+1)= '@';*(limit+2)= '>';
while(*loc!='@'||*(loc+1)!='>')loc++;
@@ -1174,10 +1168,10 @@ id_loc= loc;loc+= 2;
return string;
/*:81*/
-#line 1053 "ctangle.w"
+#line 1047 "ctangle.w"
case ord:/*76:*/
-#line 1064 "ctangle.w"
+#line 1058 "ctangle.w"
id_first= loc;
if(*loc=='\\')
@@ -1199,13 +1193,13 @@ loc++;
return ord;
/*:76*/
-#line 1054 "ctangle.w"
+#line 1048 "ctangle.w"
default:return c;
}
/*:75*/
-#line 903 "ctangle.w"
+#line 897 "ctangle.w"
else if(xisspace(c)){
if(!preprocessing||loc> limit)continue;
@@ -1215,7 +1209,7 @@ else return(eight_bits)' ';
}
else if(c=='#'&&loc==buffer+1)preprocessing= true;
mistake:/*71:*/
-#line 925 "ctangle.w"
+#line 919 "ctangle.w"
switch(c){
case'+':if(*loc=='+')compress(plus_plus);break;
@@ -1240,14 +1234,14 @@ case'!':if(*loc=='=')compress(non_eq);break;
}
/*:71*/
-#line 911 "ctangle.w"
+#line 905 "ctangle.w"
return c;
}
}
/*:69*//*83:*/
-#line 1187 "ctangle.w"
+#line 1181 "ctangle.w"
static void
scan_repl(
@@ -1255,7 +1249,7 @@ eight_bits t)
{
sixteen_bits a;
if(t==section_name)/*85:*/
-#line 1219 "ctangle.w"
+#line 1213 "ctangle.w"
{
eight_bits a;
@@ -1272,11 +1266,11 @@ store_id(a);
}
/*:85*/
-#line 1193 "ctangle.w"
+#line 1187 "ctangle.w"
while(true)switch(a= get_next()){
/*86:*/
-#line 1234 "ctangle.w"
+#line 1228 "ctangle.w"
case identifier:store_id(a);
if(*buffer=='#'&&(
@@ -1289,7 +1283,7 @@ break;
case section_name:if(t!=section_name)goto done;
else{
/*87:*/
-#line 1275 "ctangle.w"
+#line 1269 "ctangle.w"
{
char*try_loc= loc;
while(*try_loc==' '&&try_loc<limit)try_loc++;
@@ -1302,13 +1296,13 @@ if(*try_loc=='=')err_print("! Missing `@ ' before a named section");
}
/*:87*/
-#line 1245 "ctangle.w"
+#line 1239 "ctangle.w"
a= cur_section_name-name_dir;
app_repl((a/0400)+0250);
app_repl(a%0400);
/*85:*/
-#line 1219 "ctangle.w"
+#line 1213 "ctangle.w"
{
eight_bits a;
@@ -1325,7 +1319,7 @@ store_id(a);
}
/*:85*/
-#line 1249 "ctangle.w"
+#line 1243 "ctangle.w"
}
break;
@@ -1337,7 +1331,7 @@ a= output_defs_flag;
app_repl((a/0400)+0200);
app_repl(a%0400);
/*85:*/
-#line 1219 "ctangle.w"
+#line 1213 "ctangle.w"
{
eight_bits a;
@@ -1354,13 +1348,13 @@ store_id(a);
}
/*:85*/
-#line 1259 "ctangle.w"
+#line 1253 "ctangle.w"
}
break;
case constant:case string:
/*88:*/
-#line 1292 "ctangle.w"
+#line 1286 "ctangle.w"
app_repl(a);
while(id_first<id_loc){
@@ -1376,12 +1370,12 @@ app_repl(*id_first++);
app_repl(a);
/*:88*/
-#line 1263 "ctangle.w"
+#line 1257 "ctangle.w"
break;
case ord:
/*89:*/
-#line 1310 "ctangle.w"
+#line 1304 "ctangle.w"
{
int c= (int)((eight_bits)*id_first);
if(c=='\\'){
@@ -1431,7 +1425,7 @@ app_repl(constant);
}
/*:89*/
-#line 1266 "ctangle.w"
+#line 1260 "ctangle.w"
break;
case definition:case format_code:case begin_C:if(t!=section_name)goto done;
@@ -1442,7 +1436,7 @@ err_print("! @d, @f and @c are ignored in C text");continue;
case new_section:goto done;
/*:86*/
-#line 1198 "ctangle.w"
+#line 1192 "ctangle.w"
case')':app_repl(a);
if(t==macro)app_repl(' ');
@@ -1455,7 +1449,7 @@ cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr;
}
/*:83*//*90:*/
-#line 1368 "ctangle.w"
+#line 1362 "ctangle.w"
static void
scan_section(void)
@@ -1470,7 +1464,7 @@ printf("*%d",(int)section_count);update_terminal();
next_control= ignore;
while(true){
/*92:*/
-#line 1409 "ctangle.w"
+#line 1403 "ctangle.w"
while(next_control<definition)
@@ -1479,11 +1473,11 @@ loc-= 2;next_control= get_next();
}
/*:92*/
-#line 1382 "ctangle.w"
+#line 1376 "ctangle.w"
if(next_control==definition){
/*93:*/
-#line 1416 "ctangle.w"
+#line 1410 "ctangle.w"
while((next_control= get_next())=='\n');
if(next_control!=identifier){
@@ -1499,7 +1493,7 @@ scan_repl(macro);
cur_text->text_link= macro;
/*:93*/
-#line 1384 "ctangle.w"
+#line 1378 "ctangle.w"
continue;
}
@@ -1509,14 +1503,14 @@ p= name_dir;break;
if(next_control==section_name){
p= cur_section_name;
/*94:*/
-#line 1438 "ctangle.w"
+#line 1432 "ctangle.w"
while((next_control= get_next())=='+');
if(next_control!='='&&next_control!=eq_eq)
continue;
/*:94*/
-#line 1392 "ctangle.w"
+#line 1386 "ctangle.w"
break;
}
@@ -1524,20 +1518,20 @@ return;
}
no_where= print_where= false;
/*95:*/
-#line 1443 "ctangle.w"
+#line 1437 "ctangle.w"
/*96:*/
-#line 1448 "ctangle.w"
+#line 1442 "ctangle.w"
store_two_bytes((sixteen_bits)(0150000+section_count));
/*:96*/
-#line 1444 "ctangle.w"
+#line 1438 "ctangle.w"
scan_repl(section_name);
/*97:*/
-#line 1452 "ctangle.w"
+#line 1446 "ctangle.w"
if(p==name_dir||p==NULL){
last_unnamed->text_link= cur_text-text_info;last_unnamed= cur_text;
@@ -1554,16 +1548,16 @@ cur_text->text_link= section_flag;
/*:97*/
-#line 1446 "ctangle.w"
+#line 1440 "ctangle.w"
/*:95*/
-#line 1398 "ctangle.w"
+#line 1392 "ctangle.w"
}
/*:90*//*98:*/
-#line 1467 "ctangle.w"
+#line 1461 "ctangle.w"
static void
phase_one(void){
@@ -1576,7 +1570,7 @@ check_complete();
}
/*:98*//*100:*/
-#line 1483 "ctangle.w"
+#line 1477 "ctangle.w"
static void
skip_limbo(void)
@@ -1590,7 +1584,7 @@ char c= *loc++;
switch(ccode[(eight_bits)c]){
case new_section:return;
case translit_code:/*102:*/
-#line 1513 "ctangle.w"
+#line 1507 "ctangle.w"
while(xisspace(*loc)&&loc<limit)loc++;
loc+= 3;
@@ -1615,7 +1609,7 @@ translit[i-0200][loc-beg]= '\0';
}
/*:102*/
-#line 1495 "ctangle.w"
+#line 1489 "ctangle.w"
break;
case format_code:case'@':break;
case control_text:if(c=='q'||c=='Q'){
@@ -1633,7 +1627,7 @@ default:err_print("! Double @ should be used in limbo");
}
/*:100*//*103:*/
-#line 1539 "ctangle.w"
+#line 1533 "ctangle.w"
void
print_stats(void){
diff --git a/Build/source/texk/web2c/cwebdir/ctangle.w b/Build/source/texk/web2c/cwebdir/ctangle.w
index dbdf94ec21d..304b704538e 100644
--- a/Build/source/texk/web2c/cwebdir/ctangle.w
+++ b/Build/source/texk/web2c/cwebdir/ctangle.w
@@ -519,24 +519,18 @@ phase_two (void) {
@.No program text...@>
}
else {
- if (cur_out_file==end_output_files) {
- if (show_progress) {
- printf("\nWriting the output file (%s):",C_file_name);
- update_terminal();
- }
- }
- else {
- if (show_progress) {
- fputs("\nWriting the output files:",stdout);
+ if (show_progress) {
+ printf(cur_out_file==end_output_files ? @|
+ "\nWriting the output file (%s):" : @|
+ "\nWriting the output files: (%s)",C_file_name);
@.Writing the output...@>
- printf(" (%s)",C_file_name);
- update_terminal();
- }
- if (text_info->text_link==macro) goto writeloop;
+ update_terminal();
}
- while (stack_ptr>stack) get_output();
- flush_buffer();
-writeloop: @<Write all the named output files@>@;
+ if (text_info->text_link!=macro) {
+ while (stack_ptr>stack) get_output();
+ flush_buffer();
+ }
+ @<Write all the named output files@>@;
if (show_happiness) {
if (show_progress) new_line();
fputs("Done.",stdout);