summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/cwebboot.cin
diff options
context:
space:
mode:
authorAndreas Scherer <andreas_tex@freenet.de>2021-05-03 13:03:46 +0000
committerAndreas Scherer <andreas_tex@freenet.de>2021-05-03 13:03:46 +0000
commit60712e2174bfaa66828692206c37af9b20d9fc9a (patch)
tree3e9284ecd37b56a42a67118bb5aa94482e07112b /Build/source/texk/web2c/cwebboot.cin
parentd3de05fb9dda5d710a51f3ad2097d67d8452a166 (diff)
[CWEB] New release 4.3.1.
This release is almost the same as CWEB 4.3 of 2021-04-16, but * it fixes the indexing bug in CWEAVE/CTWILL that got retracted * it extracts and collects all additions made in CTWILL, so that the section numbers of CWEAVE are retained up to ยง272 and new material is described in the (first) appendix, including the CTWILL user manual * it provides fully revised and (hopefully) corrected mini-indexes for CTWILL, if it is processed by itself (to be published in package 'knuth-pdf' on CTAN) git-svn-id: svn://tug.org/texlive/trunk@59061 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/cwebboot.cin')
-rw-r--r--Build/source/texk/web2c/cwebboot.cin543
1 files changed, 267 insertions, 276 deletions
diff --git a/Build/source/texk/web2c/cwebboot.cin b/Build/source/texk/web2c/cwebboot.cin
index 150c303a346..21ccb238c4a 100644
--- a/Build/source/texk/web2c/cwebboot.cin
+++ b/Build/source/texk/web2c/cwebboot.cin
@@ -1,8 +1,8 @@
/*1:*/
-#line 66 "cwebdir/common.w"
+#line 62 "cwebdir/common.w"
/*3:*/
-#line 53 "cwebdir/comm-w2c.h"
+#line 51 "cwebdir/comm-w2c.h"
#ifndef HAVE_GETTEXT
#define HAVE_GETTEXT 0
@@ -23,7 +23,7 @@
#include <string.h>
/*:3*//*89:*/
-#line 709 "cwebdir/comm-w2c.ch"
+#line 711 "cwebdir/comm-w2c.ch"
#if HAVE_GETTEXT
#include <locale.h>
@@ -34,7 +34,7 @@
#endif
/*:89*//*91:*/
-#line 756 "cwebdir/comm-w2c.ch"
+#line 758 "cwebdir/comm-w2c.ch"
typedef bool boolean;
#define HAVE_BOOLEAN
@@ -44,13 +44,13 @@ typedef bool boolean;
#include <lib/lib.h>
/*:91*//*94:*/
-#line 795 "cwebdir/comm-w2c.ch"
+#line 797 "cwebdir/comm-w2c.ch"
#define CWEB
#include "help.h"
/*:94*/
-#line 67 "cwebdir/common.w"
+#line 63 "cwebdir/common.w"
#define _(S) gettext(S) \
@@ -70,12 +70,18 @@ typedef bool boolean;
#define period_ast 026
#define minus_gt_ast 027 \
-#define xisalpha(c) (isalpha((eight_bits) c) &&((eight_bits) c<0200) )
-#define xisdigit(c) (isdigit((eight_bits) c) &&((eight_bits) c<0200) )
-#define xisspace(c) (isspace((eight_bits) c) &&((eight_bits) c<0200) )
-#define xislower(c) (islower((eight_bits) c) &&((eight_bits) c<0200) )
-#define xisupper(c) (isupper((eight_bits) c) &&((eight_bits) c<0200) )
-#define xisxdigit(c) (isxdigit((eight_bits) c) &&((eight_bits) c<0200) ) \
+#define compress(c) if(loc++<=limit) return c \
+
+#define xisalpha(c) (isalpha((eight_bits) (c) ) &&((eight_bits) (c) <0200) )
+#define xisdigit(c) (isdigit((eight_bits) (c) ) &&((eight_bits) (c) <0200) )
+#define xisspace(c) (isspace((eight_bits) (c) ) &&((eight_bits) (c) <0200) )
+#define xislower(c) (islower((eight_bits) (c) ) &&((eight_bits) (c) <0200) )
+#define xisupper(c) (isupper((eight_bits) (c) ) &&((eight_bits) (c) <0200) )
+#define xisxdigit(c) (isxdigit((eight_bits) (c) ) &&((eight_bits) (c) <0200) )
+#define isxalpha(c) ((c) =='_'||(c) =='$') \
+
+#define ishigh(c) ((eight_bits) (c) > 0177) \
+ \
#define max_include_depth 10 \
@@ -97,24 +103,21 @@ typedef bool boolean;
#define harmless_message 1
#define error_message 2
#define fatal_message 3
-#define mark_harmless {if(history==spotless) history= harmless_message;}
+#define mark_harmless if(history==spotless) history= harmless_message
#define mark_error history= error_message
#define confusion(s) fatal(_("! This can't happen: ") ,s) \
\
#define show_banner flags['b']
#define show_progress flags['p']
-#define show_stats flags['s']
#define show_happiness flags['h']
-#define temporary_output flags['t']
-#define make_xrefs flags['x'] \
+#define show_stats flags['s']
+#define make_xrefs flags['x']
+#define check_for_change flags['c'] \
#define update_terminal fflush(stdout)
#define new_line putchar('\n')
-#define putxchar putchar
-#define term_write(a,b) fflush(stdout) ,fwrite(a,sizeof(char) ,b,stdout)
-#define C_printf(c,a) fprintf(C_file,c,a)
-#define C_putc(c) putc(c,C_file) \
+#define term_write(a,b) fflush(stdout) ,fwrite(a,sizeof(char) ,b,stdout) \
#define max_bytes 1000000 \
@@ -131,7 +134,8 @@ typedef bool boolean;
#define lines_dont_match (change_limit-change_buffer!=limit-buffer|| \
strncmp(buffer,change_buffer,(size_t) (limit-buffer) ) ) \
-#define if_section_start_make_pending(b) {*limit= '!'; \
+#define if_section_start_make_pending(b) { \
+*limit= '!'; \
for(loc= buffer;xisspace(*loc) ;loc++) ; \
*limit= ' '; \
if(*loc=='@'&&(xisspace(*(loc+1) ) ||*(loc+1) =='*') ) change_pending= b; \
@@ -171,10 +175,10 @@ err_print(_("! Include file name too long") ) ;goto restart;} \
#define kpse_find_cweb(name) kpse_find_file(name,kpse_cweb_format,true) \
-#line 68 "cwebdir/common.w"
+#line 64 "cwebdir/common.w"
/*2:*/
-#line 35 "cwebdir/comm-w2c.h"
+#line 33 "cwebdir/comm-w2c.h"
typedef bool boolean;
typedef uint8_t eight_bits;
@@ -194,7 +198,7 @@ extern char*id_first;
extern char*id_loc;
/*:4*//*5:*/
-#line 105 "cwebdir/comm-w2c.h"
+#line 109 "cwebdir/comm-w2c.h"
extern char buffer[];
extern char*buffer_end;
@@ -202,7 +206,7 @@ extern char*loc;
extern char*limit;
/*:5*//*6:*/
-#line 122 "cwebdir/comm-w2c.h"
+#line 126 "cwebdir/comm-w2c.h"
extern int include_depth;
extern FILE*file[];
@@ -219,7 +223,7 @@ extern boolean changing;
extern boolean web_file_open;
/*:6*//*8:*/
-#line 143 "cwebdir/comm-w2c.h"
+#line 147 "cwebdir/comm-w2c.h"
extern sixteen_bits section_count;
extern boolean changed_section[];
@@ -227,7 +231,7 @@ extern boolean change_pending;
extern boolean print_where;
/*:8*//*9:*/
-#line 157 "cwebdir/comm-w2c.h"
+#line 161 "cwebdir/comm-w2c.h"
typedef struct name_info{
char*byte_start;
@@ -252,12 +256,12 @@ extern hash_pointer hash_end;
extern hash_pointer h;
/*:9*//*11:*/
-#line 201 "cwebdir/comm-w2c.h"
+#line 205 "cwebdir/comm-w2c.h"
extern int history;
/*:11*//*13:*/
-#line 218 "cwebdir/comm-w2c.h"
+#line 222 "cwebdir/comm-w2c.h"
extern int argc;
extern char**argv;
@@ -269,7 +273,7 @@ extern boolean flags[];
extern const char*use_language;
/*:13*//*14:*/
-#line 235 "cwebdir/comm-w2c.h"
+#line 237 "cwebdir/comm-w2c.h"
extern FILE*C_file;
extern FILE*tex_file;
@@ -279,22 +283,22 @@ extern FILE*active_file;
extern FILE*check_file;
/*:14*/
-#line 69 "cwebdir/common.w"
+#line 65 "cwebdir/common.w"
/*18:*/
-#line 83 "cwebdir/common.w"
+#line 79 "cwebdir/common.w"
#line 72 "cwebdir/comm-w2c.ch"
cweb program;
-#line 85 "cwebdir/common.w"
+#line 81 "cwebdir/common.w"
/*:18*//*19:*/
-#line 92 "cwebdir/common.w"
+#line 88 "cwebdir/common.w"
int phase;
/*:19*//*21:*/
-#line 130 "cwebdir/common.w"
+#line 126 "cwebdir/common.w"
char section_text[longest_name+1];
char*section_text_end= section_text+longest_name;
@@ -302,7 +306,7 @@ char*id_first;
char*id_loc;
/*:21*//*22:*/
-#line 150 "cwebdir/common.w"
+#line 146 "cwebdir/common.w"
char buffer[long_buf_size];
char*buffer_end= buffer+buf_size-2;
@@ -310,7 +314,7 @@ char*loc= buffer;
char*limit= buffer;
/*:22*//*25:*/
-#line 194 "cwebdir/common.w"
+#line 190 "cwebdir/common.w"
int include_depth;
FILE*file[max_include_depth];
@@ -318,7 +322,7 @@ FILE*change_file;
char file_name[max_include_depth][max_file_name_length];
char change_file_name[max_file_name_length];
-#line 202 "cwebdir/common.w"
+#line 198 "cwebdir/common.w"
int line[max_include_depth];
int change_line;
int change_depth;
@@ -327,13 +331,13 @@ boolean changing;
boolean web_file_open= false;
/*:25*//*26:*/
-#line 220 "cwebdir/common.w"
+#line 216 "cwebdir/common.w"
static char change_buffer[buf_size];
static char*change_limit;
/*:26*//*37:*/
-#line 399 "cwebdir/common.w"
+#line 396 "cwebdir/common.w"
sixteen_bits section_count;
boolean changed_section[max_sections];
@@ -342,7 +346,7 @@ boolean change_pending;
boolean print_where= false;
/*:37*//*43:*/
-#line 596 "cwebdir/common.w"
+#line 593 "cwebdir/common.w"
char byte_mem[max_bytes];
char*byte_mem_end= byte_mem+max_bytes-1;
@@ -350,60 +354,60 @@ name_info name_dir[max_names];
name_pointer name_dir_end= name_dir+max_names-1;
/*:43*//*44:*/
-#line 607 "cwebdir/common.w"
+#line 604 "cwebdir/common.w"
char*byte_ptr;
name_pointer name_ptr;
/*:44*//*46:*/
-#line 627 "cwebdir/common.w"
+#line 624 "cwebdir/common.w"
name_pointer hash[hash_size];
hash_pointer hash_end= hash+hash_size-1;
hash_pointer h;
/*:46*//*65:*/
-#line 1014 "cwebdir/common.w"
+#line 1006 "cwebdir/common.w"
int history= spotless;
/*:65*//*73:*/
-#line 1135 "cwebdir/common.w"
+#line 1129 "cwebdir/common.w"
int argc;
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 431 "cwebdir/comm-w2c.ch"
+#line 441 "cwebdir/comm-w2c.ch"
char scn_file_name[max_file_name_length];
char check_file_name[max_file_name_length];
-#line 1142 "cwebdir/common.w"
+#line 1136 "cwebdir/common.w"
boolean flags[128];
/*:73*//*83:*/
-#line 1282 "cwebdir/common.w"
+#line 1272 "cwebdir/common.w"
FILE*C_file;
FILE*tex_file;
FILE*idx_file;
-#line 569 "cwebdir/comm-w2c.ch"
+#line 571 "cwebdir/comm-w2c.ch"
FILE*scn_file;
FILE*check_file;
-#line 576 "cwebdir/comm-w2c.ch"
+#line 578 "cwebdir/comm-w2c.ch"
FILE*active_file;
char*found_filename;
-#line 1288 "cwebdir/common.w"
+#line 1278 "cwebdir/common.w"
-#line 593 "cwebdir/comm-w2c.ch"
+#line 595 "cwebdir/comm-w2c.ch"
/*:83*//*86:*/
-#line 638 "cwebdir/comm-w2c.ch"
+#line 640 "cwebdir/comm-w2c.ch"
const char*use_language= "";
/*:86*//*87:*/
-#line 651 "cwebdir/comm-w2c.ch"
+#line 653 "cwebdir/comm-w2c.ch"
char cb_banner[max_banner];
string texmf_locale;
@@ -413,22 +417,22 @@ string texmf_locale;
char separators[]= SEPARATORS;
/*:87*/
-#line 70 "cwebdir/common.w"
+#line 66 "cwebdir/common.w"
/*7:*/
-#line 137 "cwebdir/comm-w2c.h"
+#line 141 "cwebdir/comm-w2c.h"
extern boolean get_line(void);
extern void check_complete(void);
extern void reset_input(void);
/*:7*//*10:*/
-#line 180 "cwebdir/comm-w2c.h"
+#line 184 "cwebdir/comm-w2c.h"
extern boolean names_match(name_pointer,const char*,size_t,eight_bits);
extern name_pointer id_lookup(const char*,const char*,char);
-extern name_pointer section_lookup(char*,char*,int);
+extern name_pointer section_lookup(char*,char*,boolean);
extern void init_node(name_pointer);
extern void init_p(name_pointer,eight_bits);
extern void print_prefix_name(name_pointer);
@@ -436,7 +440,7 @@ extern void print_section_name(name_pointer);
extern void sprint_section_name(char*,name_pointer);
/*:10*//*12:*/
-#line 204 "cwebdir/comm-w2c.h"
+#line 208 "cwebdir/comm-w2c.h"
extern int wrap_up(void);
extern void err_print(const char*);
@@ -444,59 +448,59 @@ extern void fatal(const char*,const char*);
extern void overflow(const char*);
/*:12*//*15:*/
-#line 244 "cwebdir/comm-w2c.h"
+#line 246 "cwebdir/comm-w2c.h"
extern void common_init(void);
extern void print_stats(void);
extern void cb_show_banner(void);
/*:15*//*24:*/
-#line 180 "cwebdir/common.w"
+#line 176 "cwebdir/common.w"
static boolean input_ln(FILE*);
/*:24*//*28:*/
-#line 241 "cwebdir/common.w"
+#line 237 "cwebdir/common.w"
static void prime_the_change_buffer(void);
/*:28*//*33:*/
-#line 340 "cwebdir/common.w"
+#line 337 "cwebdir/common.w"
static void check_change(void);
/*:33*//*55:*/
-#line 774 "cwebdir/common.w"
+#line 767 "cwebdir/common.w"
static int web_strcmp(char*,int,char*,int);
-static name_pointer add_section_name(name_pointer,int,char*,char*,int);
-static void extend_section_name(name_pointer,char*,char*,int);
+static name_pointer add_section_name(name_pointer,int,char*,char*,boolean);
+static void extend_section_name(name_pointer,char*,char*,boolean);
/*:55*//*64:*/
-#line 1002 "cwebdir/common.w"
+#line 994 "cwebdir/common.w"
static int section_name_cmp(char**,int,name_pointer);
/*:64*//*76:*/
-#line 1197 "cwebdir/common.w"
+#line 1189 "cwebdir/common.w"
static void scan_args(void);
-#line 496 "cwebdir/comm-w2c.ch"
+#line 501 "cwebdir/comm-w2c.ch"
/*:76*//*96:*/
-#line 808 "cwebdir/comm-w2c.ch"
+#line 810 "cwebdir/comm-w2c.ch"
static void cb_usage(const_string str);
static void cb_usagehelp(const_string*message,const_string bug_email);
/*:96*/
-#line 71 "cwebdir/common.w"
+#line 67 "cwebdir/common.w"
/*:1*//*20:*/
-#line 99 "cwebdir/common.w"
+#line 95 "cwebdir/common.w"
void
common_init(void)
{
#line 78 "cwebdir/comm-w2c.ch"
/*45:*/
-#line 611 "cwebdir/common.w"
+#line 608 "cwebdir/common.w"
name_dir->byte_start= byte_ptr= byte_mem;
name_ptr= name_dir+1;
@@ -504,7 +508,7 @@ name_ptr->byte_start= byte_mem;
root= NULL;
/*:45*//*47:*/
-#line 634 "cwebdir/common.w"
+#line 631 "cwebdir/common.w"
for(h= hash;h<=hash_end;*h++= NULL);
@@ -512,7 +516,7 @@ for(h= hash;h<=hash_end;*h++= NULL);
#line 78 "cwebdir/comm-w2c.ch"
/*92:*/
-#line 770 "cwebdir/comm-w2c.ch"
+#line 772 "cwebdir/comm-w2c.ch"
kpse_set_program_name(argv[0],"cweb");
@@ -521,7 +525,7 @@ kpse_set_program_name(argv[0],"cweb");
#line 85 "cwebdir/comm-w2c.ch"
/*90:*/
-#line 718 "cwebdir/comm-w2c.ch"
+#line 720 "cwebdir/comm-w2c.ch"
setlocale(LC_MESSAGES,setlocale(LC_CTYPE,""));
texmf_locale= kpse_var_expand("${TEXMFLOCALEDIR}");
@@ -540,20 +544,18 @@ textdomain("cweb");
#line 85 "cwebdir/comm-w2c.ch"
/*74:*/
-#line 1148 "cwebdir/common.w"
+#line 1142 "cwebdir/common.w"
-#line 438 "cwebdir/comm-w2c.ch"
-make_xrefs= true;
-temporary_output= true;
-#line 1150 "cwebdir/common.w"
-show_stats= false;
+#line 448 "cwebdir/comm-w2c.ch"
+make_xrefs= check_for_change= true;
+#line 1144 "cwebdir/common.w"
/*:74*/
#line 86 "cwebdir/comm-w2c.ch"
-#line 105 "cwebdir/common.w"
+#line 101 "cwebdir/common.w"
/*84:*/
-#line 593 "cwebdir/comm-w2c.ch"
+#line 595 "cwebdir/comm-w2c.ch"
scan_args();
if(program==ctangle){
@@ -584,16 +586,16 @@ else strcpy(dot_pos,".wtp");
if((tex_file= fopen(check_file_name,"wb"))==NULL)
fatal(_("! Cannot open output file "),check_file_name);
}
-#line 1300 "cwebdir/common.w"
+#line 1290 "cwebdir/common.w"
-#line 628 "cwebdir/comm-w2c.ch"
+#line 630 "cwebdir/comm-w2c.ch"
/*:84*/
-#line 105 "cwebdir/common.w"
+#line 101 "cwebdir/common.w"
}
/*:20*//*23:*/
-#line 160 "cwebdir/common.w"
+#line 156 "cwebdir/common.w"
static boolean input_ln(
FILE*fp)
@@ -605,12 +607,12 @@ limit= k= buffer;
while(k<=buffer_end&&(c= getc(fp))!=EOF&&c!='\n')
#line 92 "cwebdir/comm-w2c.ch"
if((*(k++)= c)!=' '&&c!='\r')limit= k;
-#line 170 "cwebdir/common.w"
+#line 166 "cwebdir/common.w"
if(k> buffer_end)
if((c= getc(fp))!=EOF&&c!='\n'){
#line 98 "cwebdir/comm-w2c.ch"
ungetc(c,fp);loc= buffer;err_print(_("! Input line too long"));
-#line 173 "cwebdir/common.w"
+#line 169 "cwebdir/common.w"
}
if(c==EOF&&limit==buffer)return false;
@@ -619,14 +621,14 @@ return true;
}
/*:23*//*27:*/
-#line 231 "cwebdir/common.w"
+#line 227 "cwebdir/common.w"
static void
prime_the_change_buffer(void)
{
change_limit= change_buffer;
/*29:*/
-#line 247 "cwebdir/common.w"
+#line 243 "cwebdir/common.w"
while(true){
change_line++;
@@ -639,33 +641,33 @@ if(buffer[1]=='y'||buffer[1]=='z'||buffer[1]=='i'){
loc= buffer+2;
#line 109 "cwebdir/comm-w2c.ch"
err_print(_("! Missing @x in change file"));
-#line 258 "cwebdir/common.w"
+#line 254 "cwebdir/common.w"
}
}
/*:29*/
-#line 236 "cwebdir/common.w"
+#line 232 "cwebdir/common.w"
/*30:*/
-#line 264 "cwebdir/common.w"
+#line 260 "cwebdir/common.w"
do{
change_line++;
if(!input_ln(change_file)){
#line 115 "cwebdir/comm-w2c.ch"
err_print(_("! Change file ended after @x"));
-#line 269 "cwebdir/common.w"
+#line 265 "cwebdir/common.w"
return;
}
}while(limit==buffer);
/*:30*/
-#line 237 "cwebdir/common.w"
+#line 233 "cwebdir/common.w"
/*31:*/
-#line 274 "cwebdir/common.w"
+#line 270 "cwebdir/common.w"
{
change_limit= change_buffer+(ptrdiff_t)(limit-buffer);
@@ -673,12 +675,12 @@ strncpy(change_buffer,buffer,(size_t)(limit-buffer+1));
}
/*:31*/
-#line 238 "cwebdir/common.w"
+#line 234 "cwebdir/common.w"
}
/*:27*//*32:*/
-#line 302 "cwebdir/common.w"
+#line 299 "cwebdir/common.w"
static void
check_change(void)
@@ -691,11 +693,11 @@ if_section_start_make_pending(true);
if(!change_pending)changed_section[section_count]= true;
}
while(true){
-changing= true;print_where= true;change_line++;
+changing= print_where= true;change_line++;
if(!input_ln(change_file)){
#line 121 "cwebdir/comm-w2c.ch"
err_print(_("! Change file ended before @y"));
-#line 317 "cwebdir/common.w"
+#line 314 "cwebdir/common.w"
change_limit= change_buffer;changing= false;
return;
@@ -703,12 +705,12 @@ return;
if(limit> buffer+1&&buffer[0]=='@'){
char xyz_code= xisupper(buffer[1])?tolower((eight_bits)buffer[1]):buffer[1];
/*34:*/
-#line 342 "cwebdir/common.w"
+#line 339 "cwebdir/common.w"
if(xyz_code=='x'||xyz_code=='z'){
#line 133 "cwebdir/comm-w2c.ch"
loc= buffer+2;err_print(_("! Where is the matching @y?"));
-#line 345 "cwebdir/common.w"
+#line 342 "cwebdir/common.w"
}
else if(xyz_code=='y'){
@@ -717,7 +719,7 @@ loc= buffer+2;
printf("\n! Hmm... %d ",n);
#line 139 "cwebdir/comm-w2c.ch"
err_print(_("of the preceding lines failed to match"));
-#line 352 "cwebdir/common.w"
+#line 349 "cwebdir/common.w"
}
change_depth= include_depth;
@@ -725,11 +727,11 @@ return;
}
/*:34*/
-#line 324 "cwebdir/common.w"
+#line 321 "cwebdir/common.w"
}
/*31:*/
-#line 274 "cwebdir/common.w"
+#line 270 "cwebdir/common.w"
{
change_limit= change_buffer+(ptrdiff_t)(limit-buffer);
@@ -737,14 +739,14 @@ strncpy(change_buffer,buffer,(size_t)(limit-buffer+1));
}
/*:31*/
-#line 326 "cwebdir/common.w"
+#line 323 "cwebdir/common.w"
changing= false;cur_line++;
while(!input_ln(cur_file)){
if(include_depth==0){
#line 127 "cwebdir/comm-w2c.ch"
err_print(_("! CWEB file ended during a change"));
-#line 331 "cwebdir/common.w"
+#line 328 "cwebdir/common.w"
input_has_ended= true;return;
}
@@ -755,67 +757,67 @@ if(lines_dont_match)n++;
}
/*:32*//*35:*/
-#line 362 "cwebdir/common.w"
+#line 359 "cwebdir/common.w"
void
reset_input(void)
{
limit= buffer;loc= buffer+1;buffer[0]= ' ';
/*36:*/
-#line 377 "cwebdir/common.w"
+#line 374 "cwebdir/common.w"
#line 149 "cwebdir/comm-w2c.ch"
-if((found_filename= kpse_find_cweb(web_file_name))==NULL||
-(web_file= fopen(found_filename,"r"))==NULL){
+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);
-}else if(strlen(found_filename)<max_file_name_length){
+else if(strlen(found_filename)<max_file_name_length){
if(strcmp(web_file_name,found_filename))
strcpy(web_file_name,found_filename+
((strncmp(found_filename,"./",2)==0)?2:0));
free(found_filename);
}else fatal(_("! Filename too long\n"),found_filename);
-#line 383 "cwebdir/common.w"
+#line 380 "cwebdir/common.w"
web_file_open= true;
#line 165 "cwebdir/comm-w2c.ch"
-if((found_filename= kpse_find_cweb(change_file_name))==NULL||
-(change_file= fopen(found_filename,"r"))==NULL){
+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);
-}else if(strlen(found_filename)<max_file_name_length){
+else if(strlen(found_filename)<max_file_name_length){
if(strcmp(change_file_name,found_filename))
strcpy(change_file_name,found_filename+
((strncmp(found_filename,"./",2)==0)?2:0));
free(found_filename);
}else fatal(_("! Filename too long\n"),found_filename);
-#line 388 "cwebdir/common.w"
+#line 385 "cwebdir/common.w"
/*:36*/
-#line 367 "cwebdir/common.w"
+#line 364 "cwebdir/common.w"
-include_depth= 0;cur_line= 0;change_line= 0;
+include_depth= cur_line= change_line= 0;
change_depth= include_depth;
-changing= 1;prime_the_change_buffer();changing= !changing;
+changing= true;prime_the_change_buffer();changing= !changing;
limit= buffer;loc= buffer+1;buffer[0]= ' ';input_has_ended= false;
}
/*:35*//*38:*/
-#line 406 "cwebdir/common.w"
+#line 403 "cwebdir/common.w"
boolean get_line(void)
{
restart:
if(changing&&include_depth==change_depth)
/*41:*/
-#line 514 "cwebdir/common.w"
+#line 511 "cwebdir/common.w"
{
change_line++;
if(!input_ln(change_file)){
#line 274 "cwebdir/comm-w2c.ch"
err_print(_("! Change file ended without @z"));
-#line 518 "cwebdir/common.w"
+#line 515 "cwebdir/common.w"
buffer[0]= '@';buffer[1]= 'z';limit= buffer+2;
}
@@ -833,7 +835,7 @@ if(buffer[1]=='x'||buffer[1]=='y'){
loc= buffer+2;
#line 280 "cwebdir/comm-w2c.ch"
err_print(_("! Where is the matching @z?"));
-#line 534 "cwebdir/common.w"
+#line 531 "cwebdir/common.w"
}
else if(buffer[1]=='z'){
@@ -844,11 +846,11 @@ prime_the_change_buffer();changing= !changing;print_where= true;
}
/*:41*/
-#line 411 "cwebdir/common.w"
+#line 408 "cwebdir/common.w"
if(!changing||include_depth> change_depth){
/*40:*/
-#line 497 "cwebdir/common.w"
+#line 494 "cwebdir/common.w"
{
cur_line++;
while(!input_ln(cur_file)){
@@ -867,7 +869,7 @@ if(change_limit> change_buffer)check_change();
}
/*:40*/
-#line 413 "cwebdir/common.w"
+#line 410 "cwebdir/common.w"
if(changing&&include_depth==change_depth)goto restart;
}
@@ -879,25 +881,25 @@ while(*loc==' '||*loc=='\t')loc++;
if(loc>=limit){
#line 180 "cwebdir/comm-w2c.ch"
err_print(_("! Include file name not given"));
-#line 423 "cwebdir/common.w"
+#line 420 "cwebdir/common.w"
goto restart;
}
if(include_depth>=max_include_depth-1){
#line 186 "cwebdir/comm-w2c.ch"
err_print(_("! Too many nested includes"));
-#line 428 "cwebdir/common.w"
+#line 425 "cwebdir/common.w"
goto restart;
}
include_depth++;
/*39:*/
-#line 451 "cwebdir/common.w"
+#line 448 "cwebdir/common.w"
{
#line 223 "cwebdir/comm-w2c.ch"
char*cur_file_name_end= cur_file_name+max_file_name_length-1;
char*k= cur_file_name;
-#line 456 "cwebdir/common.w"
+#line 453 "cwebdir/common.w"
if(*loc=='"'){
loc++;
@@ -909,8 +911,8 @@ if(k> cur_file_name_end)too_long();
*k= '\0';
#line 230 "cwebdir/comm-w2c.ch"
-if((found_filename= kpse_find_cweb(cur_file_name))!=NULL&&
-(cur_file= fopen(found_filename,"r"))!=NULL){
+if((found_filename= kpse_find_cweb(cur_file_name))!=NULL
+&&(cur_file= fopen(found_filename,"r"))!=NULL){
if(strlen(found_filename)<max_file_name_length){
if(strcmp(cur_file_name,found_filename))
@@ -918,17 +920,17 @@ strcpy(cur_file_name,found_filename+
((strncmp(found_filename,"./",2)==0)?2:0));
free(found_filename);
}else fatal(_("! Filename too long\n"),found_filename);
-#line 467 "cwebdir/common.w"
+#line 464 "cwebdir/common.w"
cur_line= 0;print_where= true;
goto restart;
}
#line 268 "cwebdir/comm-w2c.ch"
include_depth--;err_print(_("! Cannot open include file"));goto restart;
-#line 495 "cwebdir/common.w"
+#line 492 "cwebdir/common.w"
}
/*:39*/
-#line 432 "cwebdir/common.w"
+#line 429 "cwebdir/common.w"
}
return true;
@@ -936,7 +938,7 @@ return true;
#line 201 "cwebdir/comm-w2c.ch"
/*:38*//*42:*/
-#line 546 "cwebdir/common.w"
+#line 543 "cwebdir/common.w"
void
check_complete(void){
@@ -946,13 +948,13 @@ limit= buffer+(ptrdiff_t)(change_limit-change_buffer);
changing= true;change_depth= include_depth;loc= buffer;
#line 286 "cwebdir/comm-w2c.ch"
err_print(_("! Change file entry did not match"));
-#line 554 "cwebdir/common.w"
+#line 551 "cwebdir/common.w"
}
}
/*:42*//*48:*/
-#line 639 "cwebdir/common.w"
+#line 636 "cwebdir/common.w"
name_pointer
id_lookup(
@@ -967,17 +969,17 @@ name_pointer p;
if(last==NULL)for(last= first;*last!='\0';last++);
l= (int)(last-first);
/*49:*/
-#line 662 "cwebdir/common.w"
+#line 659 "cwebdir/common.w"
h= (eight_bits)*i;
while(++i<last)h= (h+h+(int)((eight_bits)*i))%hash_size;
/*:49*/
-#line 652 "cwebdir/common.w"
+#line 649 "cwebdir/common.w"
/*50:*/
-#line 670 "cwebdir/common.w"
+#line 667 "cwebdir/common.w"
p= hash[h];
while(p&&!names_match(p,first,l,t))p= p->link;
@@ -987,28 +989,28 @@ p->link= hash[h];hash[h]= p;
}
/*:50*/
-#line 653 "cwebdir/common.w"
+#line 650 "cwebdir/common.w"
if(p==name_ptr)/*51:*/
-#line 681 "cwebdir/common.w"
+#line 679 "cwebdir/common.w"
{
#line 293 "cwebdir/comm-w2c.ch"
if(byte_ptr+l> byte_mem_end)overflow(_("byte memory"));
if(name_ptr>=name_dir_end)overflow(_("name"));
-#line 684 "cwebdir/common.w"
+#line 682 "cwebdir/common.w"
strncpy(byte_ptr,first,l);
(++name_ptr)->byte_start= byte_ptr+= l;
init_p(p,t);
}
/*:51*/
-#line 654 "cwebdir/common.w"
+#line 651 "cwebdir/common.w"
return p;
}
/*:48*//*52:*/
-#line 713 "cwebdir/common.w"
+#line 711 "cwebdir/common.w"
void
print_section_name(
@@ -1018,18 +1020,16 @@ char*ss,*s= first_chunk(p);
name_pointer q= p+1;
while(p!=name_dir){
ss= (p+1)->byte_start-1;
-if(*ss==' '&&ss>=s){
-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;
-}
+if(*ss==' '&&ss>=s)p= q->link,q= p;
+else ss++,p= name_dir,q= NULL;
+term_write(s,(size_t)(ss-s));
s= p->byte_start;
}
if(q)term_write("...",3);
}
/*:52*//*53:*/
-#line 732 "cwebdir/common.w"
+#line 728 "cwebdir/common.w"
void
sprint_section_name(
@@ -1040,11 +1040,8 @@ char*ss,*s= first_chunk(p);
name_pointer q= p+1;
while(p!=name_dir){
ss= (p+1)->byte_start-1;
-if(*ss==' '&&ss>=s){
-p= q->link;q= p;
-}else{
-ss++;p= name_dir;
-}
+if(*ss==' '&&ss>=s)p= q->link,q= p;
+else ss++,p= name_dir;
strncpy(dest,s,(size_t)(ss-s)),dest+= ss-s;
s= p->byte_start;
}
@@ -1052,7 +1049,7 @@ s= p->byte_start;
}
/*:53*//*54:*/
-#line 753 "cwebdir/common.w"
+#line 746 "cwebdir/common.w"
void
print_prefix_name(
@@ -1065,7 +1062,7 @@ if(s+l<(p+1)->byte_start)term_write("...",3);
}
/*:54*//*56:*/
-#line 779 "cwebdir/common.w"
+#line 772 "cwebdir/common.w"
static int web_strcmp(
char*j,
@@ -1083,7 +1080,7 @@ else return greater;
}
/*:56*//*57:*/
-#line 808 "cwebdir/common.w"
+#line 801 "cwebdir/common.w"
static name_pointer
add_section_name(
@@ -1091,7 +1088,7 @@ name_pointer par,
int c,
char*first,
char*last,
-int ispref)
+boolean ispref)
{
name_pointer p= name_ptr;
char*s= first_chunk(p);
@@ -1099,7 +1096,7 @@ int name_len= (int)(last-first)+ispref;
#line 301 "cwebdir/comm-w2c.ch"
if(s+name_len> byte_mem_end)overflow(_("byte memory"));
if(name_ptr+1>=name_dir_end)overflow(_("name"));
-#line 822 "cwebdir/common.w"
+#line 815 "cwebdir/common.w"
(++name_ptr)->byte_start= byte_ptr= s+name_len;
if(ispref){
*(byte_ptr-1)= ' ';
@@ -1109,49 +1106,48 @@ name_ptr->link= name_dir;
}
set_prefix_length(p,name_len);
strncpy(s,first,name_len);
-p->llink= NULL;
-p->rlink= NULL;
+p->llink= p->rlink= NULL;
init_node(p);
return par==NULL?(root= p):c==less?(par->llink= p):(par->rlink= p);
}
/*:57*//*58:*/
-#line 837 "cwebdir/common.w"
+#line 829 "cwebdir/common.w"
static void
extend_section_name(
name_pointer p,
char*first,
char*last,
-int ispref)
+boolean ispref)
{
char*s;
name_pointer q= p+1;
int name_len= (int)(last-first)+ispref;
#line 308 "cwebdir/comm-w2c.ch"
if(name_ptr>=name_dir_end)overflow(_("name"));
-#line 849 "cwebdir/common.w"
+#line 841 "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 314 "cwebdir/comm-w2c.ch"
if(s+name_len> byte_mem_end)overflow(_("byte memory"));
-#line 854 "cwebdir/common.w"
+#line 846 "cwebdir/common.w"
(++name_ptr)->byte_start= byte_ptr= s+name_len;
strncpy(s,first,name_len);
if(ispref)*(byte_ptr-1)= ' ';
}
/*:58*//*59:*/
-#line 865 "cwebdir/common.w"
+#line 857 "cwebdir/common.w"
name_pointer
section_lookup(
char*first,char*last,
-int ispref)
+boolean ispref)
{
-int c= 0;
+int c= less;
name_pointer p= root;
name_pointer q= NULL;
name_pointer r= NULL;
@@ -1159,7 +1155,7 @@ name_pointer par= NULL;
int name_len= (int)(last-first)+1;
/*60:*/
-#line 889 "cwebdir/common.w"
+#line 881 "cwebdir/common.w"
while(p){
c= web_strcmp(first,name_len,first_chunk(p),prefix_length(p));
@@ -1171,12 +1167,12 @@ p= (c==less?p->llink:p->rlink);
if(r!=NULL){
#line 320 "cwebdir/comm-w2c.ch"
fputs(_("\n! Ambiguous prefix: matches <"),stdout);
-#line 899 "cwebdir/common.w"
+#line 891 "cwebdir/common.w"
print_prefix_name(p);
#line 326 "cwebdir/comm-w2c.ch"
fputs(_(">\n and <"),stdout);
-#line 902 "cwebdir/common.w"
+#line 894 "cwebdir/common.w"
print_prefix_name(r);
err_print(">");
return name_dir;
@@ -1190,19 +1186,19 @@ p= q,q= NULL;
}
/*:60*/
-#line 879 "cwebdir/common.w"
+#line 871 "cwebdir/common.w"
/*61:*/
-#line 914 "cwebdir/common.w"
+#line 906 "cwebdir/common.w"
if(r==NULL)
return add_section_name(par,c,first,last+1,ispref);
/*:61*/
-#line 880 "cwebdir/common.w"
+#line 872 "cwebdir/common.w"
/*62:*/
-#line 922 "cwebdir/common.w"
+#line 914 "cwebdir/common.w"
switch(section_name_cmp(&first,name_len,r)){
@@ -1210,46 +1206,46 @@ case prefix:
if(!ispref){
#line 332 "cwebdir/comm-w2c.ch"
fputs(_("\n! New name is a prefix of <"),stdout);
-#line 928 "cwebdir/common.w"
+#line 920 "cwebdir/common.w"
print_section_name(r);
err_print(">");
}
else if(name_len<prefix_length(r))set_prefix_length(r,name_len);
-case equal:return r;
+case equal:break;
case extension:if(!ispref||first<=last)
extend_section_name(r,first,last+1,ispref);
-return r;
+break;
case bad_extension:
#line 338 "cwebdir/comm-w2c.ch"
fputs(_("\n! New name extends <"),stdout);
-#line 940 "cwebdir/common.w"
+#line 932 "cwebdir/common.w"
print_section_name(r);
err_print(">");
-return r;
+break;
default:
#line 344 "cwebdir/comm-w2c.ch"
fputs(_("\n! Section name incompatible with <"),stdout);
-#line 946 "cwebdir/common.w"
+#line 938 "cwebdir/common.w"
print_prefix_name(r);
#line 350 "cwebdir/comm-w2c.ch"
fputs(_(">,\n which abbreviates <"),stdout);
-#line 949 "cwebdir/common.w"
+#line 941 "cwebdir/common.w"
print_section_name(r);
err_print(">");
-return r;
}
+return r;
/*:62*/
-#line 881 "cwebdir/common.w"
+#line 873 "cwebdir/common.w"
}
/*:59*//*63:*/
-#line 970 "cwebdir/common.w"
+#line 962 "cwebdir/common.w"
static int section_name_cmp(
char**pfirst,
@@ -1259,12 +1255,12 @@ name_pointer r)
char*first= *pfirst;
name_pointer q= r+1;
char*ss,*s= first_chunk(r);
-int c;
-int ispref;
+int c= less;
+boolean ispref;
while(true){
ss= (r+1)->byte_start-1;
-if(*ss==' '&&ss>=r->byte_start)ispref= 1,q= q->link;
-else ispref= 0,ss++,q= name_dir;
+if(*ss==' '&&ss>=r->byte_start)ispref= true,q= q->link;
+else ispref= false,ss++,q= name_dir;
switch(c= web_strcmp(first,len,s,ss-s)){
case equal:if(q==name_dir)
if(ispref){
@@ -1283,7 +1279,7 @@ default:return c;
}
/*:63*//*66:*/
-#line 1024 "cwebdir/common.w"
+#line 1016 "cwebdir/common.w"
void
err_print(
@@ -1292,20 +1288,20 @@ const char*s)
char*k,*l;
printf(*s=='!'?"\n%s":"%s",s);
if(web_file_open)/*67:*/
-#line 1044 "cwebdir/common.w"
+#line 1036 "cwebdir/common.w"
{if(changing&&include_depth==change_depth)
#line 358 "cwebdir/comm-w2c.ch"
printf(_(". (l. %d of change file)\n"),change_line);
else if(include_depth==0)printf(_(". (l. %d)\n"),cur_line);
else printf(_(". (l. %d of include file %s)\n"),cur_line,cur_file_name);
-#line 1049 "cwebdir/common.w"
+#line 1041 "cwebdir/common.w"
l= (loc>=limit?limit:loc);
if(l> buffer){
for(k= buffer;k<l;k++)
if(*k=='\t')putchar(' ');
else putchar(*k);
-putchar('\n');
+new_line;
for(k= buffer;k<l;k++)putchar(' ');
}
for(k= l;k<limit;k++)putchar(*k);
@@ -1314,13 +1310,13 @@ putchar(' ');
}
/*:67*/
-#line 1031 "cwebdir/common.w"
+#line 1023 "cwebdir/common.w"
update_terminal;mark_error;
}
/*:66*//*68:*/
-#line 1076 "cwebdir/common.w"
+#line 1068 "cwebdir/common.w"
int wrap_up(void){
if(show_progress)new_line;
@@ -1328,26 +1324,26 @@ if(show_stats)
print_stats();
#line 388 "cwebdir/comm-w2c.ch"
/*69:*/
-#line 1086 "cwebdir/common.w"
+#line 1078 "cwebdir/common.w"
switch(history){
-#line 412 "cwebdir/comm-w2c.ch"
+#line 414 "cwebdir/comm-w2c.ch"
case spotless:
if(show_happiness)puts(_("(No errors were found.)"));break;
case harmless_message:
puts(_("(Did you see the warning message above?)"));break;
case error_message:
puts(_("(Pardon me, but I think I spotted something wrong.)"));break;
-case fatal_message:
+case fatal_message:default:
puts(_("(That was a fatal error, my friend.)"));
-#line 1094 "cwebdir/common.w"
+#line 1088 "cwebdir/common.w"
}
/*:69*/
#line 388 "cwebdir/comm-w2c.ch"
/*88:*/
-#line 662 "cwebdir/comm-w2c.ch"
+#line 664 "cwebdir/comm-w2c.ch"
if(C_file)fclose(C_file);
if(tex_file)fclose(tex_file);
@@ -1360,16 +1356,16 @@ remove(check_file_name);
#line 396 "cwebdir/comm-w2c.ch"
switch(history){
+case spotless:return RETURN_OK;
case harmless_message:return RETURN_WARN;
case error_message:return RETURN_ERROR;
-case fatal_message:return RETURN_FAIL;
-default:return RETURN_OK;
+case fatal_message:default:return RETURN_FAIL;
}
-#line 1084 "cwebdir/common.w"
+#line 1076 "cwebdir/common.w"
}
/*:68*//*70:*/
-#line 1102 "cwebdir/common.w"
+#line 1096 "cwebdir/common.w"
void
fatal(
const char*s,const char*t)
@@ -1380,19 +1376,19 @@ history= fatal_message;exit(wrap_up());
}
/*:70*//*71:*/
-#line 1113 "cwebdir/common.w"
+#line 1107 "cwebdir/common.w"
void
overflow(
const char*t)
{
-#line 425 "cwebdir/comm-w2c.ch"
+#line 427 "cwebdir/comm-w2c.ch"
printf(_("\n! Sorry, %s capacity exceeded"),t);fatal("","");
-#line 1118 "cwebdir/common.w"
+#line 1112 "cwebdir/common.w"
}
/*:71*//*75:*/
-#line 1167 "cwebdir/common.w"
+#line 1160 "cwebdir/common.w"
static void
scan_args(void)
@@ -1403,40 +1399,39 @@ register char*s;
boolean found_web= false,found_change= false,found_out= false;
-#line 462 "cwebdir/comm-w2c.ch"
-
+#line 471 "cwebdir/comm-w2c.ch"
+strcpy(change_file_name,"/dev/null");
#if defined DEV_NULL
strncpy(change_file_name,DEV_NULL,max_file_name_length-2);
change_file_name[max_file_name_length-2]= '\0';
#elif defined _DEV_NULL
strncpy(change_file_name,_DEV_NULL,max_file_name_length-2);
change_file_name[max_file_name_length-2]= '\0';
-#else
-strcpy(change_file_name,"/dev/null");
#endif
-#line 1178 "cwebdir/common.w"
+#line 1171 "cwebdir/common.w"
while(--argc> 0){
if((**(++argv)=='-'||**argv=='+')&&*(*argv+1))/*80:*/
-#line 510 "cwebdir/comm-w2c.ch"
+#line 1250 "cwebdir/common.w"
+#line 514 "cwebdir/comm-w2c.ch"
{
if(strcmp("-help",*argv)==0||strcmp("--help",*argv)==0)
/*95:*/
-#line 799 "cwebdir/comm-w2c.ch"
+#line 801 "cwebdir/comm-w2c.ch"
cb_usagehelp(program==ctangle?CTANGLEHELP:
program==cweave?CWEAVEHELP:CTWILLHELP,NULL);
/*:95*/
-#line 514 "cwebdir/comm-w2c.ch"
+#line 517 "cwebdir/comm-w2c.ch"
if(strcmp("-version",*argv)==0||strcmp("--version",*argv)==0)
/*98:*/
-#line 846 "cwebdir/comm-w2c.ch"
+#line 849 "cwebdir/comm-w2c.ch"
printversionandexit(cb_banner,
program==ctwill?"Donald E. Knuth":"Silvio Levy and Donald E. Knuth",
@@ -1444,72 +1439,68 @@ NULL,"Contemporary development on https://github.com/ascherer/cweb.\n");
/*:98*/
-#line 517 "cwebdir/comm-w2c.ch"
+#line 520 "cwebdir/comm-w2c.ch"
if(strcmp("-verbose",*argv)==0||strcmp("--verbose",*argv)==0)
-{show_banner= show_progress= show_happiness= 1;continue;}
+strcpy(*argv,"-v");
if(strcmp("-quiet",*argv)==0||strcmp("--quiet",*argv)==0)
-{show_banner= show_progress= show_happiness= 0;continue;}
-for(dot_pos= *argv+1;*dot_pos> '\0';dot_pos++)
-if(*dot_pos=='v'){
-show_banner= show_progress= show_happiness= true;
-}else
-if(*dot_pos=='q'){
-show_banner= show_progress= show_happiness= false;
-}else
-if(*dot_pos=='d'){
+strcpy(*argv,"-q");
+for(dot_pos= *argv+1;*dot_pos> '\0';dot_pos++){
+switch(*dot_pos){
+case'v':show_banner= show_progress= show_happiness= true;continue;
+case'q':show_banner= show_progress= show_happiness= false;continue;
+case'd':
if(sscanf(++dot_pos,"%u",&kpathsea_debug)!=1)/*81:*/
-#line 555 "cwebdir/comm-w2c.ch"
+#line 557 "cwebdir/comm-w2c.ch"
cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
-#line 1275 "cwebdir/common.w"
+#line 1265 "cwebdir/common.w"
-#line 563 "cwebdir/comm-w2c.ch"
+#line 565 "cwebdir/comm-w2c.ch"
/*:81*/
#line 532 "cwebdir/comm-w2c.ch"
while(isdigit(*dot_pos))dot_pos++;
dot_pos--;
-}else
-if(*dot_pos=='l'){
-use_language= ++dot_pos;
+continue;
+case'l':use_language= ++dot_pos;break;
+default:flags[(eight_bits)*dot_pos]= flag_change;continue;
+}
break;
-}else
-#line 1261 "cwebdir/common.w"
- flags[(eight_bits)*dot_pos]= flag_change;
}
+}
+#line 1253 "cwebdir/common.w"
-#line 555 "cwebdir/comm-w2c.ch"
+#line 557 "cwebdir/comm-w2c.ch"
/*:80*/
-#line 1179 "cwebdir/common.w"
+#line 1172 "cwebdir/common.w"
else{
s= name_pos= *argv;dot_pos= NULL;
-#line 482 "cwebdir/comm-w2c.ch"
-while(*s){
+#line 488 "cwebdir/comm-w2c.ch"
+while(*s)
if(*s=='.')dot_pos= s++;
else if(*s==DIR_SEPARATOR||*s==DEVICE_SEPARATOR||*s=='/')
dot_pos= NULL,name_pos= ++s;
else s++;
-}
-#line 1187 "cwebdir/common.w"
+#line 1179 "cwebdir/common.w"
if(!found_web)/*77:*/
-#line 1206 "cwebdir/common.w"
+#line 1198 "cwebdir/common.w"
{
if(s-*argv> max_file_name_length-5)
/*82:*/
-#line 563 "cwebdir/comm-w2c.ch"
+#line 565 "cwebdir/comm-w2c.ch"
fatal(_("! Filename too long\n"),*argv);
-#line 1277 "cwebdir/common.w"
+#line 1267 "cwebdir/common.w"
/*:82*/
-#line 1209 "cwebdir/common.w"
+#line 1201 "cwebdir/common.w"
if(dot_pos==NULL)
sprintf(web_file_name,"%s.w",*argv);
@@ -1517,7 +1508,7 @@ else{
strcpy(web_file_name,*argv);
*dot_pos= 0;
}
-#line 1217 "cwebdir/common.w"
+#line 1209 "cwebdir/common.w"
sprintf(tex_file_name,"%s.tex",name_pos);
sprintf(idx_file_name,"%s.idx",name_pos);
sprintf(scn_file_name,"%s.scn",name_pos);
@@ -1526,22 +1517,22 @@ found_web= true;
}
/*:77*/
-#line 1188 "cwebdir/common.w"
+#line 1180 "cwebdir/common.w"
else if(!found_change)/*78:*/
-#line 1224 "cwebdir/common.w"
+#line 1216 "cwebdir/common.w"
{
if(strcmp(*argv,"-")!=0){
if(s-*argv> max_file_name_length-4)
/*82:*/
-#line 563 "cwebdir/comm-w2c.ch"
+#line 565 "cwebdir/comm-w2c.ch"
fatal(_("! Filename too long\n"),*argv);
-#line 1277 "cwebdir/common.w"
+#line 1267 "cwebdir/common.w"
/*:82*/
-#line 1228 "cwebdir/common.w"
+#line 1220 "cwebdir/common.w"
if(dot_pos==NULL)
sprintf(change_file_name,"%s.ch",*argv);
@@ -1551,21 +1542,21 @@ found_change= true;
}
/*:78*/
-#line 1189 "cwebdir/common.w"
+#line 1181 "cwebdir/common.w"
else if(!found_out)/*79:*/
-#line 1236 "cwebdir/common.w"
+#line 1228 "cwebdir/common.w"
{
if(s-*argv> max_file_name_length-5)
/*82:*/
-#line 563 "cwebdir/comm-w2c.ch"
+#line 565 "cwebdir/comm-w2c.ch"
fatal(_("! Filename too long\n"),*argv);
-#line 1277 "cwebdir/common.w"
+#line 1267 "cwebdir/common.w"
/*:82*/
-#line 1239 "cwebdir/common.w"
+#line 1231 "cwebdir/common.w"
if(dot_pos==NULL){
sprintf(tex_file_name,"%s.tex",*argv);
@@ -1585,36 +1576,36 @@ found_out= true;
}
/*:79*/
-#line 1190 "cwebdir/common.w"
+#line 1182 "cwebdir/common.w"
else/*81:*/
-#line 555 "cwebdir/comm-w2c.ch"
+#line 557 "cwebdir/comm-w2c.ch"
cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
-#line 1275 "cwebdir/common.w"
+#line 1265 "cwebdir/common.w"
-#line 563 "cwebdir/comm-w2c.ch"
+#line 565 "cwebdir/comm-w2c.ch"
/*:81*/
-#line 1191 "cwebdir/common.w"
+#line 1183 "cwebdir/common.w"
}
}
if(!found_web)/*81:*/
-#line 555 "cwebdir/comm-w2c.ch"
+#line 557 "cwebdir/comm-w2c.ch"
cb_usage(program==ctangle?"ctangle":program==cweave?"cweave":"ctwill");
-#line 1275 "cwebdir/common.w"
+#line 1265 "cwebdir/common.w"
-#line 563 "cwebdir/comm-w2c.ch"
+#line 565 "cwebdir/comm-w2c.ch"
/*:81*/
-#line 1194 "cwebdir/common.w"
+#line 1186 "cwebdir/common.w"
}
/*:75*//*97:*/
-#line 812 "cwebdir/comm-w2c.ch"
+#line 814 "cwebdir/comm-w2c.ch"
static void cb_usage(const_string str)
{
@@ -1635,6 +1626,7 @@ bug_email= "tex-k@tug.org";
textdomain("web2c-help");
while(*message){
+
printf("%s\n",strcmp("",*message)?_(*message):*message);
++message;
}
@@ -1647,11 +1639,10 @@ history= spotless;exit(wrap_up());
}
/*:97*//*99:*/
-#line 854 "cwebdir/comm-w2c.ch"
+#line 857 "cwebdir/comm-w2c.ch"
void cb_show_banner(void)
{
-assert(cb_banner[0]!='\0');
textdomain("cweb-tl");
printf("%s%s\n",_(cb_banner),versionstring);