summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Scherer <andreas_tex@freenet.de>2020-04-11 15:57:15 +0000
committerAndreas Scherer <andreas_tex@freenet.de>2020-04-11 15:57:15 +0000
commitd18e7b8da9786016b16a8024e05eb7f0925823c5 (patch)
treeb5ea52b1a529e94c78584cbfca92a61b4a4a9ad1
parent2b236210d6f17c81e3c1adfcd4a3864bfd4a9d2c (diff)
Externalize common variables.
Four variables from 'common.h' are made 'extern' by moving them to 'common.w' (via 'comm-w2c.ch' and 'comm-w2c.h'). git-svn-id: svn://tug.org/texlive/trunk@54649 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/ChangeLog5
-rw-r--r--Build/source/texk/web2c/ctangleboot.cin10
-rw-r--r--Build/source/texk/web2c/cwebboot.cin263
-rw-r--r--Build/source/texk/web2c/cwebdir/ChangeLog4
-rw-r--r--Build/source/texk/web2c/cwebdir/comm-w2c.ch12
-rw-r--r--Build/source/texk/web2c/cwebdir/comm-w2c.h8
6 files changed, 166 insertions, 136 deletions
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog
index eb2ba2b2351..caf6db8c6a9 100644
--- a/Build/source/texk/web2c/ChangeLog
+++ b/Build/source/texk/web2c/ChangeLog
@@ -1,3 +1,8 @@
+2020-04-11 Andreas Scherer <https://ascherer.github.io>
+
+ * ctangleboot.cin,
+ * cwebboot.cin: Rearrange 'common variables'.
+
2020-03-30 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 83f928c8e12..2f5eb33da90 100644
--- a/Build/source/texk/web2c/ctangleboot.cin
+++ b/Build/source/texk/web2c/ctangleboot.cin
@@ -176,10 +176,10 @@ extern int phase;
/*:5*//*7:*/
#line 79 "cwebdir/comm-w2c.h"
-char section_text[longest_name+1];
-char*section_text_end= section_text+longest_name;
-char*id_first;
-char*id_loc;
+extern char section_text[];
+extern char*section_text_end;
+extern char*id_first;
+extern char*id_loc;
/*:7*//*8:*/
#line 94 "cwebdir/comm-w2c.h"
@@ -832,7 +832,7 @@ if((C_file= fopen(output_file_name,"r"))!=NULL){
#line 779 "cwebdir/ctang-w2c.ch"
char x[BUFSIZ],y[BUFSIZ];
-int x_size,y_size,comparison;
+int x_size,y_size,comparison= false;
if((check_file= fopen(check_file_name,"r"))==NULL)
fatal(_("! Cannot open output file "),check_file_name);
diff --git a/Build/source/texk/web2c/cwebboot.cin b/Build/source/texk/web2c/cwebboot.cin
index 602dfaf071a..069fa1c3a34 100644
--- a/Build/source/texk/web2c/cwebboot.cin
+++ b/Build/source/texk/web2c/cwebboot.cin
@@ -17,21 +17,21 @@
#include <stdlib.h>
/*:22*//*81:*/
-#line 1120 "cwebdir/comm-w2c.ch"
+#line 1132 "cwebdir/comm-w2c.ch"
#include <string.h>
#line 1417 "cwebdir/common.w"
-#line 1127 "cwebdir/comm-w2c.ch"
+#line 1139 "cwebdir/comm-w2c.ch"
/*:81*//*85:*/
-#line 1166 "cwebdir/comm-w2c.ch"
+#line 1178 "cwebdir/comm-w2c.ch"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
/*:85*//*88:*/
-#line 1208 "cwebdir/comm-w2c.ch"
+#line 1220 "cwebdir/comm-w2c.ch"
#ifndef HAVE_GETTEXT
#define HAVE_GETTEXT 0
@@ -48,7 +48,7 @@
#endif
/*:88*//*90:*/
-#line 1298 "cwebdir/comm-w2c.ch"
+#line 1310 "cwebdir/comm-w2c.ch"
typedef bool boolean;
#define HAVE_BOOLEAN
@@ -192,7 +192,16 @@ err_print(_("! Include file name too long") ) ;goto restart;} \
int program;
#line 76 "cwebdir/common.w"
-/*:2*//*7:*/
+/*:2*//*6:*/
+#line 90 "cwebdir/comm-w2c.ch"
+
+char section_text[longest_name+1];
+char*section_text_end= section_text+longest_name;
+char*id_first;
+char*id_loc;
+#line 138 "cwebdir/common.w"
+
+/*:6*//*7:*/
#line 159 "cwebdir/common.w"
char buffer[long_buf_size];
@@ -220,7 +229,7 @@ boolean web_file_open= 0;
/*:10*//*20:*/
#line 418 "cwebdir/common.w"
-#line 264 "cwebdir/comm-w2c.ch"
+#line 276 "cwebdir/comm-w2c.ch"
typedef uint8_t eight_bits;
typedef uint16_t sixteen_bits;
#line 420 "cwebdir/common.w"
@@ -250,7 +259,7 @@ char Ilk;
}dummy;
/*:40*//*55:*/
-#line 703 "cwebdir/comm-w2c.ch"
+#line 715 "cwebdir/comm-w2c.ch"
void*equiv_or_xref;
#line 1064 "cwebdir/common.w"
@@ -292,10 +301,10 @@ char**argv;
char C_file_name[max_file_name_length];
char tex_file_name[max_file_name_length];
char idx_file_name[max_file_name_length];
-#line 864 "cwebdir/comm-w2c.ch"
+#line 876 "cwebdir/comm-w2c.ch"
char scn_file_name[max_file_name_length];
char check_file_name[max_file_name_length];
-#line 871 "cwebdir/comm-w2c.ch"
+#line 883 "cwebdir/comm-w2c.ch"
boolean flags[128];
const char*use_language= "";
#line 1228 "cwebdir/common.w"
@@ -306,15 +315,15 @@ const char*use_language= "";
FILE*C_file;
FILE*tex_file;
FILE*idx_file;
-#line 1053 "cwebdir/comm-w2c.ch"
+#line 1065 "cwebdir/comm-w2c.ch"
FILE*scn_file;
FILE*check_file;
-#line 1060 "cwebdir/comm-w2c.ch"
+#line 1072 "cwebdir/comm-w2c.ch"
FILE*active_file;
char*found_filename;
#line 1376 "cwebdir/common.w"
-#line 1077 "cwebdir/comm-w2c.ch"
+#line 1089 "cwebdir/comm-w2c.ch"
/*:77*/
#line 61 "cwebdir/common.w"
@@ -329,7 +338,7 @@ char change_buffer[buf_size];
char*change_limit;
/*:11*//*86:*/
-#line 1182 "cwebdir/comm-w2c.ch"
+#line 1194 "cwebdir/comm-w2c.ch"
char cb_banner[max_banner];
string texmf_locale;
@@ -344,51 +353,51 @@ char separators[]= SEPARATORS;
/*33:*/
#line 650 "cwebdir/common.w"
-#line 432 "cwebdir/comm-w2c.ch"
+#line 444 "cwebdir/comm-w2c.ch"
extern boolean names_match(name_pointer,const char*,size_t,eight_bits);
#line 652 "cwebdir/common.w"
/*:33*//*38:*/
#line 703 "cwebdir/common.w"
-#line 462 "cwebdir/comm-w2c.ch"
+#line 474 "cwebdir/comm-w2c.ch"
extern void init_p(name_pointer,eight_bits);
#line 705 "cwebdir/common.w"
/*:38*//*46:*/
#line 852 "cwebdir/common.w"
-#line 542 "cwebdir/comm-w2c.ch"
+#line 554 "cwebdir/comm-w2c.ch"
extern void init_node(name_pointer);
#line 854 "cwebdir/common.w"
/*:46*//*53:*/
#line 1017 "cwebdir/common.w"
-#line 668 "cwebdir/comm-w2c.ch"
+#line 680 "cwebdir/comm-w2c.ch"
static int section_name_cmp(char**,int,name_pointer);
#line 1019 "cwebdir/common.w"
/*:53*//*57:*/
#line 1092 "cwebdir/common.w"
-#line 710 "cwebdir/comm-w2c.ch"
+#line 722 "cwebdir/comm-w2c.ch"
extern void err_print(const char*);
#line 1094 "cwebdir/common.w"
/*:57*//*60:*/
#line 1140 "cwebdir/common.w"
-#line 737 "cwebdir/comm-w2c.ch"
+#line 749 "cwebdir/comm-w2c.ch"
extern int wrap_up(void);
extern void print_stats(void);
#line 1143 "cwebdir/common.w"
-#line 748 "cwebdir/comm-w2c.ch"
+#line 760 "cwebdir/comm-w2c.ch"
/*:60*//*63:*/
#line 1173 "cwebdir/common.w"
-#line 811 "cwebdir/comm-w2c.ch"
+#line 823 "cwebdir/comm-w2c.ch"
extern void fatal(const char*,const char*);
extern void overflow(const char*);
#line 1175 "cwebdir/common.w"
@@ -396,12 +405,12 @@ extern void overflow(const char*);
/*:63*//*69:*/
#line 1251 "cwebdir/common.w"
-#line 893 "cwebdir/comm-w2c.ch"
+#line 905 "cwebdir/comm-w2c.ch"
static void scan_args(void);
#line 1253 "cwebdir/common.w"
/*:69*//*83:*/
-#line 1142 "cwebdir/comm-w2c.ch"
+#line 1154 "cwebdir/comm-w2c.ch"
boolean get_line(void);
name_pointer id_lookup(const char*,const char*,char);
@@ -414,7 +423,7 @@ void reset_input(void);
void sprint_section_name(char*,name_pointer);
/*:83*//*84:*/
-#line 1155 "cwebdir/comm-w2c.ch"
+#line 1167 "cwebdir/comm-w2c.ch"
static boolean input_ln(FILE*);
static int web_strcmp(char*,int,char*,int);
@@ -424,7 +433,7 @@ static void check_change(void);
static void prime_the_change_buffer(void);
/*:84*//*98:*/
-#line 1399 "cwebdir/comm-w2c.ch"
+#line 1411 "cwebdir/comm-w2c.ch"
static void cb_usage(const_string str);
static void cb_usagehelp(const_string*message,const_string bug_email);
@@ -464,7 +473,7 @@ root= NULL;
#line 72 "cwebdir/comm-w2c.ch"
/*91:*/
-#line 1313 "cwebdir/comm-w2c.ch"
+#line 1325 "cwebdir/comm-w2c.ch"
kpse_set_program_name(argv[0],"cweb");
@@ -472,7 +481,7 @@ kpse_set_program_name(argv[0],"cweb");
#line 73 "cwebdir/comm-w2c.ch"
/*89:*/
-#line 1264 "cwebdir/comm-w2c.ch"
+#line 1276 "cwebdir/comm-w2c.ch"
setlocale(LC_MESSAGES,setlocale(LC_CTYPE,""));
texmf_locale= kpse_var_expand("${TEXMFLOCALEDIR}");
@@ -493,7 +502,7 @@ textdomain("cweb");
/*68:*/
#line 1233 "cwebdir/common.w"
-#line 878 "cwebdir/comm-w2c.ch"
+#line 890 "cwebdir/comm-w2c.ch"
temporary_output= 1;
#line 1235 "cwebdir/common.w"
@@ -501,7 +510,7 @@ temporary_output= 1;
#line 75 "cwebdir/comm-w2c.ch"
/*78:*/
-#line 1077 "cwebdir/comm-w2c.ch"
+#line 1089 "cwebdir/comm-w2c.ch"
scan_args();
if(program==ctangle){
@@ -536,7 +545,7 @@ fatal(_("! Cannot open output file "),check_file_name);
/*:4*//*9:*/
#line 172 "cwebdir/common.w"
-#line 103 "cwebdir/comm-w2c.ch"
+#line 115 "cwebdir/comm-w2c.ch"
static boolean input_ln(
FILE*fp)
#line 175 "cwebdir/common.w"
@@ -546,12 +555,12 @@ register char*k;
if(feof(fp))return(0);
limit= k= buffer;
while(k<=buffer_end&&(c= getc(fp))!=EOF&&c!='\n')
-#line 110 "cwebdir/comm-w2c.ch"
+#line 122 "cwebdir/comm-w2c.ch"
if((*(k++)= c)!=' '&&c!='\r')limit= k;
#line 182 "cwebdir/common.w"
if(k> buffer_end)
if((c= getc(fp))!=EOF&&c!='\n'){
-#line 116 "cwebdir/comm-w2c.ch"
+#line 128 "cwebdir/comm-w2c.ch"
ungetc(c,fp);loc= buffer;err_print(_("! Input line too long"));
#line 185 "cwebdir/common.w"
@@ -564,7 +573,7 @@ return(1);
/*:9*//*12:*/
#line 251 "cwebdir/common.w"
-#line 142 "cwebdir/comm-w2c.ch"
+#line 154 "cwebdir/comm-w2c.ch"
static void
prime_the_change_buffer(void)
#line 254 "cwebdir/common.w"
@@ -578,13 +587,13 @@ change_line++;
if(!input_ln(change_file))return;
if(limit<buffer+2)continue;
if(buffer[0]!='@')continue;
-#line 149 "cwebdir/comm-w2c.ch"
+#line 161 "cwebdir/comm-w2c.ch"
if(xisupper(buffer[1]))buffer[1]= tolower((eight_bits)buffer[1]);
#line 272 "cwebdir/common.w"
if(buffer[1]=='x')break;
if(buffer[1]=='y'||buffer[1]=='z'||buffer[1]=='i'){
loc= buffer+2;
-#line 155 "cwebdir/comm-w2c.ch"
+#line 167 "cwebdir/comm-w2c.ch"
err_print(_("! Missing @x in change file"));
#line 276 "cwebdir/common.w"
@@ -600,7 +609,7 @@ err_print(_("! Missing @x in change file"));
do{
change_line++;
if(!input_ln(change_file)){
-#line 161 "cwebdir/comm-w2c.ch"
+#line 173 "cwebdir/comm-w2c.ch"
err_print(_("! Change file ended after @x"));
#line 287 "cwebdir/common.w"
@@ -615,7 +624,7 @@ return;
#line 292 "cwebdir/common.w"
{
-#line 168 "cwebdir/comm-w2c.ch"
+#line 180 "cwebdir/comm-w2c.ch"
change_limit= change_buffer+(ptrdiff_t)(limit-buffer);
strncpy(change_buffer,buffer,(size_t)(limit-buffer+1));
#line 296 "cwebdir/common.w"
@@ -629,7 +638,7 @@ strncpy(change_buffer,buffer,(size_t)(limit-buffer+1));
/*:12*//*16:*/
#line 320 "cwebdir/common.w"
-#line 176 "cwebdir/comm-w2c.ch"
+#line 188 "cwebdir/comm-w2c.ch"
static void
check_change(void)
#line 323 "cwebdir/common.w"
@@ -644,7 +653,7 @@ if(!change_pending)changed_section[section_count]= 1;
while(1){
changing= 1;print_where= 1;change_line++;
if(!input_ln(change_file)){
-#line 183 "cwebdir/comm-w2c.ch"
+#line 195 "cwebdir/comm-w2c.ch"
err_print(_("! Change file ended before @y"));
#line 335 "cwebdir/common.w"
@@ -652,14 +661,14 @@ change_limit= change_buffer;changing= 0;
return;
}
if(limit> buffer+1&&buffer[0]=='@'){
-#line 189 "cwebdir/comm-w2c.ch"
+#line 201 "cwebdir/comm-w2c.ch"
char xyz_code= xisupper(buffer[1])?tolower((eight_bits)buffer[1]):buffer[1];
#line 341 "cwebdir/common.w"
/*17:*/
#line 358 "cwebdir/common.w"
if(xyz_code=='x'||xyz_code=='z'){
-#line 201 "cwebdir/comm-w2c.ch"
+#line 213 "cwebdir/comm-w2c.ch"
loc= buffer+2;err_print(_("! Where is the matching @y?"));
#line 361 "cwebdir/common.w"
@@ -668,7 +677,7 @@ else if(xyz_code=='y'){
if(n> 0){
loc= buffer+2;
printf("\n! Hmm... %d ",n);
-#line 207 "cwebdir/comm-w2c.ch"
+#line 219 "cwebdir/comm-w2c.ch"
err_print(_("of the preceding lines failed to match"));
#line 368 "cwebdir/common.w"
@@ -685,7 +694,7 @@ return;
#line 292 "cwebdir/common.w"
{
-#line 168 "cwebdir/comm-w2c.ch"
+#line 180 "cwebdir/comm-w2c.ch"
change_limit= change_buffer+(ptrdiff_t)(limit-buffer);
strncpy(change_buffer,buffer,(size_t)(limit-buffer+1));
#line 296 "cwebdir/common.w"
@@ -697,7 +706,7 @@ strncpy(change_buffer,buffer,(size_t)(limit-buffer+1));
changing= 0;cur_line++;
while(!input_ln(cur_file)){
if(include_depth==0){
-#line 195 "cwebdir/comm-w2c.ch"
+#line 207 "cwebdir/comm-w2c.ch"
err_print(_("! CWEB file ended during a change"));
#line 349 "cwebdir/common.w"
@@ -712,7 +721,7 @@ if(lines_dont_match)n++;
/*:16*//*18:*/
#line 378 "cwebdir/common.w"
-#line 214 "cwebdir/comm-w2c.ch"
+#line 226 "cwebdir/comm-w2c.ch"
void
reset_input(void)
#line 381 "cwebdir/common.w"
@@ -721,7 +730,7 @@ limit= buffer;loc= buffer+1;buffer[0]= ' ';
/*19:*/
#line 393 "cwebdir/common.w"
-#line 225 "cwebdir/comm-w2c.ch"
+#line 237 "cwebdir/comm-w2c.ch"
if((found_filename= kpse_find_cweb(web_file_name))==NULL||
(web_file= fopen(found_filename,"r"))==NULL){
fatal(_("! Cannot open input file "),web_file_name);
@@ -736,7 +745,7 @@ free(found_filename);
web_file_open= 1;
-#line 241 "cwebdir/comm-w2c.ch"
+#line 253 "cwebdir/comm-w2c.ch"
if((found_filename= kpse_find_cweb(change_file_name))==NULL||
(change_file= fopen(found_filename,"r"))==NULL){
fatal(_("! Cannot open change file "),change_file_name);
@@ -761,7 +770,7 @@ limit= buffer;loc= buffer+1;buffer[0]= ' ';input_has_ended= 0;
/*:18*//*21:*/
#line 426 "cwebdir/common.w"
-#line 271 "cwebdir/comm-w2c.ch"
+#line 283 "cwebdir/comm-w2c.ch"
boolean get_line(void)
#line 428 "cwebdir/common.w"
{
@@ -772,7 +781,7 @@ if(changing&&include_depth==change_depth)
{
change_line++;
if(!input_ln(change_file)){
-#line 370 "cwebdir/comm-w2c.ch"
+#line 382 "cwebdir/comm-w2c.ch"
err_print(_("! Change file ended without @z"));
#line 541 "cwebdir/common.w"
@@ -787,12 +796,12 @@ changed_section[section_count]= 1;change_pending= 0;
}
*limit= ' ';
if(buffer[0]=='@'){
-#line 376 "cwebdir/comm-w2c.ch"
+#line 388 "cwebdir/comm-w2c.ch"
if(xisupper(buffer[1]))buffer[1]= tolower((eight_bits)buffer[1]);
#line 554 "cwebdir/common.w"
if(buffer[1]=='x'||buffer[1]=='y'){
loc= buffer+2;
-#line 382 "cwebdir/comm-w2c.ch"
+#line 394 "cwebdir/comm-w2c.ch"
err_print(_("! Where is the matching @z?"));
#line 557 "cwebdir/common.w"
@@ -838,14 +847,14 @@ if(buffer[0]=='@'&&(buffer[1]=='i'||buffer[1]=='I')){
loc= buffer+2;*limit= '"';
while(*loc==' '||*loc=='\t')loc++;
if(loc>=limit){
-#line 277 "cwebdir/comm-w2c.ch"
+#line 289 "cwebdir/comm-w2c.ch"
err_print(_("! Include file name not given"));
#line 443 "cwebdir/common.w"
goto restart;
}
if(include_depth>=max_include_depth-1){
-#line 283 "cwebdir/comm-w2c.ch"
+#line 295 "cwebdir/comm-w2c.ch"
err_print(_("! Too many nested includes"));
#line 448 "cwebdir/common.w"
@@ -855,7 +864,7 @@ include_depth++;
/*23:*/
#line 474 "cwebdir/common.w"
{
-#line 319 "cwebdir/comm-w2c.ch"
+#line 331 "cwebdir/comm-w2c.ch"
char*cur_file_name_end= cur_file_name+max_file_name_length-1;
char*k= cur_file_name;
#line 479 "cwebdir/common.w"
@@ -869,7 +878,7 @@ while(*loc!=' '&&*loc!='\t'&&*loc!='"'&&k<=cur_file_name_end)*k++= *loc++;
if(k> cur_file_name_end)too_long();
*k= '\0';
-#line 326 "cwebdir/comm-w2c.ch"
+#line 338 "cwebdir/comm-w2c.ch"
if((found_filename= kpse_find_cweb(cur_file_name))!=NULL&&
(cur_file= fopen(found_filename,"r"))!=NULL){
@@ -883,7 +892,7 @@ free(found_filename);
cur_line= 0;print_where= 1;
goto restart;
}
-#line 364 "cwebdir/comm-w2c.ch"
+#line 376 "cwebdir/comm-w2c.ch"
include_depth--;err_print(_("! Cannot open include file"));goto restart;
#line 518 "cwebdir/common.w"
}
@@ -895,11 +904,11 @@ include_depth--;err_print(_("! Cannot open include file"));goto restart;
return 1;
}
-#line 298 "cwebdir/comm-w2c.ch"
+#line 310 "cwebdir/comm-w2c.ch"
/*:21*//*26:*/
#line 569 "cwebdir/common.w"
-#line 392 "cwebdir/comm-w2c.ch"
+#line 404 "cwebdir/comm-w2c.ch"
void
check_complete(void){
if(change_limit!=change_buffer){
@@ -907,7 +916,7 @@ strncpy(buffer,change_buffer,(size_t)(change_limit-change_buffer+1));
limit= buffer+(ptrdiff_t)(change_limit-change_buffer);
#line 575 "cwebdir/common.w"
changing= 1;change_depth= include_depth;loc= buffer;
-#line 402 "cwebdir/comm-w2c.ch"
+#line 414 "cwebdir/comm-w2c.ch"
err_print(_("! Change file entry did not match"));
#line 577 "cwebdir/common.w"
@@ -917,7 +926,7 @@ err_print(_("! Change file entry did not match"));
/*:26*//*35:*/
#line 660 "cwebdir/common.w"
-#line 444 "cwebdir/comm-w2c.ch"
+#line 456 "cwebdir/comm-w2c.ch"
name_pointer
id_lookup(
const char*first,
@@ -930,7 +939,7 @@ int h;
int l;
name_pointer p;
if(last==NULL)for(last= first;*last!='\0';last++);
-#line 456 "cwebdir/comm-w2c.ch"
+#line 468 "cwebdir/comm-w2c.ch"
l= (int)(last-first);
#line 673 "cwebdir/common.w"
/*36:*/
@@ -959,13 +968,13 @@ p->link= hash[h];hash[h]= p;
if(p==name_ptr)/*39:*/
#line 706 "cwebdir/common.w"
{
-#line 469 "cwebdir/comm-w2c.ch"
+#line 481 "cwebdir/comm-w2c.ch"
if(byte_ptr+l> byte_mem_end)overflow(_("byte memory"));
if(name_ptr>=name_dir_end)overflow(_("name"));
#line 709 "cwebdir/common.w"
strncpy(byte_ptr,first,l);
(++name_ptr)->byte_start= byte_ptr+= l;
-#line 476 "cwebdir/comm-w2c.ch"
+#line 488 "cwebdir/comm-w2c.ch"
init_p(p,t);
#line 712 "cwebdir/common.w"
}
@@ -979,7 +988,7 @@ return(p);
/*:35*//*42:*/
#line 764 "cwebdir/common.w"
-#line 484 "cwebdir/comm-w2c.ch"
+#line 496 "cwebdir/comm-w2c.ch"
void
print_section_name(
name_pointer p)
@@ -990,7 +999,7 @@ name_pointer q= p+1;
while(p!=name_dir){
ss= (p+1)->byte_start-1;
if(*ss==' '&&ss>=s){
-#line 494 "cwebdir/comm-w2c.ch"
+#line 506 "cwebdir/comm-w2c.ch"
term_write(s,(size_t)(ss-s));p= q->link;q= p;
}else{
term_write(s,(size_t)(ss+1-s));p= name_dir;q= NULL;
@@ -1004,7 +1013,7 @@ if(q)term_write("...",3);
/*:42*//*43:*/
#line 783 "cwebdir/common.w"
-#line 505 "cwebdir/comm-w2c.ch"
+#line 517 "cwebdir/comm-w2c.ch"
void
sprint_section_name(
char*dest,
@@ -1020,7 +1029,7 @@ p= q->link;q= p;
}else{
ss++;p= name_dir;
}
-#line 514 "cwebdir/comm-w2c.ch"
+#line 526 "cwebdir/comm-w2c.ch"
strncpy(dest,s,(size_t)(ss-s)),dest+= ss-s;
#line 799 "cwebdir/common.w"
s= p->byte_start;
@@ -1031,7 +1040,7 @@ s= p->byte_start;
/*:43*//*44:*/
#line 804 "cwebdir/common.w"
-#line 522 "cwebdir/comm-w2c.ch"
+#line 534 "cwebdir/comm-w2c.ch"
void
print_prefix_name(
name_pointer p)
@@ -1046,7 +1055,7 @@ if(s+l<(p+1)->byte_start)term_write("...",3);
/*:44*//*45:*/
#line 825 "cwebdir/common.w"
-#line 532 "cwebdir/comm-w2c.ch"
+#line 544 "cwebdir/comm-w2c.ch"
static int web_strcmp(
char*j,
int j_len,
@@ -1066,7 +1075,7 @@ else return greater;
/*:45*//*47:*/
#line 855 "cwebdir/common.w"
-#line 554 "cwebdir/comm-w2c.ch"
+#line 566 "cwebdir/comm-w2c.ch"
static name_pointer
add_section_name(
name_pointer par,
@@ -1078,9 +1087,9 @@ int ispref)
{
name_pointer p= name_ptr;
char*s= first_chunk(p);
-#line 566 "cwebdir/comm-w2c.ch"
+#line 578 "cwebdir/comm-w2c.ch"
int name_len= (int)(last-first)+ispref;
-#line 573 "cwebdir/comm-w2c.ch"
+#line 585 "cwebdir/comm-w2c.ch"
if(s+name_len> byte_mem_end)overflow(_("byte memory"));
if(name_ptr+1>=name_dir_end)overflow(_("name"));
#line 869 "cwebdir/common.w"
@@ -1102,7 +1111,7 @@ return par==NULL?(root= p):c==less?(par->llink= p):(par->rlink= p);
/*:47*//*48:*/
#line 884 "cwebdir/common.w"
-#line 585 "cwebdir/comm-w2c.ch"
+#line 597 "cwebdir/comm-w2c.ch"
static void
extend_section_name(
name_pointer p,
@@ -1113,16 +1122,16 @@ int ispref)
{
char*s;
name_pointer q= p+1;
-#line 596 "cwebdir/comm-w2c.ch"
+#line 608 "cwebdir/comm-w2c.ch"
int name_len= (int)(last-first)+ispref;
-#line 602 "cwebdir/comm-w2c.ch"
+#line 614 "cwebdir/comm-w2c.ch"
if(name_ptr>=name_dir_end)overflow(_("name"));
#line 896 "cwebdir/common.w"
while(q->link!=name_dir)q= q->link;
q->link= name_ptr;
s= name_ptr->byte_start;
name_ptr->link= name_dir;
-#line 608 "cwebdir/comm-w2c.ch"
+#line 620 "cwebdir/comm-w2c.ch"
if(s+name_len> byte_mem_end)overflow(_("byte memory"));
#line 901 "cwebdir/common.w"
(++name_ptr)->byte_start= byte_ptr= s+name_len;
@@ -1133,7 +1142,7 @@ if(ispref)*(byte_ptr-1)= ' ';
/*:48*//*49:*/
#line 912 "cwebdir/common.w"
-#line 617 "cwebdir/comm-w2c.ch"
+#line 629 "cwebdir/comm-w2c.ch"
name_pointer
section_lookup(
char*first,char*last,
@@ -1146,7 +1155,7 @@ name_pointer q= NULL;
name_pointer r= NULL;
name_pointer par= NULL;
-#line 626 "cwebdir/comm-w2c.ch"
+#line 638 "cwebdir/comm-w2c.ch"
int name_len= (int)(last-first)+1;
#line 925 "cwebdir/common.w"
/*50:*/
@@ -1160,12 +1169,12 @@ par= p;
p= (c==less?p->llink:p->rlink);
}else{
if(r!=NULL){
-#line 632 "cwebdir/comm-w2c.ch"
+#line 644 "cwebdir/comm-w2c.ch"
fputs(_("\n! Ambiguous prefix: matches <"),stdout);
#line 946 "cwebdir/common.w"
print_prefix_name(p);
-#line 638 "cwebdir/comm-w2c.ch"
+#line 650 "cwebdir/comm-w2c.ch"
fputs(_(">\n and <"),stdout);
#line 949 "cwebdir/common.w"
print_prefix_name(r);
@@ -1199,7 +1208,7 @@ switch(section_name_cmp(&first,name_len,r)){
case prefix:
if(!ispref){
-#line 644 "cwebdir/comm-w2c.ch"
+#line 656 "cwebdir/comm-w2c.ch"
fputs(_("\n! New name is a prefix of <"),stdout);
#line 975 "cwebdir/common.w"
@@ -1213,7 +1222,7 @@ case extension:if(!ispref||first<=last)
extend_section_name(r,first,last+1,ispref);
return r;
case bad_extension:
-#line 650 "cwebdir/comm-w2c.ch"
+#line 662 "cwebdir/comm-w2c.ch"
fputs(_("\n! New name extends <"),stdout);
#line 987 "cwebdir/common.w"
@@ -1221,12 +1230,12 @@ print_section_name(r);
err_print(">");
return r;
default:
-#line 656 "cwebdir/comm-w2c.ch"
+#line 668 "cwebdir/comm-w2c.ch"
fputs(_("\n! Section name incompatible with <"),stdout);
#line 993 "cwebdir/common.w"
print_prefix_name(r);
-#line 662 "cwebdir/comm-w2c.ch"
+#line 674 "cwebdir/comm-w2c.ch"
fputs(_(">,\n which abbreviates <"),stdout);
#line 996 "cwebdir/common.w"
print_section_name(r);
@@ -1242,7 +1251,7 @@ return r;
/*:49*//*54:*/
#line 1020 "cwebdir/common.w"
-#line 677 "cwebdir/comm-w2c.ch"
+#line 689 "cwebdir/comm-w2c.ch"
static int section_name_cmp(
char**pfirst,
int len,
@@ -1261,7 +1270,7 @@ else ispref= 0,ss++,q= name_dir;
switch(c= web_strcmp(first,len,s,ss-s)){
case equal:if(q==name_dir)
if(ispref){
-#line 686 "cwebdir/comm-w2c.ch"
+#line 698 "cwebdir/comm-w2c.ch"
*pfirst= first+(ptrdiff_t)(ss-s);
#line 1039 "cwebdir/common.w"
return extension;
@@ -1270,7 +1279,7 @@ else return(q->byte_start==(q+1)->byte_start)?equal:prefix;
case extension:
if(!ispref)return bad_extension;
first+= ss-s;
-#line 692 "cwebdir/comm-w2c.ch"
+#line 704 "cwebdir/comm-w2c.ch"
if(q!=name_dir){len-= (int)(ss-s);s= q->byte_start;r= q;continue;}
#line 1046 "cwebdir/common.w"
*pfirst= first;return extension;
@@ -1282,7 +1291,7 @@ default:return c;
/*:54*//*58:*/
#line 1095 "cwebdir/common.w"
-#line 718 "cwebdir/comm-w2c.ch"
+#line 730 "cwebdir/comm-w2c.ch"
void
err_print(
const char*s)
@@ -1294,7 +1303,7 @@ if(web_file_open)/*59:*/
#line 1115 "cwebdir/common.w"
{if(changing&&include_depth==change_depth)
-#line 728 "cwebdir/comm-w2c.ch"
+#line 740 "cwebdir/comm-w2c.ch"
printf(_(". (l. %d of change file)\n"),change_line);
else if(include_depth==0)printf(_(". (l. %d)\n"),cur_line);
else printf(_(". (l. %d of include file %s)\n"),cur_line,cur_file_name);
@@ -1321,18 +1330,18 @@ update_terminal;mark_error;
/*:58*//*61:*/
#line 1150 "cwebdir/common.w"
-#line 767 "cwebdir/comm-w2c.ch"
+#line 779 "cwebdir/comm-w2c.ch"
int wrap_up(void){
if(show_progress)new_line;
#line 1153 "cwebdir/common.w"
if(show_stats)
print_stats();
-#line 774 "cwebdir/comm-w2c.ch"
+#line 786 "cwebdir/comm-w2c.ch"
/*62:*/
#line 1160 "cwebdir/common.w"
switch(history){
-#line 798 "cwebdir/comm-w2c.ch"
+#line 810 "cwebdir/comm-w2c.ch"
case spotless:
if(show_happiness)puts(_("(No errors were found.)"));break;
case harmless_message:
@@ -1345,10 +1354,10 @@ puts(_("(That was a fatal error, my friend.)"));
}
/*:62*/
-#line 774 "cwebdir/comm-w2c.ch"
+#line 786 "cwebdir/comm-w2c.ch"
/*87:*/
-#line 1193 "cwebdir/comm-w2c.ch"
+#line 1205 "cwebdir/comm-w2c.ch"
if(C_file)fclose(C_file);
if(tex_file)fclose(tex_file);
@@ -1357,9 +1366,9 @@ if(strlen(check_file_name))
remove(check_file_name);
/*:87*/
-#line 775 "cwebdir/comm-w2c.ch"
+#line 787 "cwebdir/comm-w2c.ch"
-#line 782 "cwebdir/comm-w2c.ch"
+#line 794 "cwebdir/comm-w2c.ch"
switch(history){
case harmless_message:return RETURN_WARN;
case error_message:return RETURN_ERROR;
@@ -1370,13 +1379,13 @@ default:return RETURN_OK;
}
/*:61*//*64:*/
-#line 820 "cwebdir/comm-w2c.ch"
+#line 832 "cwebdir/comm-w2c.ch"
void
fatal(
const char*s,const char*t)
#line 1182 "cwebdir/common.w"
{
-#line 828 "cwebdir/comm-w2c.ch"
+#line 840 "cwebdir/comm-w2c.ch"
if(*s)fputs(s,stdout);
#line 1184 "cwebdir/common.w"
err_print(t);
@@ -1384,13 +1393,13 @@ history= fatal_message;exit(wrap_up());
}
/*:64*//*65:*/
-#line 836 "cwebdir/comm-w2c.ch"
+#line 848 "cwebdir/comm-w2c.ch"
void
overflow(
const char*t)
#line 1193 "cwebdir/common.w"
{
-#line 844 "cwebdir/comm-w2c.ch"
+#line 856 "cwebdir/comm-w2c.ch"
printf(_("\n! Sorry, %s capacity exceeded"),t);fatal("","");
#line 1195 "cwebdir/common.w"
}
@@ -1399,7 +1408,7 @@ printf(_("\n! Sorry, %s capacity exceeded"),t);fatal("","");
/*:65*//*70:*/
#line 1254 "cwebdir/common.w"
-#line 900 "cwebdir/comm-w2c.ch"
+#line 912 "cwebdir/comm-w2c.ch"
static void
scan_args(void)
#line 1257 "cwebdir/common.w"
@@ -1411,7 +1420,7 @@ boolean found_web= 0,found_change= 0,found_out= 0;
#line 1264 "cwebdir/common.w"
-#line 912 "cwebdir/comm-w2c.ch"
+#line 924 "cwebdir/comm-w2c.ch"
#if defined DEV_NULL
strncpy(change_file_name,DEV_NULL,max_file_name_length-2);
@@ -1426,25 +1435,25 @@ strcpy(change_file_name,"/dev/null");
while(--argc> 0){
#line 1266 "cwebdir/common.w"
if((**(++argv)=='-'||**argv=='+')&&*(*argv+1))/*74:*/
-#line 990 "cwebdir/comm-w2c.ch"
+#line 1002 "cwebdir/comm-w2c.ch"
{
if(strcmp("-help",*argv)==0||strcmp("--help",*argv)==0)
/*94:*/
-#line 1338 "cwebdir/comm-w2c.ch"
+#line 1350 "cwebdir/comm-w2c.ch"
cb_usagehelp(program==ctangle?CTANGLEHELP:
program==cweave?CWEAVEHELP:CTWILLHELP,NULL);
/*:94*/
-#line 994 "cwebdir/comm-w2c.ch"
+#line 1006 "cwebdir/comm-w2c.ch"
if(strcmp("-version",*argv)==0||strcmp("--version",*argv)==0)
/*96:*/
-#line 1380 "cwebdir/comm-w2c.ch"
+#line 1392 "cwebdir/comm-w2c.ch"
printversionandexit(cb_banner,
program==ctwill?"Donald E. Knuth":"Silvio Levy and Donald E. Knuth",
@@ -1452,7 +1461,7 @@ NULL,"Contemporary development on https://github.com/ascherer/cwebbin.\n");
/*:96*/
-#line 997 "cwebdir/comm-w2c.ch"
+#line 1009 "cwebdir/comm-w2c.ch"
if(strcmp("-verbose",*argv)==0||strcmp("--verbose",*argv)==0)
@@ -1471,14 +1480,14 @@ if(*dot_pos=='d'){
if(sscanf(++dot_pos,"%u",&kpathsea_debug)!=1)/*75:*/
#line 1352 "cwebdir/common.w"
-#line 1040 "cwebdir/comm-w2c.ch"
+#line 1052 "cwebdir/comm-w2c.ch"
cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
#line 1363 "cwebdir/common.w"
-#line 1047 "cwebdir/comm-w2c.ch"
+#line 1059 "cwebdir/comm-w2c.ch"
/*:75*/
-#line 1012 "cwebdir/comm-w2c.ch"
+#line 1024 "cwebdir/comm-w2c.ch"
while(isdigit(*dot_pos))dot_pos++;
dot_pos--;
@@ -1487,7 +1496,7 @@ if(*dot_pos=='l'){
use_language= ++dot_pos;
break;
}else
-#line 1025 "cwebdir/comm-w2c.ch"
+#line 1037 "cwebdir/comm-w2c.ch"
flags[(eight_bits)*dot_pos]= flag_change;
#line 1350 "cwebdir/common.w"
}
@@ -1497,7 +1506,7 @@ break;
else{
s= name_pos= *argv;dot_pos= NULL;
-#line 933 "cwebdir/comm-w2c.ch"
+#line 945 "cwebdir/comm-w2c.ch"
while(*s){
if(*s=='.')dot_pos= s++;
else if(*s==DIR_SEPARATOR||*s==DEVICE_SEPARATOR||*s=='/')
@@ -1512,7 +1521,7 @@ if(!found_web)/*71:*/
{
if(s-*argv> max_file_name_length-5)
/*76:*/
-#line 1047 "cwebdir/comm-w2c.ch"
+#line 1059 "cwebdir/comm-w2c.ch"
fatal(_("! Filename too long\n"),*argv);
#line 1365 "cwebdir/common.w"
@@ -1541,12 +1550,12 @@ else if(!found_change)/*72:*/
#line 1310 "cwebdir/common.w"
{
-#line 965 "cwebdir/comm-w2c.ch"
+#line 977 "cwebdir/comm-w2c.ch"
if(strcmp(*argv,"-")!=0){
#line 1314 "cwebdir/common.w"
if(s-*argv> max_file_name_length-4)
/*76:*/
-#line 1047 "cwebdir/comm-w2c.ch"
+#line 1059 "cwebdir/comm-w2c.ch"
fatal(_("! Filename too long\n"),*argv);
#line 1365 "cwebdir/common.w"
@@ -1557,7 +1566,7 @@ fatal(_("! Filename too long\n"),*argv);
if(dot_pos==NULL)
sprintf(change_file_name,"%s.ch",*argv);
else strcpy(change_file_name,*argv);
-#line 972 "cwebdir/comm-w2c.ch"
+#line 984 "cwebdir/comm-w2c.ch"
}
found_change= 1;
#line 1321 "cwebdir/common.w"
@@ -1572,7 +1581,7 @@ else if(!found_out)/*73:*/
{
if(s-*argv> max_file_name_length-5)
/*76:*/
-#line 1047 "cwebdir/comm-w2c.ch"
+#line 1059 "cwebdir/comm-w2c.ch"
fatal(_("! Filename too long\n"),*argv);
#line 1365 "cwebdir/common.w"
@@ -1588,7 +1597,7 @@ sprintf(C_file_name,"%s.c",*argv);
}else{
strcpy(tex_file_name,*argv);
strcpy(C_file_name,*argv);
-#line 979 "cwebdir/comm-w2c.ch"
+#line 991 "cwebdir/comm-w2c.ch"
if(make_xrefs){
#line 1336 "cwebdir/common.w"
*dot_pos= 0;
@@ -1599,19 +1608,19 @@ sprintf(scn_file_name,"%s.scn",*argv);
found_out= 1;
}
-#line 989 "cwebdir/comm-w2c.ch"
+#line 1001 "cwebdir/comm-w2c.ch"
/*:73*/
#line 1277 "cwebdir/common.w"
else/*75:*/
#line 1352 "cwebdir/common.w"
-#line 1040 "cwebdir/comm-w2c.ch"
+#line 1052 "cwebdir/comm-w2c.ch"
cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
#line 1363 "cwebdir/common.w"
-#line 1047 "cwebdir/comm-w2c.ch"
+#line 1059 "cwebdir/comm-w2c.ch"
/*:75*/
#line 1278 "cwebdir/common.w"
;
@@ -1620,21 +1629,21 @@ else/*75:*/
if(!found_web)/*75:*/
#line 1352 "cwebdir/common.w"
-#line 1040 "cwebdir/comm-w2c.ch"
+#line 1052 "cwebdir/comm-w2c.ch"
cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
#line 1363 "cwebdir/common.w"
-#line 1047 "cwebdir/comm-w2c.ch"
+#line 1059 "cwebdir/comm-w2c.ch"
/*:75*/
#line 1281 "cwebdir/common.w"
;
#line 1283 "cwebdir/common.w"
}
-#line 952 "cwebdir/comm-w2c.ch"
+#line 964 "cwebdir/comm-w2c.ch"
/*:70*//*95:*/
-#line 1346 "cwebdir/comm-w2c.ch"
+#line 1358 "cwebdir/comm-w2c.ch"
static void cb_usage(const_string str)
{
@@ -1667,7 +1676,7 @@ history= spotless;exit(wrap_up());
}
/*:95*//*97:*/
-#line 1388 "cwebdir/comm-w2c.ch"
+#line 1400 "cwebdir/comm-w2c.ch"
void cb_show_banner(void)
{
diff --git a/Build/source/texk/web2c/cwebdir/ChangeLog b/Build/source/texk/web2c/cwebdir/ChangeLog
index 52c36e1345f..a1a2fe9de87 100644
--- a/Build/source/texk/web2c/cwebdir/ChangeLog
+++ b/Build/source/texk/web2c/cwebdir/ChangeLog
@@ -1,3 +1,7 @@
+2020-04-11 Andreas Scherer <https://ascherer.github.io>
+
+ * comm-w2c.ch, comm-w2c.h: Rearrange 'common variables'.
+
2020-03-30 Andreas Scherer <https://ascherer.github.io>
* comm-w2c.ch, comm-w2c.h, ctang-w2c.ch, ctwill-w2c.ch, cweav-w2c.ch,
diff --git a/Build/source/texk/web2c/cwebdir/comm-w2c.ch b/Build/source/texk/web2c/cwebdir/comm-w2c.ch
index 1b5201897de..236d8a95c8e 100644
--- a/Build/source/texk/web2c/cwebdir/comm-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/comm-w2c.ch
@@ -83,6 +83,18 @@ common_init(void)
@z
@x
+@d minus_gt_ast 027 /* `\.{->*}'\,; corresponds to MIT's {\tentex\char'27} */
+@y
+@d minus_gt_ast 027 /* `\.{->*}'\,; corresponds to MIT's {\tentex\char'27} */
+
+@<Definitions...@>=
+char section_text[longest_name+1]; /* name being sought for */
+char *section_text_end = section_text+longest_name; /* end of |section_text| */
+char *id_first; /* where the current identifier begins in the buffer */
+char *id_loc; /* just after the current identifier in the buffer */
+@z
+
+@x
@d buf_size 100 /* for \.{CWEAVE} and \.{CTANGLE} */
@y
@d buf_size 1000 /* for \.{CWEAVE} and \.{CTANGLE} */
diff --git a/Build/source/texk/web2c/cwebdir/comm-w2c.h b/Build/source/texk/web2c/cwebdir/comm-w2c.h
index 09939bb2bc9..a5b968abfd5 100644
--- a/Build/source/texk/web2c/cwebdir/comm-w2c.h
+++ b/Build/source/texk/web2c/cwebdir/comm-w2c.h
@@ -77,10 +77,10 @@ extern int phase; /* which phase are we in? */
@d minus_gt_ast 027 /* `\.{->*}'\,; corresponds to MIT's {\tentex\char'27} */
@<Common code...@>=
-char section_text[longest_name+1]; /* name being sought for */
-char *section_text_end = section_text+longest_name; /* end of |section_text| */
-char *id_first; /* where the current identifier begins in the buffer */
-char *id_loc; /* just after the current identifier in the buffer */
+extern char section_text[]; /* name being sought for */
+extern char *section_text_end; /* end of |section_text| */
+extern char *id_first; /* where the current identifier begins in the buffer */
+extern char *id_loc; /* just after the current identifier in the buffer */
@ Code related to input routines: