#include <setjmp.h>
jmp_buf jmp9998, jmp32; int lab31=0;
#ifdef TEXMF_DEBUG
#endif /* TEXMF_DEBUG */
#define BIBTEX
#include "cpascal.h"
/* 9998 9999 31 32 9932 */
#define hashprime ( 30011 )
#define hashsize ( 35307L )
#define hashbase ( 1 )
#define hashmax ( hashbase + hashsize - 1 )
#define hashmaxp1 ( hashmax + 1 )
#define maxhashvalue ( hashprime + hashprime + 125 )
#define quotenextfn ( hashbase - 1 )
#define endofdef ( hashmax + 1 )
#define undefined ( hashmax + 1 )
#define bufsize ( 5000 )
#define minprintline ( 3 )
#define maxprintline ( 79 )
#define auxstacksize ( 20 )
#define MAXBIBFILES ( 20 )
#define POOLSIZE ( 65000L )
#define maxstrings ( 35000L )
#define maxcites ( 5000 )
#define WIZFNSPACE ( 3000 )
#define singlefnspace ( 100 )
#define MAXENTINTS ( 3000 )
#define MAXENTSTRS ( 3000 )
#define entstrsize ( 250 )
#define globstrsize ( 5000 )
#define MAXFIELDS ( 5000 )
#define litstksize ( 100 )
#define numbltinfns ( 37 )
typedef unsigned char ASCIIcode ;
typedef char lextype ;
typedef char idtype ;
typedef text /* of ASCIIcode */ alphafile ;
typedef integer bufpointer ;
typedef ASCIIcode buftype [bufsize + 1] ;
typedef integer poolpointer ;
typedef integer strnumber ;
typedef integer hashloc ;
typedef integer hashpointer ;
typedef char strilk ;
typedef char pdsloc ;
typedef char pdslen ;
typedef char pdstype [13] ;
typedef integer auxnumber ;
typedef integer bibnumber ;
typedef integer citenumber ;
typedef char fnclass ;
typedef integer wizfnloc ;
typedef integer intentloc ;
typedef integer strentloc ;
typedef char strglobloc ;
typedef integer fieldloc ;
typedef integer hashptr2 ;
typedef integer litstkloc ;
typedef char stktype ;
typedef integer bltinrange ;
text standardinput, standardoutput ;
integer maxentints ;
integer maxentstrs ;
integer poolsize ;
integer maxbibfiles ;
integer wizfnspace ;
integer maxfields ;
integer bad ;
char history ;
integer errcount ;
ASCIIcode xord[256] ;
ASCIIcode xchr[256] ;
lextype lexclass[256] ;
idtype idclass[256] ;
integer charwidth[256] ;
integer stringwidth ;
ASCIIcode * nameoffile ;
integer namelength ;
integer nameptr ;
buftype buffer ;
bufpointer last ;
buftype svbuffer ;
bufpointer svptr1 ;
bufpointer svptr2 ;
integer tmpptr, tmpendptr ;
ASCIIcode * strpool ;
poolpointer strstart[maxstrings + 1] ;
poolpointer poolptr ;
strnumber strptr ;
strnumber strnum ;
poolpointer pptr1, pptr2 ;
hashpointer
#define hashnext (zzzaa - (int)(hashbase))
zzzaa[hashmax - hashbase + 1] ;
strnumber
#define hashtext (zzzab - (int)(hashbase))
zzzab[hashmax - hashbase + 1] ;
strilk
#define hashilk (zzzac - (int)(hashbase))
zzzac[hashmax - hashbase + 1] ;
integer
#define ilkinfo (zzzad - (int)(hashbase))
zzzad[hashmax - hashbase + 1] ;
integer hashused ;
boolean hashfound ;
hashloc dummyloc ;
strnumber sauxextension ;
strnumber slogextension ;
strnumber sbblextension ;
strnumber sbstextension ;
strnumber sbibextension ;
strnumber sbstarea ;
strnumber sbibarea ;
hashloc predefloc ;
integer commandnum ;
bufpointer bufptr1 ;
bufpointer bufptr2 ;
char scanresult ;
integer tokenvalue ;
integer auxnamelength ;
alphafile auxfile[auxstacksize + 1] ;
strnumber auxlist[auxstacksize + 1] ;
auxnumber auxptr ;
integer auxlnstack[auxstacksize + 1] ;
strnumber toplevstr ;
alphafile logfile ;
alphafile bblfile ;
strnumber * biblist ;
bibnumber bibptr ;
bibnumber numbibfiles ;
boolean bibseen ;
alphafile * bibfile ;
boolean bstseen ;
strnumber bststr ;
alphafile bstfile ;
strnumber citelist[maxcites + 1] ;
citenumber citeptr ;
citenumber entryciteptr ;
citenumber numcites ;
citenumber oldnumcites ;
boolean citationseen ;
hashloc citeloc ;
hashloc lcciteloc ;
hashloc lcxciteloc ;
boolean citefound ;
boolean allentries ;
citenumber allmarker ;
integer bbllinenum ;
integer bstlinenum ;
hashloc fnloc ;
hashloc wizloc ;
hashloc literalloc ;
hashloc macronameloc ;
hashloc macrodefloc ;
fnclass
#define fntype (zzzae - (int)(hashbase))
zzzae[hashmax - hashbase + 1] ;
wizfnloc wizdefptr ;
wizfnloc wizfnptr ;
hashptr2 * wizfunctions ;
intentloc intentptr ;
integer * entryints ;
intentloc numentints ;
strentloc strentptr ;
ASCIIcode * entrystrs ;
strentloc numentstrs ;
char strglbptr ;
strnumber glbstrptr[20] ;
ASCIIcode globalstrs[20][globstrsize + 1] ;
integer glbstrend[20] ;
char numglbstrs ;
fieldloc fieldptr ;
fieldloc fieldparentptr, fieldendptr ;
citenumber citeparentptr, citexptr ;
strnumber * fieldinfo ;
fieldloc numfields ;
fieldloc numpredefinedfields ;
fieldloc crossrefnum ;
boolean nofields ;
boolean entryseen ;
boolean readseen ;
boolean readperformed ;
boolean readingcompleted ;
boolean readcompleted ;
integer implfnnum ;
integer biblinenum ;
hashloc entrytypeloc ;
hashptr2 typelist[maxcites + 1] ;
boolean typeexists ;
boolean entryexists[maxcites + 1] ;
boolean storeentry ;
hashloc fieldnameloc ;
hashloc fieldvalloc ;
boolean storefield ;
boolean storetoken ;
ASCIIcode rightouterdelim ;
ASCIIcode rightstrdelim ;
boolean atbibcommand ;
hashloc curmacroloc ;
strnumber citeinfo[maxcites + 1] ;
boolean citehashfound ;
bibnumber preambleptr ;
bibnumber numpreamblestrings ;
integer bibbracelevel ;
integer litstack[litstksize + 1] ;
stktype litstktype[litstksize + 1] ;
litstkloc litstkptr ;
strnumber cmdstrptr ;
integer entchrptr ;
integer globchrptr ;
buftype exbuf ;
bufpointer exbufptr ;
bufpointer exbuflength ;
buftype outbuf ;
bufpointer outbufptr ;
bufpointer outbuflength ;
boolean messwithentries ;
citenumber sortciteptr ;
strentloc sortkeynum ;
integer bracelevel ;
hashloc bequals ;
hashloc bgreaterthan ;
hashloc blessthan ;
hashloc bplus ;
hashloc bminus ;
hashloc bconcatenate ;
hashloc bgets ;
hashloc baddperiod ;
hashloc bcalltype ;
hashloc bchangecase ;
hashloc bchrtoint ;
hashloc bcite ;
hashloc bduplicate ;
hashloc bempty ;
hashloc bformatname ;
hashloc bif ;
hashloc binttochr ;
hashloc binttostr ;
hashloc bmissing ;
hashloc bnewline ;
hashloc bnumnames ;
hashloc bpop ;
hashloc bpreamble ;
hashloc bpurify ;
hashloc bquote ;
hashloc bskip ;
hashloc bstack ;
hashloc bsubstring ;
hashloc bswap ;
hashloc btextlength ;
hashloc btextprefix ;
hashloc btopstack ;
hashloc btype ;
hashloc bwarning ;
hashloc bwhile ;
hashloc bwidth ;
hashloc bwrite ;
hashloc bdefault ;
#ifndef NO_BIBTEX_STAT
hashloc bltinloc[numbltinfns + 1] ;
integer executioncount[numbltinfns + 1] ;
integer totalexcount ;
bltinrange bltinptr ;
#endif /* not NO_BIBTEX_STAT */
strnumber snull ;
strnumber sdefault ;
strnumber st ;
strnumber sl ;
strnumber su ;
strnumber * spreamble ;
integer poplit1, poplit2, poplit3 ;
stktype poptyp1, poptyp2, poptyp3 ;
poolpointer spptr ;
poolpointer spxptr1, spxptr2 ;
poolpointer spend ;
poolpointer splength, sp2length ;
integer spbracelevel ;
bufpointer exbufxptr, exbufyptr ;
hashloc controlseqloc ;
boolean precedingwhite ;
boolean andfound ;
integer numnames ;
bufpointer namebfptr ;
bufpointer namebfxptr, namebfyptr ;
integer nmbracelevel ;
bufpointer nametok[bufsize + 1] ;
ASCIIcode namesepchar[bufsize + 1] ;
bufpointer numtokens ;
boolean tokenstarting ;
boolean alphafound ;
boolean doubleletter, endofgroup, tobewritten ;
bufpointer firststart ;
bufpointer firstend ;
bufpointer lastend ;
bufpointer vonstart ;
bufpointer vonend ;
bufpointer jrend ;
bufpointer curtoken, lasttoken ;
boolean usedefault ;
bufpointer numcommas ;
bufpointer comma1, comma2 ;
bufpointer numtextchars ;
char conversiontype ;
boolean prevcolon ;
cinttype verbose ;
integer mincrossrefs ;
#include "bibtex.h"
void
#ifdef HAVE_PROTOTYPES
printanewline ( void )
#else
printanewline ( )
#endif
{
putc ('\n', logfile );
putc ('\n', standardoutput );
}
void
#ifdef HAVE_PROTOTYPES
markwarning ( void )
#else
markwarning ( )
#endif
{
if ( ( history == 1 ) )
errcount = errcount + 1 ;
else if ( ( history == 0 ) )
{
history = 1 ;
errcount = 1 ;
}
}
void
#ifdef HAVE_PROTOTYPES
markerror ( void )
#else
markerror ( )
#endif
{
if ( ( history < 2 ) )
{
history = 2 ;
errcount = 1 ;
}
else errcount = errcount + 1 ;
}
void
#ifdef HAVE_PROTOTYPES
markfatal ( void )
#else
markfatal ( )
#endif
{
history = 3 ;
}
void
#ifdef HAVE_PROTOTYPES
printoverflow ( void )
#else
printoverflow ( )
#endif
{
{
Fputs( logfile , "Sorry---you've exceeded BibTeX's " ) ;
Fputs( standardoutput , "Sorry---you've exceeded BibTeX's " ) ;
}
markfatal () ;
}
void
#ifdef HAVE_PROTOTYPES
printconfusion ( void )
#else
printconfusion ( )
#endif
{
{
fprintf( logfile , "%s\n", "---this can't happen" ) ;
fprintf( standardoutput , "%s\n", "---this can't happen" ) ;
}
{
fprintf( logfile , "%s\n", "*Please notify the BibTeX maintainer*" ) ;
fprintf( standardoutput , "%s\n", "*Please notify the BibTeX maintainer*" ) ;
}
markfatal () ;
}
void
#ifdef HAVE_PROTOTYPES
bufferoverflow ( void )
#else
bufferoverflow ( )
#endif
{
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "buffer size " , (long)bufsize ) ;
fprintf( standardoutput , "%s%ld\n", "buffer size " , (long)bufsize ) ;
}
longjmp(jmp9998,1) ;
}
}
boolean
#ifdef HAVE_PROTOTYPES
zinputln ( alphafile f )
#else
zinputln ( f )
alphafile f ;
#endif
{
/* 15 */ register boolean Result; last = 0 ;
if ( ( eof ( f ) ) )
Result = false ;
else {
while ( ( ! eoln ( f ) ) ) {
if ( ( last >= bufsize ) )
bufferoverflow () ;
buffer [last ]= xord [getc ( f ) ];
last = last + 1 ;
}
vgetc ( f ) ;
while ( ( last > 0 ) ) if ( ( lexclass [buffer [last - 1 ]]== 1 ) )
last = last - 1 ;
else goto lab15 ;
lab15: Result = true ;
}
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
zoutpoolstr ( alphafile f , strnumber s )
#else
zoutpoolstr ( f , s )
alphafile f ;
strnumber s ;
#endif
{
poolpointer i ;
if ( ( ( s < 0 ) || ( s >= strptr + 3 ) || ( s >= maxstrings ) ) )
{
{
fprintf( logfile , "%s%ld", "Illegal string number:" , (long)s ) ;
fprintf( standardoutput , "%s%ld", "Illegal string number:" , (long)s ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
{register integer for_end; i = strstart [s ];for_end = strstart [s + 1
]- 1 ; if ( i <= for_end) do
putc ( xchr [strpool [i ]], f );
while ( i++ < for_end ) ;}
}
void
#ifdef HAVE_PROTOTYPES
zprintapoolstr ( strnumber s )
#else
zprintapoolstr ( s )
strnumber s ;
#endif
{
outpoolstr ( standardoutput , s ) ;
outpoolstr ( logfile , s ) ;
}
void
#ifdef HAVE_PROTOTYPES
pooloverflow ( void )
#else
pooloverflow ( )
#endif
{
BIBXRETALLOC ( "str_pool" , strpool , ASCIIcode , poolsize , poolsize +
POOLSIZE ) ;
}
void
#ifdef HAVE_PROTOTYPES
filenmsizeoverflow ( void )
#else
filenmsizeoverflow ( )
#endif
{
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "file name size " , (long)maxint ) ;
fprintf( standardoutput , "%s%ld\n", "file name size " , (long)maxint ) ;
}
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
zouttoken ( alphafile f )
#else
zouttoken ( f )
alphafile f ;
#endif
{
bufpointer i ;
i = bufptr1 ;
while ( ( i < bufptr2 ) ) {
putc ( xchr [buffer [i ]], f );
i = i + 1 ;
}
}
void
#ifdef HAVE_PROTOTYPES
printatoken ( void )
#else
printatoken ( )
#endif
{
outtoken ( standardoutput ) ;
outtoken ( logfile ) ;
}
void
#ifdef HAVE_PROTOTYPES
printbadinputline ( void )
#else
printbadinputline ( )
#endif
{
bufpointer bfptr ;
{
Fputs( logfile , " : " ) ;
Fputs( standardoutput , " : " ) ;
}
bfptr = 0 ;
while ( ( bfptr < bufptr2 ) ) {
if ( ( lexclass [buffer [bfptr ]]== 1 ) )
{
putc ( xchr [32 ], logfile );
putc ( xchr [32 ], standardoutput );
}
else {
putc ( xchr [buffer [bfptr ]], logfile );
putc ( xchr [buffer [bfptr ]], standardoutput );
}
bfptr = bfptr + 1 ;
}
printanewline () ;
{
Fputs( logfile , " : " ) ;
Fputs( standardoutput , " : " ) ;
}
bfptr = 0 ;
while ( ( bfptr < bufptr2 ) ) {
{
putc ( xchr [32 ], logfile );
putc ( xchr [32 ], standardoutput );
}
bfptr = bfptr + 1 ;
}
bfptr = bufptr2 ;
while ( ( bfptr < last ) ) {
if ( ( lexclass [buffer [bfptr ]]== 1 ) )
{
putc ( xchr [32 ], logfile );
putc ( xchr [32 ], standardoutput );
}
else {
putc ( xchr [buffer [bfptr ]], logfile );
putc ( xchr [buffer [bfptr ]], standardoutput );
}
bfptr = bfptr + 1 ;
}
printanewline () ;
bfptr = 0 ;
while ( ( ( bfptr < bufptr2 ) && ( lexclass [buffer [bfptr ]]== 1 ) ) )
bfptr = bfptr + 1 ;
if ( ( bfptr == bufptr2 ) )
{
fprintf( logfile , "%s\n", "(Error may have been on previous line)" ) ;
fprintf( standardoutput , "%s\n", "(Error may have been on previous line)" ) ;
}
markerror () ;
}
void
#ifdef HAVE_PROTOTYPES
printskippingwhateverremains ( void )
#else
printskippingwhateverremains ( )
#endif
{
{
Fputs( logfile , "I'm skipping whatever remains of this " ) ;
Fputs( standardoutput , "I'm skipping whatever remains of this " ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
samtoolongfilenameprint ( void )
#else
samtoolongfilenameprint ( )
#endif
{
Fputs( standardoutput , "File name `" ) ;
nameptr = 1 ;
while ( ( nameptr <= auxnamelength ) ) {
putc ( nameoffile [nameptr ], standardoutput );
nameptr = nameptr + 1 ;
}
fprintf( standardoutput , "%s\n", "' is too long" ) ;
}
void
#ifdef HAVE_PROTOTYPES
samwrongfilenameprint ( void )
#else
samwrongfilenameprint ( )
#endif
{
Fputs( standardoutput , "I couldn't open file name `" ) ;
nameptr = 1 ;
while ( ( nameptr <= namelength ) ) {
putc ( nameoffile [nameptr ], standardoutput );
nameptr = nameptr + 1 ;
}
fprintf( standardoutput , "%c\n", '\'' ) ;
}
void
#ifdef HAVE_PROTOTYPES
printauxname ( void )
#else
printauxname ( )
#endif
{
printapoolstr ( auxlist [auxptr ]) ;
printanewline () ;
}
void
#ifdef HAVE_PROTOTYPES
auxerrprint ( void )
#else
auxerrprint ( )
#endif
{
{
fprintf( logfile , "%s%ld%s", "---line " , (long)auxlnstack [auxptr ], " of file " ) ;
fprintf( standardoutput , "%s%ld%s", "---line " , (long)auxlnstack [auxptr ], " of file " ) ;
}
printauxname () ;
printbadinputline () ;
printskippingwhateverremains () ;
{
fprintf( logfile , "%s\n", "command" ) ;
fprintf( standardoutput , "%s\n", "command" ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
zauxerrillegalanotherprint ( integer cmdnum )
#else
zauxerrillegalanotherprint ( cmdnum )
integer cmdnum ;
#endif
{
{
Fputs( logfile , "Illegal, another \\bib" ) ;
Fputs( standardoutput , "Illegal, another \\bib" ) ;
}
switch ( ( cmdnum ) )
{case 0 :
{
Fputs( logfile , "data" ) ;
Fputs( standardoutput , "data" ) ;
}
break ;
case 1 :
{
Fputs( logfile , "style" ) ;
Fputs( standardoutput , "style" ) ;
}
break ;
default:
{
{
Fputs( logfile , "Illegal auxiliary-file command" ) ;
Fputs( standardoutput , "Illegal auxiliary-file command" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
break ;
}
{
Fputs( logfile , " command" ) ;
Fputs( standardoutput , " command" ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
auxerrnorightbraceprint ( void )
#else
auxerrnorightbraceprint ( )
#endif
{
{
fprintf( logfile , "%s%c%c", "No \"" , xchr [125 ], '"' ) ;
fprintf( standardoutput , "%s%c%c", "No \"" , xchr [125 ], '"' ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
auxerrstuffafterrightbraceprint ( void )
#else
auxerrstuffafterrightbraceprint ( )
#endif
{
{
fprintf( logfile , "%s%c%c", "Stuff after \"" , xchr [125 ], '"' ) ;
fprintf( standardoutput , "%s%c%c", "Stuff after \"" , xchr [125 ], '"' ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
auxerrwhitespaceinargumentprint ( void )
#else
auxerrwhitespaceinargumentprint ( )
#endif
{
{
Fputs( logfile , "White space in argument" ) ;
Fputs( standardoutput , "White space in argument" ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
printbibname ( void )
#else
printbibname ( )
#endif
{
printapoolstr ( biblist [bibptr ]) ;
printapoolstr ( sbibextension ) ;
printanewline () ;
}
void
#ifdef HAVE_PROTOTYPES
printbstname ( void )
#else
printbstname ( )
#endif
{
printapoolstr ( bststr ) ;
printapoolstr ( sbstextension ) ;
printanewline () ;
}
void
#ifdef HAVE_PROTOTYPES
hashciteconfusion ( void )
#else
hashciteconfusion ( )
#endif
{
{
{
Fputs( logfile , "Cite hash error" ) ;
Fputs( standardoutput , "Cite hash error" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
zcheckciteoverflow ( citenumber lastcite )
#else
zcheckciteoverflow ( lastcite )
citenumber lastcite ;
#endif
{
if ( ( lastcite == maxcites ) )
{
printapoolstr ( hashtext [citeloc ]) ;
{
fprintf( logfile , "%s\n", " is the key:" ) ;
fprintf( standardoutput , "%s\n", " is the key:" ) ;
}
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "number of cite keys " , (long)maxcites ) ;
fprintf( standardoutput , "%s%ld\n", "number of cite keys " , (long)maxcites ) ;
}
longjmp(jmp9998,1) ;
}
}
}
void
#ifdef HAVE_PROTOTYPES
auxend1errprint ( void )
#else
auxend1errprint ( )
#endif
{
{
Fputs( logfile , "I found no " ) ;
Fputs( standardoutput , "I found no " ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
auxend2errprint ( void )
#else
auxend2errprint ( )
#endif
{
{
Fputs( logfile , "---while reading file " ) ;
Fputs( standardoutput , "---while reading file " ) ;
}
printauxname () ;
markerror () ;
}
void
#ifdef HAVE_PROTOTYPES
bstlnnumprint ( void )
#else
bstlnnumprint ( )
#endif
{
{
fprintf( logfile , "%s%ld%s", "--line " , (long)bstlinenum , " of file " ) ;
fprintf( standardoutput , "%s%ld%s", "--line " , (long)bstlinenum , " of file " ) ;
}
printbstname () ;
}
void
#ifdef HAVE_PROTOTYPES
bsterrprintandlookforblankline ( void )
#else
bsterrprintandlookforblankline ( )
#endif
{
{
putc ( '-' , logfile );
putc ( '-' , standardoutput );
}
bstlnnumprint () ;
printbadinputline () ;
while ( ( last != 0 ) ) if ( ( ! inputln ( bstfile ) ) )
longjmp(jmp32,1) ;
else bstlinenum = bstlinenum + 1 ;
bufptr2 = last ;
}
void
#ifdef HAVE_PROTOTYPES
bstwarnprint ( void )
#else
bstwarnprint ( )
#endif
{
bstlnnumprint () ;
markwarning () ;
}
void
#ifdef HAVE_PROTOTYPES
eatbstprint ( void )
#else
eatbstprint ( )
#endif
{
{
Fputs( logfile , "Illegal end of style file in command: " ) ;
Fputs( standardoutput , "Illegal end of style file in command: " ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
unknwnfunctionclassconfusion ( void )
#else
unknwnfunctionclassconfusion ( )
#endif
{
{
{
Fputs( logfile , "Unknown function class" ) ;
Fputs( standardoutput , "Unknown function class" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
zprintfnclass ( hashloc fnloc )
#else
zprintfnclass ( fnloc )
hashloc fnloc ;
#endif
{
switch ( ( fntype [fnloc ]) )
{case 0 :
{
Fputs( logfile , "built-in" ) ;
Fputs( standardoutput , "built-in" ) ;
}
break ;
case 1 :
{
Fputs( logfile , "wizard-defined" ) ;
Fputs( standardoutput , "wizard-defined" ) ;
}
break ;
case 2 :
{
Fputs( logfile , "integer-literal" ) ;
Fputs( standardoutput , "integer-literal" ) ;
}
break ;
case 3 :
{
Fputs( logfile , "string-literal" ) ;
Fputs( standardoutput , "string-literal" ) ;
}
break ;
case 4 :
{
Fputs( logfile , "field" ) ;
Fputs( standardoutput , "field" ) ;
}
break ;
case 5 :
{
Fputs( logfile , "integer-entry-variable" ) ;
Fputs( standardoutput , "integer-entry-variable" ) ;
}
break ;
case 6 :
{
Fputs( logfile , "string-entry-variable" ) ;
Fputs( standardoutput , "string-entry-variable" ) ;
}
break ;
case 7 :
{
Fputs( logfile , "integer-global-variable" ) ;
Fputs( standardoutput , "integer-global-variable" ) ;
}
break ;
case 8 :
{
Fputs( logfile , "string-global-variable" ) ;
Fputs( standardoutput , "string-global-variable" ) ;
}
break ;
default:
unknwnfunctionclassconfusion () ;
break ;
}
}
#ifdef TRACE
void
#ifdef HAVE_PROTOTYPES
ztraceprfnclass ( hashloc fnloc )
#else
ztraceprfnclass ( fnloc )
hashloc fnloc ;
#endif
{
switch ( ( fntype [fnloc ]) )
{case 0 :
{
Fputs( logfile , "built-in" ) ;
}
break ;
case 1 :
{
Fputs( logfile , "wizard-defined" ) ;
}
break ;
case 2 :
{
Fputs( logfile , "integer-literal" ) ;
}
break ;
case 3 :
{
Fputs( logfile , "string-literal" ) ;
}
break ;
case 4 :
{
Fputs( logfile , "field" ) ;
}
break ;
case 5 :
{
Fputs( logfile , "integer-entry-variable" ) ;
}
break ;
case 6 :
{
Fputs( logfile , "string-entry-variable" ) ;
}
break ;
case 7 :
{
Fputs( logfile , "integer-global-variable" ) ;
}
break ;
case 8 :
{
Fputs( logfile , "string-global-variable" ) ;
}
break ;
default:
unknwnfunctionclassconfusion () ;
break ;
}
}
#endif /* TRACE */
void
#ifdef HAVE_PROTOTYPES
idscanningconfusion ( void )
#else
idscanningconfusion ( )
#endif
{
{
{
Fputs( logfile , "Identifier scanning error" ) ;
Fputs( standardoutput , "Identifier scanning error" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
bstidprint ( void )
#else
bstidprint ( )
#endif
{
if ( ( scanresult == 0 ) )
{
fprintf( logfile , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" begins identifier, command: " ) ;
fprintf( standardoutput , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" begins identifier, command: " ) ;
}
else if ( ( scanresult == 2 ) )
{
fprintf( logfile , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" immediately follows identifier, command: " ) ;
fprintf( standardoutput , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" immediately follows identifier, command: " ) ;
}
else idscanningconfusion () ;
}
void
#ifdef HAVE_PROTOTYPES
bstleftbraceprint ( void )
#else
bstleftbraceprint ( )
#endif
{
{
fprintf( logfile , "%c%c%s", '"' , xchr [123 ], "\" is missing in command: " ) ;
fprintf( standardoutput , "%c%c%s", '"' , xchr [123 ], "\" is missing in command: " ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
bstrightbraceprint ( void )
#else
bstrightbraceprint ( )
#endif
{
{
fprintf( logfile , "%c%c%s", '"' , xchr [125 ], "\" is missing in command: " ) ;
fprintf( standardoutput , "%c%c%s", '"' , xchr [125 ], "\" is missing in command: " ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
zalreadyseenfunctionprint ( hashloc seenfnloc )
#else
zalreadyseenfunctionprint ( seenfnloc )
hashloc seenfnloc ;
#endif
{
/* 10 */ printapoolstr ( hashtext [seenfnloc ]) ;
{
Fputs( logfile , " is already a type \"" ) ;
Fputs( standardoutput , " is already a type \"" ) ;
}
printfnclass ( seenfnloc ) ;
{
fprintf( logfile , "%s\n", "\" function name" ) ;
fprintf( standardoutput , "%s\n", "\" function name" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
singlfnoverflow ( void )
#else
singlfnoverflow ( )
#endif
{
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "single function space " , (long)singlefnspace ) ;
fprintf( standardoutput , "%s%ld\n", "single function space " , (long)singlefnspace ) ;
}
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
biblnnumprint ( void )
#else
biblnnumprint ( )
#endif
{
{
fprintf( logfile , "%s%ld%s", "--line " , (long)biblinenum , " of file " ) ;
fprintf( standardoutput , "%s%ld%s", "--line " , (long)biblinenum , " of file " ) ;
}
printbibname () ;
}
void
#ifdef HAVE_PROTOTYPES
biberrprint ( void )
#else
biberrprint ( )
#endif
{
{
putc ( '-' , logfile );
putc ( '-' , standardoutput );
}
biblnnumprint () ;
printbadinputline () ;
printskippingwhateverremains () ;
if ( ( atbibcommand ) )
{
fprintf( logfile , "%s\n", "command" ) ;
fprintf( standardoutput , "%s\n", "command" ) ;
}
else {
fprintf( logfile , "%s\n", "entry" ) ;
fprintf( standardoutput , "%s\n", "entry" ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
bibwarnprint ( void )
#else
bibwarnprint ( )
#endif
{
biblnnumprint () ;
markwarning () ;
}
void
#ifdef HAVE_PROTOTYPES
zcheckfieldoverflow ( integer totalfields )
#else
zcheckfieldoverflow ( totalfields )
integer totalfields ;
#endif
{
fieldloc fptr ;
fieldloc startfields ;
if ( ( totalfields > maxfields ) )
{
startfields = maxfields ;
BIBXRETALLOC ( "field_info" , fieldinfo , strnumber , maxfields ,
totalfields + MAXFIELDS ) ;
{register integer for_end; fptr = startfields ;for_end = maxfields
; if ( fptr <= for_end) do
{
fieldinfo [fptr ]= 0 ;
}
while ( fptr++ < for_end ) ;}
}
}
void
#ifdef HAVE_PROTOTYPES
eatbibprint ( void )
#else
eatbibprint ( )
#endif
{
/* 10 */ {
{
Fputs( logfile , "Illegal end of database file" ) ;
Fputs( standardoutput , "Illegal end of database file" ) ;
}
biberrprint () ;
goto lab10 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
zbiboneoftwoprint ( ASCIIcode char1 , ASCIIcode char2 )
#else
zbiboneoftwoprint ( char1 , char2 )
ASCIIcode char1 ;
ASCIIcode char2 ;
#endif
{
/* 10 */ {
{
fprintf( logfile , "%s%c%s%c%c", "I was expecting a `" , xchr [char1 ], "' or a `" , xchr [char2 ], '\'' ) ;
fprintf( standardoutput , "%s%c%s%c%c", "I was expecting a `" , xchr [char1 ], "' or a `" , xchr [char2 ], '\'' ) ;
}
biberrprint () ;
goto lab10 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bibequalssignprint ( void )
#else
bibequalssignprint ( )
#endif
{
/* 10 */ {
{
fprintf( logfile , "%s%c%c", "I was expecting an \"" , xchr [61 ], '"' ) ;
fprintf( standardoutput , "%s%c%c", "I was expecting an \"" , xchr [61 ], '"' ) ;
}
biberrprint () ;
goto lab10 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bibunbalancedbracesprint ( void )
#else
bibunbalancedbracesprint ( )
#endif
{
/* 10 */ {
{
Fputs( logfile , "Unbalanced braces" ) ;
Fputs( standardoutput , "Unbalanced braces" ) ;
}
biberrprint () ;
goto lab10 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bibfieldtoolongprint ( void )
#else
bibfieldtoolongprint ( )
#endif
{
/* 10 */ {
{
fprintf( logfile , "%s%ld%s", "Your field is more than " , (long)bufsize , " characters" )
;
fprintf( standardoutput , "%s%ld%s", "Your field is more than " , (long)bufsize , " characters" ) ;
}
biberrprint () ;
goto lab10 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
macrowarnprint ( void )
#else
macrowarnprint ( )
#endif
{
{
Fputs( logfile , "Warning--string name \"" ) ;
Fputs( standardoutput , "Warning--string name \"" ) ;
}
printatoken () ;
{
Fputs( logfile , "\" is " ) ;
Fputs( standardoutput , "\" is " ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
bibidprint ( void )
#else
bibidprint ( )
#endif
{
if ( ( scanresult == 0 ) )
{
Fputs( logfile , "You're missing " ) ;
Fputs( standardoutput , "You're missing " ) ;
}
else if ( ( scanresult == 2 ) )
{
fprintf( logfile , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" immediately follows " ) ;
fprintf( standardoutput , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" immediately follows " ) ;
}
else idscanningconfusion () ;
}
void
#ifdef HAVE_PROTOTYPES
bibcmdconfusion ( void )
#else
bibcmdconfusion ( )
#endif
{
{
{
Fputs( logfile , "Unknown database-file command" ) ;
Fputs( standardoutput , "Unknown database-file command" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
citekeydisappearedconfusion ( void )
#else
citekeydisappearedconfusion ( )
#endif
{
{
{
Fputs( logfile , "A cite key disappeared" ) ;
Fputs( standardoutput , "A cite key disappeared" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
zbadcrossreferenceprint ( strnumber s )
#else
zbadcrossreferenceprint ( s )
strnumber s ;
#endif
{
{
Fputs( logfile , "--entry \"" ) ;
Fputs( standardoutput , "--entry \"" ) ;
}
printapoolstr ( citelist [citeptr ]) ;
{
fprintf( logfile , "%c\n", '"' ) ;
fprintf( standardoutput , "%c\n", '"' ) ;
}
{
Fputs( logfile , "refers to entry \"" ) ;
Fputs( standardoutput , "refers to entry \"" ) ;
}
printapoolstr ( s ) ;
}
void
#ifdef HAVE_PROTOTYPES
nonexistentcrossreferenceerror ( void )
#else
nonexistentcrossreferenceerror ( )
#endif
{
{
Fputs( logfile , "A bad cross reference-" ) ;
Fputs( standardoutput , "A bad cross reference-" ) ;
}
badcrossreferenceprint ( fieldinfo [fieldptr ]) ;
{
fprintf( logfile , "%s\n", "\", which doesn't exist" ) ;
fprintf( standardoutput , "%s\n", "\", which doesn't exist" ) ;
}
markerror () ;
}
void
#ifdef HAVE_PROTOTYPES
zprintmissingentry ( strnumber s )
#else
zprintmissingentry ( s )
strnumber s ;
#endif
{
{
Fputs( logfile , "Warning--I didn't find a database entry for \"" ) ;
Fputs( standardoutput , "Warning--I didn't find a database entry for \"" ) ;
}
printapoolstr ( s ) ;
{
fprintf( logfile , "%c\n", '"' ) ;
fprintf( standardoutput , "%c\n", '"' ) ;
}
markwarning () ;
}
void
#ifdef HAVE_PROTOTYPES
bstexwarnprint ( void )
#else
bstexwarnprint ( )
#endif
{
if ( ( messwithentries ) )
{
{
Fputs( logfile , " for entry " ) ;
Fputs( standardoutput , " for entry " ) ;
}
printapoolstr ( citelist [citeptr ]) ;
}
printanewline () ;
{
Fputs( logfile , "while executing-" ) ;
Fputs( standardoutput , "while executing-" ) ;
}
bstlnnumprint () ;
markerror () ;
}
void
#ifdef HAVE_PROTOTYPES
bstmildexwarnprint ( void )
#else
bstmildexwarnprint ( )
#endif
{
if ( ( messwithentries ) )
{
{
Fputs( logfile , " for entry " ) ;
Fputs( standardoutput , " for entry " ) ;
}
printapoolstr ( citelist [citeptr ]) ;
}
printanewline () ;
{
{
Fputs( logfile , "while executing" ) ;
Fputs( standardoutput , "while executing" ) ;
}
bstwarnprint () ;
}
}
void
#ifdef HAVE_PROTOTYPES
bstcantmesswithentriesprint ( void )
#else
bstcantmesswithentriesprint ( )
#endif
{
{
{
Fputs( logfile , "You can't mess with entries here" ) ;
Fputs( standardoutput , "You can't mess with entries here" ) ;
}
bstexwarnprint () ;
}
}
void
#ifdef HAVE_PROTOTYPES
illeglliteralconfusion ( void )
#else
illeglliteralconfusion ( )
#endif
{
{
{
Fputs( logfile , "Illegal literal type" ) ;
Fputs( standardoutput , "Illegal literal type" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
unknwnliteralconfusion ( void )
#else
unknwnliteralconfusion ( )
#endif
{
{
{
Fputs( logfile , "Unknown literal type" ) ;
Fputs( standardoutput , "Unknown literal type" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
zprintstklit ( integer stklt , stktype stktp )
#else
zprintstklit ( stklt , stktp )
integer stklt ;
stktype stktp ;
#endif
{
switch ( ( stktp ) )
{case 0 :
{
fprintf( logfile , "%ld%s", (long)stklt , " is an integer literal" ) ;
fprintf( standardoutput , "%ld%s", (long)stklt , " is an integer literal" ) ;
}
break ;
case 1 :
{
{
putc ( '"' , logfile );
putc ( '"' , standardoutput );
}
printapoolstr ( stklt ) ;
{
Fputs( logfile , "\" is a string literal" ) ;
Fputs( standardoutput , "\" is a string literal" ) ;
}
}
break ;
case 2 :
{
{
putc ( '`' , logfile );
putc ( '`' , standardoutput );
}
printapoolstr ( hashtext [stklt ]) ;
{
Fputs( logfile , "' is a function literal" ) ;
Fputs( standardoutput , "' is a function literal" ) ;
}
}
break ;
case 3 :
{
{
putc ( '`' , logfile );
putc ( '`' , standardoutput );
}
printapoolstr ( stklt ) ;
{
Fputs( logfile , "' is a missing field" ) ;
Fputs( standardoutput , "' is a missing field" ) ;
}
}
break ;
case 4 :
illeglliteralconfusion () ;
break ;
default:
unknwnliteralconfusion () ;
break ;
}
}
void
#ifdef HAVE_PROTOTYPES
zprintlit ( integer stklt , stktype stktp )
#else
zprintlit ( stklt , stktp )
integer stklt ;
stktype stktp ;
#endif
{
switch ( ( stktp ) )
{case 0 :
{
fprintf( logfile , "%ld\n", (long)stklt ) ;
fprintf( standardoutput , "%ld\n", (long)stklt ) ;
}
break ;
case 1 :
{
printapoolstr ( stklt ) ;
printanewline () ;
}
break ;
case 2 :
{
printapoolstr ( hashtext [stklt ]) ;
printanewline () ;
}
break ;
case 3 :
{
printapoolstr ( stklt ) ;
printanewline () ;
}
break ;
case 4 :
illeglliteralconfusion () ;
break ;
default:
unknwnliteralconfusion () ;
break ;
}
}
void
#ifdef HAVE_PROTOTYPES
outputbblline ( void )
#else
outputbblline ( )
#endif
{
/* 15 10 */ if ( ( outbuflength != 0 ) )
{
while ( ( outbuflength > 0 ) ) if ( ( lexclass [outbuf [outbuflength - 1
]]== 1 ) )
outbuflength = outbuflength - 1 ;
else goto lab15 ;
lab15: if ( ( outbuflength == 0 ) )
goto lab10 ;
outbufptr = 0 ;
while ( ( outbufptr < outbuflength ) ) {
putc ( xchr [outbuf [outbufptr ]], bblfile );
outbufptr = outbufptr + 1 ;
}
}
putc ('\n', bblfile );
bbllinenum = bbllinenum + 1 ;
outbuflength = 0 ;
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bst1printstringsizeexceeded ( void )
#else
bst1printstringsizeexceeded ( )
#endif
{
{
Fputs( logfile , "Warning--you've exceeded " ) ;
Fputs( standardoutput , "Warning--you've exceeded " ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
bst2printstringsizeexceeded ( void )
#else
bst2printstringsizeexceeded ( )
#endif
{
{
Fputs( logfile , "-string-size," ) ;
Fputs( standardoutput , "-string-size," ) ;
}
bstmildexwarnprint () ;
{
fprintf( logfile , "%s\n", "*Please notify the bibstyle designer*" ) ;
fprintf( standardoutput , "%s\n", "*Please notify the bibstyle designer*" ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
zbracesunbalancedcomplaint ( strnumber poplitvar )
#else
zbracesunbalancedcomplaint ( poplitvar )
strnumber poplitvar ;
#endif
{
{
Fputs( logfile , "Warning--\"" ) ;
Fputs( standardoutput , "Warning--\"" ) ;
}
printapoolstr ( poplitvar ) ;
{
{
Fputs( logfile , "\" isn't a brace-balanced string" ) ;
Fputs( standardoutput , "\" isn't a brace-balanced string" ) ;
}
bstmildexwarnprint () ;
}
}
void
#ifdef HAVE_PROTOTYPES
caseconversionconfusion ( void )
#else
caseconversionconfusion ( )
#endif
{
{
{
Fputs( logfile , "Unknown type of case conversion" ) ;
Fputs( standardoutput , "Unknown type of case conversion" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
void
#ifdef HAVE_PROTOTYPES
traceandstatprinting ( void )
#else
traceandstatprinting ( )
#endif
{
;
#ifdef TRACE
{
if ( ( numbibfiles == 1 ) )
{
fprintf( logfile , "%s\n", "The 1 database file is" ) ;
}
else {
fprintf( logfile , "%s%ld%s\n", "The " , (long)numbibfiles , " database files are" ) ;
}
if ( ( numbibfiles == 0 ) )
{
fprintf( logfile , "%s\n", " undefined" ) ;
}
else {
bibptr = 0 ;
while ( ( bibptr < numbibfiles ) ) {
{
Fputs( logfile , " " ) ;
}
{
outpoolstr ( logfile , biblist [bibptr ]) ;
}
{
outpoolstr ( logfile , sbibextension ) ;
}
{
putc ('\n', logfile );
}
bibptr = bibptr + 1 ;
}
}
{
Fputs( logfile , "The style file is " ) ;
}
if ( ( bststr == 0 ) )
{
fprintf( logfile , "%s\n", "undefined" ) ;
}
else {
{
outpoolstr ( logfile , bststr ) ;
}
{
outpoolstr ( logfile , sbstextension ) ;
}
{
putc ('\n', logfile );
}
}
}
{
if ( ( allentries ) )
{
fprintf( logfile , "%s%ld%s", "all_marker=" , (long)allmarker , ", " ) ;
}
if ( ( readperformed ) )
{
fprintf( logfile , "%s%ld\n", "old_num_cites=" , (long)oldnumcites ) ;
}
else {
putc ('\n', logfile );
}
{
fprintf( logfile , "%s%ld", "The " , (long)numcites ) ;
}
if ( ( numcites == 1 ) )
{
fprintf( logfile , "%s\n", " entry:" ) ;
}
else {
fprintf( logfile , "%s\n", " entries:" ) ;
}
if ( ( numcites == 0 ) )
{
fprintf( logfile , "%s\n", " undefined" ) ;
}
else {
sortciteptr = 0 ;
while ( ( sortciteptr < numcites ) ) {
if ( ( ! readcompleted ) )
citeptr = sortciteptr ;
else citeptr = citeinfo [sortciteptr ];
{
outpoolstr ( logfile , citelist [citeptr ]) ;
}
if ( ( readperformed ) )
{
{
Fputs( logfile , ", entry-type " ) ;
}
if ( ( typelist [citeptr ]== undefined ) )
{
Fputs( logfile , "unknown" ) ;
}
else if ( ( typelist [citeptr ]== 0 ) )
{
Fputs( logfile , "--- no type found" ) ;
}
else {
outpoolstr ( logfile , hashtext [typelist [citeptr ]]) ;
}
{
fprintf( logfile , "%s\n", ", has entry strings" ) ;
}
{
if ( ( numentstrs == 0 ) )
{
fprintf( logfile , "%s\n", " undefined" ) ;
}
else if ( ( ! readcompleted ) )
{
fprintf( logfile , "%s\n", " uninitialized" ) ;
}
else {
strentptr = citeptr * numentstrs ;
while ( ( strentptr < ( citeptr + 1 ) * numentstrs ) ) {
entchrptr = 0 ;
{
Fputs( logfile , " \"" ) ;
}
while ( ( entrystrs [( strentptr ) * ( entstrsize + 1 ) + (
entchrptr ) ]!= 127 ) ) {
{
putc ( xchr [entrystrs [( strentptr ) * ( entstrsize + 1 ) + ( entchrptr ) ]], logfile );
}
entchrptr = entchrptr + 1 ;
}
{
fprintf( logfile , "%c\n", '"' ) ;
}
strentptr = strentptr + 1 ;
}
}
}
{
Fputs( logfile , " has entry integers" ) ;
}
{
if ( ( numentints == 0 ) )
{
Fputs( logfile , " undefined" ) ;
}
else if ( ( ! readcompleted ) )
{
Fputs( logfile , " uninitialized" ) ;
}
else {
intentptr = citeptr * numentints ;
while ( ( intentptr < ( citeptr + 1 ) * numentints ) ) {
{
fprintf( logfile , "%c%ld", ' ' , (long)entryints [intentptr ]) ;
}
intentptr = intentptr + 1 ;
}
}
{
putc ('\n', logfile );
}
}
{
fprintf( logfile , "%s\n", " and has fields" ) ;
}
{
if ( ( ! readperformed ) )
{
fprintf( logfile , "%s\n", " uninitialized" ) ;
}
else {
fieldptr = citeptr * numfields ;
fieldendptr = fieldptr + numfields ;
checkfieldoverflow ( fieldendptr ) ;
nofields = true ;
while ( ( fieldptr < fieldendptr ) ) {
if ( ( fieldinfo [fieldptr ]!= 0 ) )
{
{
Fputs( logfile , " \"" ) ;
}
{
outpoolstr ( logfile , fieldinfo [fieldptr ]) ;
}
{
fprintf( logfile , "%c\n", '"' ) ;
}
nofields = false ;
}
fieldptr = fieldptr + 1 ;
}
if ( ( nofields ) )
{
fprintf( logfile , "%s\n", " missing" ) ;
}
}
}
}
else {
putc ('\n', logfile );
}
sortciteptr = sortciteptr + 1 ;
}
}
}
{
{
fprintf( logfile , "%s\n", "The wiz-defined functions are" ) ;
}
if ( ( wizdefptr == 0 ) )
{
fprintf( logfile , "%s\n", " nonexistent" ) ;
}
else {
wizfnptr = 0 ;
while ( ( wizfnptr < wizdefptr ) ) {
if ( ( wizfunctions [wizfnptr ]== endofdef ) )
{
fprintf( logfile , "%ld%s\n", (long)wizfnptr , "--end-of-def--" ) ;
}
else if ( ( wizfunctions [wizfnptr ]== quotenextfn ) )
{
fprintf( logfile , "%ld%s", (long)wizfnptr , " quote_next_function " ) ;
}
else {
{
fprintf( logfile , "%ld%s", (long)wizfnptr , " `" ) ;
}
{
outpoolstr ( logfile , hashtext [wizfunctions [wizfnptr ]]) ;
}
{
fprintf( logfile , "%c\n", '\'' ) ;
}
}
wizfnptr = wizfnptr + 1 ;
}
}
}
{
{
fprintf( logfile , "%s\n", "The string pool is" ) ;
}
strnum = 1 ;
while ( ( strnum < strptr ) ) {
{
fprintf( logfile , "%ld%ld%s", (long)strnum , (long)strstart [strnum ], " \"" ) ;
}
{
outpoolstr ( logfile , strnum ) ;
}
{
fprintf( logfile , "%c\n", '"' ) ;
}
strnum = strnum + 1 ;
}
}
#endif /* TRACE */
;
#ifndef NO_BIBTEX_STAT
{
{
fprintf( logfile , "%s%ld", "You've used " , (long)numcites ) ;
}
if ( ( numcites == 1 ) )
{
fprintf( logfile , "%s\n", " entry," ) ;
}
else {
fprintf( logfile , "%s\n", " entries," ) ;
}
{
fprintf( logfile , "%s%ld%s\n", " " , (long)wizdefptr , " wiz_defined-function locations," ) ;
}
{
fprintf( logfile , "%s%ld%s%ld%s\n", " " , (long)strptr , " strings with " , (long)strstart [strptr ], " characters," ) ;
}
bltinptr = 0 ;
totalexcount = 0 ;
while ( ( bltinptr < numbltinfns ) ) {
totalexcount = totalexcount + executioncount [bltinptr ];
bltinptr = bltinptr + 1 ;
}
{
fprintf( logfile , "%s%ld%s\n", "and the built_in function-call counts, " , (long)totalexcount , " in all, are:" ) ;
}
bltinptr = 0 ;
while ( ( bltinptr < numbltinfns ) ) {
{
outpoolstr ( logfile , hashtext [bltinloc [bltinptr ]]) ;
}
{
fprintf( logfile , "%s%ld\n", " -- " , (long)executioncount [bltinptr ]) ;
}
bltinptr = bltinptr + 1 ;
}
}
#endif /* not NO_BIBTEX_STAT */
}
void
#ifdef HAVE_PROTOTYPES
zstartname ( strnumber filename )
#else
zstartname ( filename )
strnumber filename ;
#endif
{
poolpointer pptr ;
if ( ( ( strstart [filename + 1 ]- strstart [filename ]) > maxint ) )
{
{
Fputs( logfile , "File=" ) ;
Fputs( standardoutput , "File=" ) ;
}
printapoolstr ( filename ) ;
{
fprintf( logfile , "%c\n", ',' ) ;
fprintf( standardoutput , "%c\n", ',' ) ;
}
filenmsizeoverflow () ;
}
nameptr = 1 ;
free ( nameoffile ) ;
nameoffile = xmalloc ( ( strstart [filename + 1 ]- strstart [filename ])
+ 2 ) ;
pptr = strstart [filename ];
while ( ( pptr < strstart [filename + 1 ]) ) {
nameoffile [nameptr ]= chr ( strpool [pptr ]) ;
nameptr = nameptr + 1 ;
pptr = pptr + 1 ;
}
namelength = ( strstart [filename + 1 ]- strstart [filename ]) ;
nameoffile [namelength + 1 ]= 0 ;
}
void
#ifdef HAVE_PROTOTYPES
zaddextension ( strnumber ext )
#else
zaddextension ( ext )
strnumber ext ;
#endif
{
poolpointer pptr ;
nameptr = namelength + 1 ;
pptr = strstart [ext ];
while ( ( pptr < strstart [ext + 1 ]) ) {
nameoffile [nameptr ]= chr ( strpool [pptr ]) ;
nameptr = nameptr + 1 ;
pptr = pptr + 1 ;
}
namelength = namelength + ( strstart [ext + 1 ]- strstart [ext ]) ;
nameoffile [namelength + 1 ]= 0 ;
}
void
#ifdef HAVE_PROTOTYPES
zaddarea ( strnumber area )
#else
zaddarea ( area )
strnumber area ;
#endif
{
poolpointer pptr ;
nameptr = namelength ;
while ( ( nameptr > 0 ) ) {
nameoffile [nameptr + ( strstart [area + 1 ]- strstart [area ]) ]=
nameoffile [nameptr ];
nameptr = nameptr - 1 ;
}
nameptr = 1 ;
pptr = strstart [area ];
while ( ( pptr < strstart [area + 1 ]) ) {
nameoffile [nameptr ]= chr ( strpool [pptr ]) ;
nameptr = nameptr + 1 ;
pptr = pptr + 1 ;
}
namelength = namelength + ( strstart [area + 1 ]- strstart [area ]) ;
}
strnumber
#ifdef HAVE_PROTOTYPES
makestring ( void )
#else
makestring ( )
#endif
{
register strnumber Result; if ( ( strptr == maxstrings ) )
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "number of strings " , (long)maxstrings ) ;
fprintf( standardoutput , "%s%ld\n", "number of strings " , (long)maxstrings ) ;
}
longjmp(jmp9998,1) ;
}
strptr = strptr + 1 ;
strstart [strptr ]= poolptr ;
Result = strptr - 1 ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
zstreqbuf ( strnumber s , buftype buf , bufpointer bfptr , bufpointer len )
#else
zstreqbuf ( s , buf , bfptr , len )
strnumber s ;
buftype buf ;
bufpointer bfptr ;
bufpointer len ;
#endif
{
/* 10 */ register boolean Result; bufpointer i ;
poolpointer j ;
if ( ( ( strstart [s + 1 ]- strstart [s ]) != len ) )
{
Result = false ;
goto lab10 ;
}
i = bfptr ;
j = strstart [s ];
while ( ( j < strstart [s + 1 ]) ) {
if ( ( strpool [j ]!= buf [i ]) )
{
Result = false ;
goto lab10 ;
}
i = i + 1 ;
j = j + 1 ;
}
Result = true ;
lab10: ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
zstreqstr ( strnumber s1 , strnumber s2 )
#else
zstreqstr ( s1 , s2 )
strnumber s1 ;
strnumber s2 ;
#endif
{
/* 10 */ register boolean Result; if ( ( ( strstart [s1 + 1 ]- strstart
[s1 ]) != ( strstart [s2 + 1 ]- strstart [s2 ]) ) )
{
Result = false ;
goto lab10 ;
}
pptr1 = strstart [s1 ];
pptr2 = strstart [s2 ];
while ( ( pptr1 < strstart [s1 + 1 ]) ) {
if ( ( strpool [pptr1 ]!= strpool [pptr2 ]) )
{
Result = false ;
goto lab10 ;
}
pptr1 = pptr1 + 1 ;
pptr2 = pptr2 + 1 ;
}
Result = true ;
lab10: ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
zlowercase ( buftype buf , bufpointer bfptr , bufpointer len )
#else
zlowercase ( buf , bfptr , len )
buftype buf ;
bufpointer bfptr ;
bufpointer len ;
#endif
{
bufpointer i ;
if ( ( len > 0 ) )
{register integer for_end; i = bfptr ;for_end = bfptr + len - 1 ; if ( i
<= for_end) do
if ( ( ( buf [i ]>= 65 ) && ( buf [i ]<= 90 ) ) )
buf [i ]= buf [i ]+ 32 ;
while ( i++ < for_end ) ;}
}
void
#ifdef HAVE_PROTOTYPES
zuppercase ( buftype buf , bufpointer bfptr , bufpointer len )
#else
zuppercase ( buf , bfptr , len )
buftype buf ;
bufpointer bfptr ;
bufpointer len ;
#endif
{
bufpointer i ;
if ( ( len > 0 ) )
{register integer for_end; i = bfptr ;for_end = bfptr + len - 1 ; if ( i
<= for_end) do
if ( ( ( buf [i ]>= 97 ) && ( buf [i ]<= 122 ) ) )
buf [i ]= buf [i ]- 32 ;
while ( i++ < for_end ) ;}
}
hashloc
#ifdef HAVE_PROTOTYPES
zstrlookup ( buftype buf , bufpointer j , bufpointer l , strilk ilk , boolean
insertit )
#else
zstrlookup ( buf , j , l , ilk , insertit )
buftype buf ;
bufpointer j ;
bufpointer l ;
strilk ilk ;
boolean insertit ;
#endif
{
/* 40 45 */ register hashloc Result; integer h ;
hashloc p ;
bufpointer k ;
boolean oldstring ;
strnumber strnum ;
{
h = 0 ;
k = j ;
while ( ( k < j + l ) ) {
h = h + h + buf [k ];
while ( ( h >= hashprime ) ) h = h - hashprime ;
k = k + 1 ;
}
}
p = h + hashbase ;
hashfound = false ;
oldstring = false ;
while ( true ) {
{
if ( ( hashtext [p ]> 0 ) )
if ( ( streqbuf ( hashtext [p ], buf , j , l ) ) )
if ( ( hashilk [p ]== ilk ) )
{
hashfound = true ;
goto lab40 ;
}
else {
oldstring = true ;
strnum = hashtext [p ];
}
}
if ( ( hashnext [p ]== 0 ) )
{
if ( ( ! insertit ) )
goto lab45 ;
{
if ( ( hashtext [p ]> 0 ) )
{
do {
if ( ( ( hashused == hashbase ) ) )
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "hash size " , (long)hashsize ) ;
fprintf( standardoutput , "%s%ld\n", "hash size " , (long)hashsize ) ;
}
longjmp(jmp9998,1) ;
}
hashused = hashused - 1 ;
} while ( ! ( ( hashtext [hashused ]== 0 ) ) ) ;
hashnext [p ]= hashused ;
p = hashused ;
}
if ( ( oldstring ) )
hashtext [p ]= strnum ;
else {
{
if ( ( poolptr + l > poolsize ) )
pooloverflow () ;
}
k = j ;
while ( ( k < j + l ) ) {
{
strpool [poolptr ]= buf [k ];
poolptr = poolptr + 1 ;
}
k = k + 1 ;
}
hashtext [p ]= makestring () ;
}
hashilk [p ]= ilk ;
}
goto lab40 ;
}
p = hashnext [p ];
}
lab45: ;
lab40: Result = p ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
zpredefine ( pdstype pds , pdslen len , strilk ilk )
#else
zpredefine ( pds , len , ilk )
pdstype pds ;
pdslen len ;
strilk ilk ;
#endif
{
pdslen i ;
{register integer for_end; i = 1 ;for_end = len ; if ( i <= for_end) do
buffer [i ]= xord [pds [i - 1 ]];
while ( i++ < for_end ) ;}
predefloc = strlookup ( buffer , 1 , len , ilk , true ) ;
}
void
#ifdef HAVE_PROTOTYPES
zzinttoASCII ( integer theint , buftype intbuf , bufpointer intbegin ,
bufpointer * intend )
#else
zzinttoASCII ( theint , intbuf , intbegin , intend )
integer theint ;
buftype intbuf ;
bufpointer intbegin ;
bufpointer * intend ;
#endif
{
bufpointer intptr, intxptr ;
ASCIIcode inttmpval ;
intptr = intbegin ;
if ( ( theint < 0 ) )
{
{
if ( ( intptr == bufsize ) )
bufferoverflow () ;
intbuf [intptr ]= 45 ;
intptr = intptr + 1 ;
}
theint = - (integer) theint ;
}
intxptr = intptr ;
do {
{
if ( ( intptr == bufsize ) )
bufferoverflow () ;
intbuf [intptr ]= 48 + ( theint % 10 ) ;
intptr = intptr + 1 ;
}
theint = theint / 10 ;
} while ( ! ( ( theint == 0 ) ) ) ;
* intend = intptr ;
intptr = intptr - 1 ;
while ( ( intxptr < intptr ) ) {
inttmpval = intbuf [intxptr ];
intbuf [intxptr ]= intbuf [intptr ];
intbuf [intptr ]= inttmpval ;
intptr = intptr - 1 ;
intxptr = intxptr + 1 ;
}
}
void
#ifdef HAVE_PROTOTYPES
zzadddatabasecite ( citenumber * newcite )
#else
zzadddatabasecite ( newcite )
citenumber * newcite ;
#endif
{
checkciteoverflow ( *newcite ) ;
checkfieldoverflow ( numfields * *newcite ) ;
citelist [*newcite ]= hashtext [citeloc ];
ilkinfo [citeloc ]= *newcite ;
ilkinfo [lcciteloc ]= citeloc ;
* newcite = *newcite + 1 ;
}
boolean
#ifdef HAVE_PROTOTYPES
zfindcitelocsforthiscitekey ( strnumber citestr )
#else
zfindcitelocsforthiscitekey ( citestr )
strnumber citestr ;
#endif
{
register boolean Result; exbufptr = 0 ;
tmpptr = strstart [citestr ];
tmpendptr = strstart [citestr + 1 ];
while ( ( tmpptr < tmpendptr ) ) {
exbuf [exbufptr ]= strpool [tmpptr ];
exbufptr = exbufptr + 1 ;
tmpptr = tmpptr + 1 ;
}
citeloc = strlookup ( exbuf , 0 , ( strstart [citestr + 1 ]- strstart [
citestr ]) , 9 , false ) ;
citehashfound = hashfound ;
lowercase ( exbuf , 0 , ( strstart [citestr + 1 ]- strstart [citestr ])
) ;
lcciteloc = strlookup ( exbuf , 0 , ( strstart [citestr + 1 ]- strstart [
citestr ]) , 10 , false ) ;
if ( ( hashfound ) )
Result = true ;
else Result = false ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
zswap ( citenumber swap1 , citenumber swap2 )
#else
zswap ( swap1 , swap2 )
citenumber swap1 ;
citenumber swap2 ;
#endif
{
citenumber innocentbystander ;
innocentbystander = citeinfo [swap2 ];
citeinfo [swap2 ]= citeinfo [swap1 ];
citeinfo [swap1 ]= innocentbystander ;
}
boolean
#ifdef HAVE_PROTOTYPES
zlessthan ( citenumber arg1 , citenumber arg2 )
#else
zlessthan ( arg1 , arg2 )
citenumber arg1 ;
citenumber arg2 ;
#endif
{
/* 10 */ register boolean Result; integer charptr ;
strentloc ptr1, ptr2 ;
ASCIIcode char1, char2 ;
ptr1 = arg1 * numentstrs + sortkeynum ;
ptr2 = arg2 * numentstrs + sortkeynum ;
charptr = 0 ;
while ( true ) {
char1 = entrystrs [( ptr1 ) * ( entstrsize + 1 ) + ( charptr ) ];
char2 = entrystrs [( ptr2 ) * ( entstrsize + 1 ) + ( charptr ) ];
if ( ( char1 == 127 ) )
if ( ( char2 == 127 ) )
if ( ( arg1 < arg2 ) )
{
Result = true ;
goto lab10 ;
}
else if ( ( arg1 > arg2 ) )
{
Result = false ;
goto lab10 ;
}
else {
{
Fputs( logfile , "Duplicate sort key" ) ;
Fputs( standardoutput , "Duplicate sort key" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
else {
Result = true ;
goto lab10 ;
}
else if ( ( char2 == 127 ) )
{
Result = false ;
goto lab10 ;
}
else if ( ( char1 < char2 ) )
{
Result = true ;
goto lab10 ;
}
else if ( ( char1 > char2 ) )
{
Result = false ;
goto lab10 ;
}
charptr = charptr + 1 ;
}
lab10: ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
zquicksort ( citenumber leftend , citenumber rightend )
#else
zquicksort ( leftend , rightend )
citenumber leftend ;
citenumber rightend ;
#endif
{
/* 24 */ citenumber left, right ;
citenumber insertptr ;
citenumber middle ;
citenumber partition ;
;
#ifdef TRACE
{
fprintf( logfile , "%s%ld%s%ld\n", "Sorting " , (long)leftend , " through " , (long)rightend ) ;
}
#endif /* TRACE */
if ( ( rightend - leftend < 10 ) )
{
{register integer for_end; insertptr = leftend + 1 ;for_end = rightend
; if ( insertptr <= for_end) do
{
{register integer for_end; right = insertptr ;for_end = leftend + 1
; if ( right >= for_end) do
{
if ( ( lessthan ( citeinfo [right - 1 ], citeinfo [right ]) )
)
goto lab24 ;
swap ( right - 1 , right ) ;
}
while ( right-- > for_end ) ;}
lab24: ;
}
while ( insertptr++ < for_end ) ;}
}
else {
{
left = leftend + 4 ;
middle = ( leftend + rightend ) / 2 ;
right = rightend - 4 ;
if ( ( lessthan ( citeinfo [left ], citeinfo [middle ]) ) )
if ( ( lessthan ( citeinfo [middle ], citeinfo [right ]) ) )
swap ( leftend , middle ) ;
else if ( ( lessthan ( citeinfo [left ], citeinfo [right ]) ) )
swap ( leftend , right ) ;
else swap ( leftend , left ) ;
else if ( ( lessthan ( citeinfo [right ], citeinfo [middle ]) ) )
swap ( leftend , middle ) ;
else if ( ( lessthan ( citeinfo [right ], citeinfo [left ]) ) )
swap ( leftend , right ) ;
else swap ( leftend , left ) ;
}
{
partition = citeinfo [leftend ];
left = leftend + 1 ;
right = rightend ;
do {
while ( ( lessthan ( citeinfo [left ], partition ) ) ) left =
left + 1 ;
while ( ( lessthan ( partition , citeinfo [right ]) ) ) right =
right - 1 ;
if ( ( left < right ) )
{
swap ( left , right ) ;
left = left + 1 ;
right = right - 1 ;
}
} while ( ! ( ( left == right + 1 ) ) ) ;
swap ( leftend , right ) ;
quicksort ( leftend , right - 1 ) ;
quicksort ( left , rightend ) ;
}
}
}
void
#ifdef HAVE_PROTOTYPES
zzbuildin ( pdstype pds , pdslen len , hashloc * fnhashloc , bltinrange
bltinnum )
#else
zzbuildin ( pds , len , fnhashloc , bltinnum )
pdstype pds ;
pdslen len ;
hashloc * fnhashloc ;
bltinrange bltinnum ;
#endif
{
predefine ( pds , len , 11 ) ;
* fnhashloc = predefloc ;
fntype [*fnhashloc ]= 0 ;
ilkinfo [*fnhashloc ]= bltinnum ;
;
#ifndef NO_BIBTEX_STAT
bltinloc [bltinnum ]= *fnhashloc ;
executioncount [bltinnum ]= 0 ;
#endif /* not NO_BIBTEX_STAT */
}
void
#ifdef HAVE_PROTOTYPES
predefcertainstrings ( void )
#else
predefcertainstrings ( )
#endif
{
predefine ( ".aux " , 4 , 7 ) ;
sauxextension = hashtext [predefloc ];
predefine ( ".bbl " , 4 , 7 ) ;
sbblextension = hashtext [predefloc ];
predefine ( ".blg " , 4 , 7 ) ;
slogextension = hashtext [predefloc ];
predefine ( ".bst " , 4 , 7 ) ;
sbstextension = hashtext [predefloc ];
predefine ( ".bib " , 4 , 7 ) ;
sbibextension = hashtext [predefloc ];
predefine ( "texinputs: " , 10 , 8 ) ;
sbstarea = hashtext [predefloc ];
predefine ( "texbib: " , 7 , 8 ) ;
sbibarea = hashtext [predefloc ];
predefine ( "\\citation " , 9 , 2 ) ;
ilkinfo [predefloc ]= 2 ;
predefine ( "\\bibdata " , 8 , 2 ) ;
ilkinfo [predefloc ]= 0 ;
predefine ( "\\bibstyle " , 9 , 2 ) ;
ilkinfo [predefloc ]= 1 ;
predefine ( "\\@input " , 7 , 2 ) ;
ilkinfo [predefloc ]= 3 ;
predefine ( "entry " , 5 , 4 ) ;
ilkinfo [predefloc ]= 0 ;
predefine ( "execute " , 7 , 4 ) ;
ilkinfo [predefloc ]= 1 ;
predefine ( "function " , 8 , 4 ) ;
ilkinfo [predefloc ]= 2 ;
predefine ( "integers " , 8 , 4 ) ;
ilkinfo [predefloc ]= 3 ;
predefine ( "iterate " , 7 , 4 ) ;
ilkinfo [predefloc ]= 4 ;
predefine ( "macro " , 5 , 4 ) ;
ilkinfo [predefloc ]= 5 ;
predefine ( "read " , 4 , 4 ) ;
ilkinfo [predefloc ]= 6 ;
predefine ( "reverse " , 7 , 4 ) ;
ilkinfo [predefloc ]= 7 ;
predefine ( "sort " , 4 , 4 ) ;
ilkinfo [predefloc ]= 8 ;
predefine ( "strings " , 7 , 4 ) ;
ilkinfo [predefloc ]= 9 ;
predefine ( "comment " , 7 , 12 ) ;
ilkinfo [predefloc ]= 0 ;
predefine ( "preamble " , 8 , 12 ) ;
ilkinfo [predefloc ]= 1 ;
predefine ( "string " , 6 , 12 ) ;
ilkinfo [predefloc ]= 2 ;
buildin ( "= " , 1 , bequals , 0 ) ;
buildin ( "> " , 1 , bgreaterthan , 1 ) ;
buildin ( "< " , 1 , blessthan , 2 ) ;
buildin ( "+ " , 1 , bplus , 3 ) ;
buildin ( "- " , 1 , bminus , 4 ) ;
buildin ( "* " , 1 , bconcatenate , 5 ) ;
buildin ( ":= " , 2 , bgets , 6 ) ;
buildin ( "add.period$ " , 11 , baddperiod , 7 ) ;
buildin ( "call.type$ " , 10 , bcalltype , 8 ) ;
buildin ( "change.case$" , 12 , bchangecase , 9 ) ;
buildin ( "chr.to.int$ " , 11 , bchrtoint , 10 ) ;
buildin ( "cite$ " , 5 , bcite , 11 ) ;
buildin ( "duplicate$ " , 10 , bduplicate , 12 ) ;
buildin ( "empty$ " , 6 , bempty , 13 ) ;
buildin ( "format.name$" , 12 , bformatname , 14 ) ;
buildin ( "if$ " , 3 , bif , 15 ) ;
buildin ( "int.to.chr$ " , 11 , binttochr , 16 ) ;
buildin ( "int.to.str$ " , 11 , binttostr , 17 ) ;
buildin ( "missing$ " , 8 , bmissing , 18 ) ;
buildin ( "newline$ " , 8 , bnewline , 19 ) ;
buildin ( "num.names$ " , 10 , bnumnames , 20 ) ;
buildin ( "pop$ " , 4 , bpop , 21 ) ;
buildin ( "preamble$ " , 9 , bpreamble , 22 ) ;
buildin ( "purify$ " , 7 , bpurify , 23 ) ;
buildin ( "quote$ " , 6 , bquote , 24 ) ;
buildin ( "skip$ " , 5 , bskip , 25 ) ;
buildin ( "stack$ " , 6 , bstack , 26 ) ;
buildin ( "substring$ " , 10 , bsubstring , 27 ) ;
buildin ( "swap$ " , 5 , bswap , 28 ) ;
buildin ( "text.length$" , 12 , btextlength , 29 ) ;
buildin ( "text.prefix$" , 12 , btextprefix , 30 ) ;
buildin ( "top$ " , 4 , btopstack , 31 ) ;
buildin ( "type$ " , 5 , btype , 32 ) ;
buildin ( "warning$ " , 8 , bwarning , 33 ) ;
buildin ( "width$ " , 6 , bwidth , 35 ) ;
buildin ( "while$ " , 6 , bwhile , 34 ) ;
buildin ( "width$ " , 6 , bwidth , 35 ) ;
buildin ( "write$ " , 6 , bwrite , 36 ) ;
predefine ( " " , 0 , 0 ) ;
snull = hashtext [predefloc ];
fntype [predefloc ]= 3 ;
predefine ( "default.type" , 12 , 0 ) ;
sdefault = hashtext [predefloc ];
fntype [predefloc ]= 3 ;
bdefault = bskip ;
preambleptr = 0 ;
predefine ( "i " , 1 , 14 ) ;
ilkinfo [predefloc ]= 0 ;
predefine ( "j " , 1 , 14 ) ;
ilkinfo [predefloc ]= 1 ;
predefine ( "oe " , 2 , 14 ) ;
ilkinfo [predefloc ]= 2 ;
predefine ( "OE " , 2 , 14 ) ;
ilkinfo [predefloc ]= 3 ;
predefine ( "ae " , 2 , 14 ) ;
ilkinfo [predefloc ]= 4 ;
predefine ( "AE " , 2 , 14 ) ;
ilkinfo [predefloc ]= 5 ;
predefine ( "aa " , 2 , 14 ) ;
ilkinfo [predefloc ]= 6 ;
predefine ( "AA " , 2 , 14 ) ;
ilkinfo [predefloc ]= 7 ;
predefine ( "o " , 1 , 14 ) ;
ilkinfo [predefloc ]= 8 ;
predefine ( "O " , 1 , 14 ) ;
ilkinfo [predefloc ]= 9 ;
predefine ( "l " , 1 , 14 ) ;
ilkinfo [predefloc ]= 10 ;
predefine ( "L " , 1 , 14 ) ;
ilkinfo [predefloc ]= 11 ;
predefine ( "ss " , 2 , 14 ) ;
ilkinfo [predefloc ]= 12 ;
predefine ( "crossref " , 8 , 11 ) ;
fntype [predefloc ]= 4 ;
ilkinfo [predefloc ]= numfields ;
crossrefnum = numfields ;
numfields = numfields + 1 ;
numpredefinedfields = numfields ;
predefine ( "sort.key$ " , 9 , 11 ) ;
fntype [predefloc ]= 6 ;
ilkinfo [predefloc ]= numentstrs ;
sortkeynum = numentstrs ;
numentstrs = numentstrs + 1 ;
predefine ( "entry.max$ " , 10 , 11 ) ;
fntype [predefloc ]= 7 ;
ilkinfo [predefloc ]= entstrsize ;
predefine ( "global.max$ " , 11 , 11 ) ;
fntype [predefloc ]= 7 ;
ilkinfo [predefloc ]= globstrsize ;
}
boolean
#ifdef HAVE_PROTOTYPES
zscan1 ( ASCIIcode char1 )
#else
zscan1 ( char1 )
ASCIIcode char1 ;
#endif
{
register boolean Result; bufptr1 = bufptr2 ;
while ( ( ( buffer [bufptr2 ]!= char1 ) && ( bufptr2 < last ) ) ) bufptr2
= bufptr2 + 1 ;
if ( ( bufptr2 < last ) )
Result = true ;
else Result = false ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
zscan1white ( ASCIIcode char1 )
#else
zscan1white ( char1 )
ASCIIcode char1 ;
#endif
{
register boolean Result; bufptr1 = bufptr2 ;
while ( ( ( lexclass [buffer [bufptr2 ]]!= 1 ) && ( buffer [bufptr2 ]
!= char1 ) && ( bufptr2 < last ) ) ) bufptr2 = bufptr2 + 1 ;
if ( ( bufptr2 < last ) )
Result = true ;
else Result = false ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
zscan2 ( ASCIIcode char1 , ASCIIcode char2 )
#else
zscan2 ( char1 , char2 )
ASCIIcode char1 ;
ASCIIcode char2 ;
#endif
{
register boolean Result; bufptr1 = bufptr2 ;
while ( ( ( buffer [bufptr2 ]!= char1 ) && ( buffer [bufptr2 ]!= char2 )
&& ( bufptr2 < last ) ) ) bufptr2 = bufptr2 + 1 ;
if ( ( bufptr2 < last ) )
Result = true ;
else Result = false ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
zscan2white ( ASCIIcode char1 , ASCIIcode char2 )
#else
zscan2white ( char1 , char2 )
ASCIIcode char1 ;
ASCIIcode char2 ;
#endif
{
register boolean Result; bufptr1 = bufptr2 ;
while ( ( ( buffer [bufptr2 ]!= char1 ) && ( buffer [bufptr2 ]!= char2 )
&& ( lexclass [buffer [bufptr2 ]]!= 1 ) && ( bufptr2 < last ) ) )
bufptr2 = bufptr2 + 1 ;
if ( ( bufptr2 < last ) )
Result = true ;
else Result = false ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
zscan3 ( ASCIIcode char1 , ASCIIcode char2 , ASCIIcode char3 )
#else
zscan3 ( char1 , char2 , char3 )
ASCIIcode char1 ;
ASCIIcode char2 ;
ASCIIcode char3 ;
#endif
{
register boolean Result; bufptr1 = bufptr2 ;
while ( ( ( buffer [bufptr2 ]!= char1 ) && ( buffer [bufptr2 ]!= char2 )
&& ( buffer [bufptr2 ]!= char3 ) && ( bufptr2 < last ) ) ) bufptr2 =
bufptr2 + 1 ;
if ( ( bufptr2 < last ) )
Result = true ;
else Result = false ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
scanalpha ( void )
#else
scanalpha ( )
#endif
{
register boolean Result; bufptr1 = bufptr2 ;
while ( ( ( lexclass [buffer [bufptr2 ]]== 2 ) && ( bufptr2 < last ) ) )
bufptr2 = bufptr2 + 1 ;
if ( ( ( bufptr2 - bufptr1 ) == 0 ) )
Result = false ;
else Result = true ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
zscanidentifier ( ASCIIcode char1 , ASCIIcode char2 , ASCIIcode char3 )
#else
zscanidentifier ( char1 , char2 , char3 )
ASCIIcode char1 ;
ASCIIcode char2 ;
ASCIIcode char3 ;
#endif
{
bufptr1 = bufptr2 ;
if ( ( lexclass [buffer [bufptr2 ]]!= 3 ) )
while ( ( ( idclass [buffer [bufptr2 ]]== 1 ) && ( bufptr2 < last ) ) )
bufptr2 = bufptr2 + 1 ;
if ( ( ( bufptr2 - bufptr1 ) == 0 ) )
scanresult = 0 ;
else if ( ( ( lexclass [buffer [bufptr2 ]]== 1 ) || ( bufptr2 == last )
) )
scanresult = 3 ;
else if ( ( ( buffer [bufptr2 ]== char1 ) || ( buffer [bufptr2 ]== char2
) || ( buffer [bufptr2 ]== char3 ) ) )
scanresult = 1 ;
else scanresult = 2 ;
}
boolean
#ifdef HAVE_PROTOTYPES
scannonneginteger ( void )
#else
scannonneginteger ( )
#endif
{
register boolean Result; bufptr1 = bufptr2 ;
tokenvalue = 0 ;
while ( ( ( lexclass [buffer [bufptr2 ]]== 3 ) && ( bufptr2 < last ) ) )
{
tokenvalue = tokenvalue * 10 + ( buffer [bufptr2 ]- 48 ) ;
bufptr2 = bufptr2 + 1 ;
}
if ( ( ( bufptr2 - bufptr1 ) == 0 ) )
Result = false ;
else Result = true ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
scaninteger ( void )
#else
scaninteger ( )
#endif
{
register boolean Result; char signlength ;
bufptr1 = bufptr2 ;
if ( ( buffer [bufptr2 ]== 45 ) )
{
signlength = 1 ;
bufptr2 = bufptr2 + 1 ;
}
else signlength = 0 ;
tokenvalue = 0 ;
while ( ( ( lexclass [buffer [bufptr2 ]]== 3 ) && ( bufptr2 < last ) ) )
{
tokenvalue = tokenvalue * 10 + ( buffer [bufptr2 ]- 48 ) ;
bufptr2 = bufptr2 + 1 ;
}
if ( ( ( signlength == 1 ) ) )
tokenvalue = - (integer) tokenvalue ;
if ( ( ( bufptr2 - bufptr1 ) == signlength ) )
Result = false ;
else Result = true ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
scanwhitespace ( void )
#else
scanwhitespace ( )
#endif
{
register boolean Result; while ( ( ( lexclass [buffer [bufptr2 ]]== 1
) && ( bufptr2 < last ) ) ) bufptr2 = bufptr2 + 1 ;
if ( ( bufptr2 < last ) )
Result = true ;
else Result = false ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
eatbstwhitespace ( void )
#else
eatbstwhitespace ( )
#endif
{
/* 10 */ register boolean Result; while ( true ) {
if ( ( scanwhitespace () ) )
if ( ( buffer [bufptr2 ]!= 37 ) )
{
Result = true ;
goto lab10 ;
}
if ( ( ! inputln ( bstfile ) ) )
{
Result = false ;
goto lab10 ;
}
bstlinenum = bstlinenum + 1 ;
bufptr2 = 0 ;
}
lab10: ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
skiptokenprint ( void )
#else
skiptokenprint ( )
#endif
{
{
putc ( '-' , logfile );
putc ( '-' , standardoutput );
}
bstlnnumprint () ;
markerror () ;
if ( ( scan2white ( 125 , 37 ) ) )
;
}
void
#ifdef HAVE_PROTOTYPES
printrecursionillegal ( void )
#else
printrecursionillegal ( )
#endif
{
;
#ifdef TRACE
{
putc ('\n', logfile );
}
#endif /* TRACE */
{
fprintf( logfile , "%s\n", "Curse you, wizard, before you recurse me:" ) ;
fprintf( standardoutput , "%s\n", "Curse you, wizard, before you recurse me:" ) ;
}
{
Fputs( logfile , "function " ) ;
Fputs( standardoutput , "function " ) ;
}
printatoken () ;
{
fprintf( logfile , "%s\n", " is illegal in its own definition" ) ;
fprintf( standardoutput , "%s\n", " is illegal in its own definition" ) ;
}
skiptokenprint () ;
}
void
#ifdef HAVE_PROTOTYPES
skptokenunknownfunctionprint ( void )
#else
skptokenunknownfunctionprint ( )
#endif
{
printatoken () ;
{
Fputs( logfile , " is an unknown function" ) ;
Fputs( standardoutput , " is an unknown function" ) ;
}
skiptokenprint () ;
}
void
#ifdef HAVE_PROTOTYPES
skipillegalstuffaftertokenprint ( void )
#else
skipillegalstuffaftertokenprint ( )
#endif
{
{
fprintf( logfile , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" can't follow a literal" ) ;
fprintf( standardoutput , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" can't follow a literal" ) ;
}
skiptokenprint () ;
}
void
#ifdef HAVE_PROTOTYPES
zscanfndef ( hashloc fnhashloc )
#else
zscanfndef ( fnhashloc )
hashloc fnhashloc ;
#endif
{
/* 25 10 */ typedef integer fndefloc ;
hashptr2 singlfunction[singlefnspace + 1] ;
fndefloc singleptr ;
fndefloc copyptr ;
bufpointer endofnum ;
hashloc implfnloc ;
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
singleptr = 0 ;
while ( ( buffer [bufptr2 ]!= 125 ) ) {
switch ( ( buffer [bufptr2 ]) )
{case 35 :
{
bufptr2 = bufptr2 + 1 ;
if ( ( ! scaninteger () ) )
{
{
Fputs( logfile , "Illegal integer in integer literal" ) ;
Fputs( standardoutput , "Illegal integer in integer literal" ) ;
}
skiptokenprint () ;
goto lab25 ;
}
;
#ifdef TRACE
{
putc ( '#' , logfile );
}
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s%ld\n", " is an integer literal with value " , (long)tokenvalue ) ;
}
#endif /* TRACE */
literalloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 1
, true ) ;
if ( ( ! hashfound ) )
{
fntype [literalloc ]= 2 ;
ilkinfo [literalloc ]= tokenvalue ;
}
if ( ( ( lexclass [buffer [bufptr2 ]]!= 1 ) && ( bufptr2 < last )
&& ( buffer [bufptr2 ]!= 125 ) && ( buffer [bufptr2 ]!= 37 ) ) )
{
skipillegalstuffaftertokenprint () ;
goto lab25 ;
}
{
singlfunction [singleptr ]= literalloc ;
if ( ( singleptr == singlefnspace ) )
singlfnoverflow () ;
singleptr = singleptr + 1 ;
}
}
break ;
case 34 :
{
bufptr2 = bufptr2 + 1 ;
if ( ( ! scan1 ( 34 ) ) )
{
{
fprintf( logfile , "%s%c%s", "No `" , xchr [34 ], "' to end string literal" ) ;
fprintf( standardoutput , "%s%c%s", "No `" , xchr [34 ], "' to end string literal" ) ;
}
skiptokenprint () ;
goto lab25 ;
}
;
#ifdef TRACE
{
putc ( '"' , logfile );
}
{
outtoken ( logfile ) ;
}
{
putc ( '"' , logfile );
}
{
fprintf( logfile , "%s\n", " is a string literal" ) ;
}
#endif /* TRACE */
literalloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 0
, true ) ;
fntype [literalloc ]= 3 ;
bufptr2 = bufptr2 + 1 ;
if ( ( ( lexclass [buffer [bufptr2 ]]!= 1 ) && ( bufptr2 < last )
&& ( buffer [bufptr2 ]!= 125 ) && ( buffer [bufptr2 ]!= 37 ) ) )
{
skipillegalstuffaftertokenprint () ;
goto lab25 ;
}
{
singlfunction [singleptr ]= literalloc ;
if ( ( singleptr == singlefnspace ) )
singlfnoverflow () ;
singleptr = singleptr + 1 ;
}
}
break ;
case 39 :
{
bufptr2 = bufptr2 + 1 ;
if ( ( scan2white ( 125 , 37 ) ) )
;
;
#ifdef TRACE
{
putc ( '\'' , logfile );
}
{
outtoken ( logfile ) ;
}
{
Fputs( logfile , " is a quoted function " ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fnloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 ,
false ) ;
if ( ( ! hashfound ) )
{
skptokenunknownfunctionprint () ;
goto lab25 ;
}
else {
if ( ( fnloc == wizloc ) )
{
printrecursionillegal () ;
goto lab25 ;
}
else {
;
#ifdef TRACE
{
Fputs( logfile , "of type " ) ;
}
traceprfnclass ( fnloc ) ;
{
putc ('\n', logfile );
}
#endif /* TRACE */
{
singlfunction [singleptr ]= quotenextfn ;
if ( ( singleptr == singlefnspace ) )
singlfnoverflow () ;
singleptr = singleptr + 1 ;
}
{
singlfunction [singleptr ]= fnloc ;
if ( ( singleptr == singlefnspace ) )
singlfnoverflow () ;
singleptr = singleptr + 1 ;
}
}
}
}
break ;
case 123 :
{
exbuf [0 ]= 39 ;
inttoASCII ( implfnnum , exbuf , 1 , endofnum ) ;
implfnloc = strlookup ( exbuf , 0 , endofnum , 11 , true ) ;
if ( ( hashfound ) )
{
{
Fputs( logfile , "Already encountered implicit function" ) ;
Fputs( standardoutput , "Already encountered implicit function" )
;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
;
#ifdef TRACE
{
outpoolstr ( logfile , hashtext [implfnloc ]) ;
}
{
fprintf( logfile , "%s\n", " is an implicit function" ) ;
}
#endif /* TRACE */
implfnnum = implfnnum + 1 ;
fntype [implfnloc ]= 1 ;
{
singlfunction [singleptr ]= quotenextfn ;
if ( ( singleptr == singlefnspace ) )
singlfnoverflow () ;
singleptr = singleptr + 1 ;
}
{
singlfunction [singleptr ]= implfnloc ;
if ( ( singleptr == singlefnspace ) )
singlfnoverflow () ;
singleptr = singleptr + 1 ;
}
bufptr2 = bufptr2 + 1 ;
scanfndef ( implfnloc ) ;
}
break ;
default:
{
if ( ( scan2white ( 125 , 37 ) ) )
;
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
Fputs( logfile , " is a function " ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fnloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 ,
false ) ;
if ( ( ! hashfound ) )
{
skptokenunknownfunctionprint () ;
goto lab25 ;
}
else if ( ( fnloc == wizloc ) )
{
printrecursionillegal () ;
goto lab25 ;
}
else {
;
#ifdef TRACE
{
Fputs( logfile , "of type " ) ;
}
traceprfnclass ( fnloc ) ;
{
putc ('\n', logfile );
}
#endif /* TRACE */
{
singlfunction [singleptr ]= fnloc ;
if ( ( singleptr == singlefnspace ) )
singlfnoverflow () ;
singleptr = singleptr + 1 ;
}
}
}
break ;
}
lab25: {
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
}
{
{
singlfunction [singleptr ]= endofdef ;
if ( ( singleptr == singlefnspace ) )
singlfnoverflow () ;
singleptr = singleptr + 1 ;
}
if ( ( singleptr + wizdefptr > wizfnspace ) )
{
BIBXRETALLOC ( "wiz_functions" , wizfunctions , hashptr2 , wizfnspace ,
wizfnspace + WIZFNSPACE ) ;
}
ilkinfo [fnhashloc ]= wizdefptr ;
copyptr = 0 ;
while ( ( copyptr < singleptr ) ) {
wizfunctions [wizdefptr ]= singlfunction [copyptr ];
copyptr = copyptr + 1 ;
wizdefptr = wizdefptr + 1 ;
}
}
bufptr2 = bufptr2 + 1 ;
lab10: ;
}
boolean
#ifdef HAVE_PROTOTYPES
eatbibwhitespace ( void )
#else
eatbibwhitespace ( )
#endif
{
/* 10 */ register boolean Result; while ( ( ! scanwhitespace () ) ) {
if ( ( ! inputln ( bibfile [bibptr ]) ) )
{
Result = false ;
goto lab10 ;
}
biblinenum = biblinenum + 1 ;
bufptr2 = 0 ;
}
Result = true ;
lab10: ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
compressbibwhite ( void )
#else
compressbibwhite ( )
#endif
{
/* 10 */ register boolean Result; Result = false ;
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= 32 ;
exbufptr = exbufptr + 1 ;
}
}
while ( ( ! scanwhitespace () ) ) {
if ( ( ! inputln ( bibfile [bibptr ]) ) )
{
eatbibprint () ;
goto lab10 ;
}
biblinenum = biblinenum + 1 ;
bufptr2 = 0 ;
}
Result = true ;
lab10: ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
scanbalancedbraces ( void )
#else
scanbalancedbraces ( )
#endif
{
/* 15 10 */ register boolean Result; Result = false ;
bufptr2 = bufptr2 + 1 ;
{
if ( ( ( lexclass [buffer [bufptr2 ]]== 1 ) || ( bufptr2 == last ) ) )
if ( ( ! compressbibwhite () ) )
goto lab10 ;
}
if ( ( exbufptr > 1 ) )
if ( ( exbuf [exbufptr - 1 ]== 32 ) )
if ( ( exbuf [exbufptr - 2 ]== 32 ) )
exbufptr = exbufptr - 1 ;
bibbracelevel = 0 ;
if ( ( storefield ) )
{
while ( ( buffer [bufptr2 ]!= rightstrdelim ) ) switch ( ( buffer [
bufptr2 ]) )
{case 123 :
{
bibbracelevel = bibbracelevel + 1 ;
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= 123 ;
exbufptr = exbufptr + 1 ;
}
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ( lexclass [buffer [bufptr2 ]]== 1 ) || ( bufptr2 == last
) ) )
if ( ( ! compressbibwhite () ) )
goto lab10 ;
}
{
while ( true ) switch ( ( buffer [bufptr2 ]) )
{case 125 :
{
bibbracelevel = bibbracelevel - 1 ;
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= 125 ;
exbufptr = exbufptr + 1 ;
}
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ( lexclass [buffer [bufptr2 ]]== 1 ) || ( bufptr2
== last ) ) )
if ( ( ! compressbibwhite () ) )
goto lab10 ;
}
if ( ( bibbracelevel == 0 ) )
goto lab15 ;
}
break ;
case 123 :
{
bibbracelevel = bibbracelevel + 1 ;
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= 123 ;
exbufptr = exbufptr + 1 ;
}
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ( lexclass [buffer [bufptr2 ]]== 1 ) || ( bufptr2
== last ) ) )
if ( ( ! compressbibwhite () ) )
goto lab10 ;
}
}
break ;
default:
{
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= buffer [bufptr2 ];
exbufptr = exbufptr + 1 ;
}
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ( lexclass [buffer [bufptr2 ]]== 1 ) || ( bufptr2
== last ) ) )
if ( ( ! compressbibwhite () ) )
goto lab10 ;
}
}
break ;
}
lab15: ;
}
}
break ;
case 125 :
{
bibunbalancedbracesprint () ;
goto lab10 ;
}
break ;
default:
{
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= buffer [bufptr2 ];
exbufptr = exbufptr + 1 ;
}
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ( lexclass [buffer [bufptr2 ]]== 1 ) || ( bufptr2 == last
) ) )
if ( ( ! compressbibwhite () ) )
goto lab10 ;
}
}
break ;
}
}
else {
while ( ( buffer [bufptr2 ]!= rightstrdelim ) ) if ( ( buffer [bufptr2
]== 123 ) )
{
bibbracelevel = bibbracelevel + 1 ;
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
while ( ( bibbracelevel > 0 ) ) {
if ( ( buffer [bufptr2 ]== 125 ) )
{
bibbracelevel = bibbracelevel - 1 ;
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
}
else if ( ( buffer [bufptr2 ]== 123 ) )
{
bibbracelevel = bibbracelevel + 1 ;
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
}
else {
bufptr2 = bufptr2 + 1 ;
if ( ( ! scan2 ( 125 , 123 ) ) )
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
}
}
}
else if ( ( buffer [bufptr2 ]== 125 ) )
{
bibunbalancedbracesprint () ;
goto lab10 ;
}
else {
bufptr2 = bufptr2 + 1 ;
if ( ( ! scan3 ( rightstrdelim , 123 , 125 ) ) )
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
}
}
bufptr2 = bufptr2 + 1 ;
Result = true ;
lab10: ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
scanafieldtokenandeatwhite ( void )
#else
scanafieldtokenandeatwhite ( )
#endif
{
/* 10 */ register boolean Result; Result = false ;
switch ( ( buffer [bufptr2 ]) )
{case 123 :
{
rightstrdelim = 125 ;
if ( ( ! scanbalancedbraces () ) )
goto lab10 ;
}
break ;
case 34 :
{
rightstrdelim = 34 ;
if ( ( ! scanbalancedbraces () ) )
goto lab10 ;
}
break ;
case 48 :
case 49 :
case 50 :
case 51 :
case 52 :
case 53 :
case 54 :
case 55 :
case 56 :
case 57 :
{
if ( ( ! scannonneginteger () ) )
{
{
Fputs( logfile , "A digit disappeared" ) ;
Fputs( standardoutput , "A digit disappeared" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
if ( ( storefield ) )
{
tmpptr = bufptr1 ;
while ( ( tmpptr < bufptr2 ) ) {
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= buffer [tmpptr ];
exbufptr = exbufptr + 1 ;
}
}
tmpptr = tmpptr + 1 ;
}
}
}
break ;
default:
{
scanidentifier ( 44 , rightouterdelim , 35 ) ;
{
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bibidprint () ;
{
{
Fputs( logfile , "a field part" ) ;
Fputs( standardoutput , "a field part" ) ;
}
biberrprint () ;
goto lab10 ;
}
}
}
if ( ( storefield ) )
{
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
macronameloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ,
13 , false ) ;
storetoken = true ;
if ( ( atbibcommand ) )
if ( ( commandnum == 2 ) )
if ( ( macronameloc == curmacroloc ) )
{
storetoken = false ;
{
macrowarnprint () ;
{
{
fprintf( logfile , "%s\n", "used in its own definition" ) ;
fprintf( standardoutput , "%s\n", "used in its own definition" ) ;
}
bibwarnprint () ;
}
}
}
if ( ( ! hashfound ) )
{
storetoken = false ;
{
macrowarnprint () ;
{
{
fprintf( logfile , "%s\n", "undefined" ) ;
fprintf( standardoutput , "%s\n", "undefined" ) ;
}
bibwarnprint () ;
}
}
}
if ( ( storetoken ) )
{
tmpptr = strstart [ilkinfo [macronameloc ]];
tmpendptr = strstart [ilkinfo [macronameloc ]+ 1 ];
if ( ( exbufptr == 0 ) )
if ( ( ( lexclass [strpool [tmpptr ]]== 1 ) && ( tmpptr <
tmpendptr ) ) )
{
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= 32 ;
exbufptr = exbufptr + 1 ;
}
}
tmpptr = tmpptr + 1 ;
while ( ( ( lexclass [strpool [tmpptr ]]== 1 ) && ( tmpptr <
tmpendptr ) ) ) tmpptr = tmpptr + 1 ;
}
while ( ( tmpptr < tmpendptr ) ) {
if ( ( lexclass [strpool [tmpptr ]]!= 1 ) )
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= strpool [tmpptr ];
exbufptr = exbufptr + 1 ;
}
}
else if ( ( exbuf [exbufptr - 1 ]!= 32 ) )
{
if ( ( exbufptr == bufsize ) )
{
bibfieldtoolongprint () ;
goto lab10 ;
}
else {
exbuf [exbufptr ]= 32 ;
exbufptr = exbufptr + 1 ;
}
}
tmpptr = tmpptr + 1 ;
}
}
}
}
break ;
}
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
Result = true ;
lab10: ;
return Result ;
}
boolean
#ifdef HAVE_PROTOTYPES
scanandstorethefieldvalueandeatwhite ( void )
#else
scanandstorethefieldvalueandeatwhite ( )
#endif
{
/* 10 */ register boolean Result; Result = false ;
exbufptr = 0 ;
if ( ( ! scanafieldtokenandeatwhite () ) )
goto lab10 ;
while ( ( buffer [bufptr2 ]== 35 ) ) {
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
if ( ( ! scanafieldtokenandeatwhite () ) )
goto lab10 ;
}
if ( ( storefield ) )
{
if ( ( ! atbibcommand ) )
if ( ( exbufptr > 0 ) )
if ( ( exbuf [exbufptr - 1 ]== 32 ) )
exbufptr = exbufptr - 1 ;
if ( ( ( ! atbibcommand ) && ( exbuf [0 ]== 32 ) && ( exbufptr > 0 ) ) )
exbufxptr = 1 ;
else exbufxptr = 0 ;
fieldvalloc = strlookup ( exbuf , exbufxptr , exbufptr - exbufxptr , 0 ,
true ) ;
fntype [fieldvalloc ]= 3 ;
;
#ifdef TRACE
{
putc ( '"' , logfile );
}
{
outpoolstr ( logfile , hashtext [fieldvalloc ]) ;
}
{
fprintf( logfile , "%s\n", "\" is a field value" ) ;
}
#endif /* TRACE */
if ( ( atbibcommand ) )
{
switch ( ( commandnum ) )
{case 1 :
{
spreamble [preambleptr ]= hashtext [fieldvalloc ];
preambleptr = preambleptr + 1 ;
}
break ;
case 2 :
ilkinfo [curmacroloc ]= hashtext [fieldvalloc ];
break ;
default:
bibcmdconfusion () ;
break ;
}
}
else {
fieldptr = entryciteptr * numfields + ilkinfo [fieldnameloc ];
checkfieldoverflow ( fieldptr ) ;
if ( ( fieldinfo [fieldptr ]!= 0 ) )
{
{
Fputs( logfile , "Warning--I'm ignoring " ) ;
Fputs( standardoutput , "Warning--I'm ignoring " ) ;
}
printapoolstr ( citelist [entryciteptr ]) ;
{
Fputs( logfile , "'s extra \"" ) ;
Fputs( standardoutput , "'s extra \"" ) ;
}
printapoolstr ( hashtext [fieldnameloc ]) ;
{
{
fprintf( logfile , "%s\n", "\" field" ) ;
fprintf( standardoutput , "%s\n", "\" field" ) ;
}
bibwarnprint () ;
}
}
else {
fieldinfo [fieldptr ]= hashtext [fieldvalloc ];
if ( ( ( ilkinfo [fieldnameloc ]== crossrefnum ) && ( ! allentries )
) )
{
tmpptr = exbufxptr ;
while ( ( tmpptr < exbufptr ) ) {
outbuf [tmpptr ]= exbuf [tmpptr ];
tmpptr = tmpptr + 1 ;
}
lowercase ( outbuf , exbufxptr , exbufptr - exbufxptr ) ;
lcciteloc = strlookup ( outbuf , exbufxptr , exbufptr - exbufxptr ,
10 , true ) ;
if ( ( hashfound ) )
{
citeloc = ilkinfo [lcciteloc ];
if ( ( ilkinfo [citeloc ]>= oldnumcites ) )
citeinfo [ilkinfo [citeloc ]]= citeinfo [ilkinfo [citeloc ]
]+ 1 ;
}
else {
citeloc = strlookup ( exbuf , exbufxptr , exbufptr - exbufxptr , 9
, true ) ;
if ( ( hashfound ) )
hashciteconfusion () ;
adddatabasecite ( citeptr ) ;
citeinfo [ilkinfo [citeloc ]]= 1 ;
}
}
}
}
}
Result = true ;
lab10: ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
zdecrbracelevel ( strnumber poplitvar )
#else
zdecrbracelevel ( poplitvar )
strnumber poplitvar ;
#endif
{
if ( ( bracelevel == 0 ) )
bracesunbalancedcomplaint ( poplitvar ) ;
else bracelevel = bracelevel - 1 ;
}
void
#ifdef HAVE_PROTOTYPES
zcheckbracelevel ( strnumber poplitvar )
#else
zcheckbracelevel ( poplitvar )
strnumber poplitvar ;
#endif
{
if ( ( bracelevel > 0 ) )
bracesunbalancedcomplaint ( poplitvar ) ;
}
void
#ifdef HAVE_PROTOTYPES
znamescanforand ( strnumber poplitvar )
#else
znamescanforand ( poplitvar )
strnumber poplitvar ;
#endif
{
bracelevel = 0 ;
precedingwhite = false ;
andfound = false ;
while ( ( ( ! andfound ) && ( exbufptr < exbuflength ) ) ) switch ( ( exbuf
[exbufptr ]) )
{case 97 :
case 65 :
{
exbufptr = exbufptr + 1 ;
if ( ( precedingwhite ) )
{
if ( ( exbufptr <= ( exbuflength - 3 ) ) )
if ( ( ( exbuf [exbufptr ]== 110 ) || ( exbuf [exbufptr ]== 78 ) )
)
if ( ( ( exbuf [exbufptr + 1 ]== 100 ) || ( exbuf [exbufptr + 1 ]
== 68 ) ) )
if ( ( lexclass [exbuf [exbufptr + 2 ]]== 1 ) )
{
exbufptr = exbufptr + 2 ;
andfound = true ;
}
}
precedingwhite = false ;
}
break ;
case 123 :
{
bracelevel = bracelevel + 1 ;
exbufptr = exbufptr + 1 ;
while ( ( ( bracelevel > 0 ) && ( exbufptr < exbuflength ) ) ) {
if ( ( exbuf [exbufptr ]== 125 ) )
bracelevel = bracelevel - 1 ;
else if ( ( exbuf [exbufptr ]== 123 ) )
bracelevel = bracelevel + 1 ;
exbufptr = exbufptr + 1 ;
}
precedingwhite = false ;
}
break ;
case 125 :
{
decrbracelevel ( poplitvar ) ;
exbufptr = exbufptr + 1 ;
precedingwhite = false ;
}
break ;
default:
if ( ( lexclass [exbuf [exbufptr ]]== 1 ) )
{
exbufptr = exbufptr + 1 ;
precedingwhite = true ;
}
else {
exbufptr = exbufptr + 1 ;
precedingwhite = false ;
}
break ;
}
checkbracelevel ( poplitvar ) ;
}
boolean
#ifdef HAVE_PROTOTYPES
vontokenfound ( void )
#else
vontokenfound ( )
#endif
{
/* 10 */ register boolean Result; nmbracelevel = 0 ;
Result = false ;
while ( ( namebfptr < namebfxptr ) ) if ( ( ( svbuffer [namebfptr ]>= 65 )
&& ( svbuffer [namebfptr ]<= 90 ) ) )
goto lab10 ;
else if ( ( ( svbuffer [namebfptr ]>= 97 ) && ( svbuffer [namebfptr ]<=
122 ) ) )
{
Result = true ;
goto lab10 ;
}
else if ( ( svbuffer [namebfptr ]== 123 ) )
{
nmbracelevel = nmbracelevel + 1 ;
namebfptr = namebfptr + 1 ;
if ( ( ( namebfptr + 2 < namebfxptr ) && ( svbuffer [namebfptr ]== 92 )
) )
{
namebfptr = namebfptr + 1 ;
namebfyptr = namebfptr ;
while ( ( ( namebfptr < namebfxptr ) && ( lexclass [svbuffer [
namebfptr ]]== 2 ) ) ) namebfptr = namebfptr + 1 ;
controlseqloc = strlookup ( svbuffer , namebfyptr , namebfptr -
namebfyptr , 14 , false ) ;
if ( ( hashfound ) )
{
switch ( ( ilkinfo [controlseqloc ]) )
{case 3 :
case 5 :
case 7 :
case 9 :
case 11 :
goto lab10 ;
break ;
case 0 :
case 1 :
case 2 :
case 4 :
case 6 :
case 8 :
case 10 :
case 12 :
{
Result = true ;
goto lab10 ;
}
break ;
default:
{
{
Fputs( logfile , "Control-sequence hash error" ) ;
Fputs( standardoutput , "Control-sequence hash error" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
break ;
}
}
while ( ( ( namebfptr < namebfxptr ) && ( nmbracelevel > 0 ) ) ) {
if ( ( ( svbuffer [namebfptr ]>= 65 ) && ( svbuffer [namebfptr ]<=
90 ) ) )
goto lab10 ;
else if ( ( ( svbuffer [namebfptr ]>= 97 ) && ( svbuffer [namebfptr
]<= 122 ) ) )
{
Result = true ;
goto lab10 ;
}
else if ( ( svbuffer [namebfptr ]== 125 ) )
nmbracelevel = nmbracelevel - 1 ;
else if ( ( svbuffer [namebfptr ]== 123 ) )
nmbracelevel = nmbracelevel + 1 ;
namebfptr = namebfptr + 1 ;
}
goto lab10 ;
}
else while ( ( ( nmbracelevel > 0 ) && ( namebfptr < namebfxptr ) ) ) {
if ( ( svbuffer [namebfptr ]== 125 ) )
nmbracelevel = nmbracelevel - 1 ;
else if ( ( svbuffer [namebfptr ]== 123 ) )
nmbracelevel = nmbracelevel + 1 ;
namebfptr = namebfptr + 1 ;
}
}
else namebfptr = namebfptr + 1 ;
lab10: ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
vonnameendsandlastnamestartsstuff ( void )
#else
vonnameendsandlastnamestartsstuff ( )
#endif
{
/* 10 */ vonend = lastend - 1 ;
while ( ( vonend > vonstart ) ) {
namebfptr = nametok [vonend - 1 ];
namebfxptr = nametok [vonend ];
if ( ( vontokenfound () ) )
goto lab10 ;
vonend = vonend - 1 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
skipstuffatspbracelevelgreaterthanone ( void )
#else
skipstuffatspbracelevelgreaterthanone ( )
#endif
{
while ( ( ( spbracelevel > 1 ) && ( spptr < spend ) ) ) {
if ( ( strpool [spptr ]== 125 ) )
spbracelevel = spbracelevel - 1 ;
else if ( ( strpool [spptr ]== 123 ) )
spbracelevel = spbracelevel + 1 ;
spptr = spptr + 1 ;
}
}
void
#ifdef HAVE_PROTOTYPES
bracelvloneletterscomplaint ( void )
#else
bracelvloneletterscomplaint ( )
#endif
{
{
Fputs( logfile , "The format string \"" ) ;
Fputs( standardoutput , "The format string \"" ) ;
}
printapoolstr ( poplit1 ) ;
{
{
Fputs( logfile , "\" has an illegal brace-level-1 letter" ) ;
Fputs( standardoutput , "\" has an illegal brace-level-1 letter" ) ;
}
bstexwarnprint () ;
}
}
boolean
#ifdef HAVE_PROTOTYPES
zenoughtextchars ( bufpointer enoughchars )
#else
zenoughtextchars ( enoughchars )
bufpointer enoughchars ;
#endif
{
register boolean Result; numtextchars = 0 ;
exbufyptr = exbufxptr ;
while ( ( ( exbufyptr < exbufptr ) && ( numtextchars < enoughchars ) ) ) {
exbufyptr = exbufyptr + 1 ;
if ( ( exbuf [exbufyptr - 1 ]== 123 ) )
{
bracelevel = bracelevel + 1 ;
if ( ( ( bracelevel == 1 ) && ( exbufyptr < exbufptr ) ) )
if ( ( exbuf [exbufyptr ]== 92 ) )
{
exbufyptr = exbufyptr + 1 ;
while ( ( ( exbufyptr < exbufptr ) && ( bracelevel > 0 ) ) ) {
if ( ( exbuf [exbufyptr ]== 125 ) )
bracelevel = bracelevel - 1 ;
else if ( ( exbuf [exbufyptr ]== 123 ) )
bracelevel = bracelevel + 1 ;
exbufyptr = exbufyptr + 1 ;
}
}
}
else if ( ( exbuf [exbufyptr - 1 ]== 125 ) )
bracelevel = bracelevel - 1 ;
numtextchars = numtextchars + 1 ;
}
if ( ( numtextchars < enoughchars ) )
Result = false ;
else Result = true ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
figureouttheformattedname ( void )
#else
figureouttheformattedname ( )
#endif
{
/* 15 */ {
exbufptr = 0 ;
spbracelevel = 0 ;
spptr = strstart [poplit1 ];
spend = strstart [poplit1 + 1 ];
while ( ( spptr < spend ) ) if ( ( strpool [spptr ]== 123 ) )
{
spbracelevel = spbracelevel + 1 ;
spptr = spptr + 1 ;
{
spxptr1 = spptr ;
alphafound = false ;
doubleletter = false ;
endofgroup = false ;
tobewritten = true ;
while ( ( ( ! endofgroup ) && ( spptr < spend ) ) ) if ( ( lexclass [
strpool [spptr ]]== 2 ) )
{
spptr = spptr + 1 ;
{
if ( ( alphafound ) )
{
bracelvloneletterscomplaint () ;
tobewritten = false ;
}
else {
switch ( ( strpool [spptr - 1 ]) )
{case 102 :
case 70 :
{
curtoken = firststart ;
lasttoken = firstend ;
if ( ( curtoken == lasttoken ) )
tobewritten = false ;
if ( ( ( strpool [spptr ]== 102 ) || ( strpool [spptr ]
== 70 ) ) )
doubleletter = true ;
}
break ;
case 118 :
case 86 :
{
curtoken = vonstart ;
lasttoken = vonend ;
if ( ( curtoken == lasttoken ) )
tobewritten = false ;
if ( ( ( strpool [spptr ]== 118 ) || ( strpool [spptr ]
== 86 ) ) )
doubleletter = true ;
}
break ;
case 108 :
case 76 :
{
curtoken = vonend ;
lasttoken = lastend ;
if ( ( curtoken == lasttoken ) )
tobewritten = false ;
if ( ( ( strpool [spptr ]== 108 ) || ( strpool [spptr ]
== 76 ) ) )
doubleletter = true ;
}
break ;
case 106 :
case 74 :
{
curtoken = lastend ;
lasttoken = jrend ;
if ( ( curtoken == lasttoken ) )
tobewritten = false ;
if ( ( ( strpool [spptr ]== 106 ) || ( strpool [spptr ]
== 74 ) ) )
doubleletter = true ;
}
break ;
default:
{
bracelvloneletterscomplaint () ;
tobewritten = false ;
}
break ;
}
if ( ( doubleletter ) )
spptr = spptr + 1 ;
}
alphafound = true ;
}
}
else if ( ( strpool [spptr ]== 125 ) )
{
spbracelevel = spbracelevel - 1 ;
spptr = spptr + 1 ;
endofgroup = true ;
}
else if ( ( strpool [spptr ]== 123 ) )
{
spbracelevel = spbracelevel + 1 ;
spptr = spptr + 1 ;
skipstuffatspbracelevelgreaterthanone () ;
}
else spptr = spptr + 1 ;
if ( ( ( endofgroup ) && ( tobewritten ) ) )
{
exbufxptr = exbufptr ;
spptr = spxptr1 ;
spbracelevel = 1 ;
while ( ( spbracelevel > 0 ) ) if ( ( ( lexclass [strpool [spptr ]
]== 2 ) && ( spbracelevel == 1 ) ) )
{
spptr = spptr + 1 ;
{
if ( ( doubleletter ) )
spptr = spptr + 1 ;
usedefault = true ;
spxptr2 = spptr ;
if ( ( strpool [spptr ]== 123 ) )
{
usedefault = false ;
spbracelevel = spbracelevel + 1 ;
spptr = spptr + 1 ;
spxptr1 = spptr ;
skipstuffatspbracelevelgreaterthanone () ;
spxptr2 = spptr - 1 ;
}
while ( ( curtoken < lasttoken ) ) {
if ( ( doubleletter ) )
{
namebfptr = nametok [curtoken ];
namebfxptr = nametok [curtoken + 1 ];
if ( ( exbuflength + ( namebfxptr - namebfptr ) > bufsize )
)
bufferoverflow () ;
while ( ( namebfptr < namebfxptr ) ) {
{
exbuf [exbufptr ]= svbuffer [namebfptr ];
exbufptr = exbufptr + 1 ;
}
namebfptr = namebfptr + 1 ;
}
}
else {
namebfptr = nametok [curtoken ];
namebfxptr = nametok [curtoken + 1 ];
while ( ( namebfptr < namebfxptr ) ) {
if ( ( lexclass [svbuffer [namebfptr ]]== 2 ) )
{
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= svbuffer [namebfptr ];
exbufptr = exbufptr + 1 ;
}
}
goto lab15 ;
}
else if ( ( ( svbuffer [namebfptr ]== 123 ) && (
namebfptr + 1 < namebfxptr ) ) )
if ( ( svbuffer [namebfptr + 1 ]== 92 ) )
{
if ( ( exbufptr + 2 > bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= 123 ;
exbufptr = exbufptr + 1 ;
}
{
exbuf [exbufptr ]= 92 ;
exbufptr = exbufptr + 1 ;
}
namebfptr = namebfptr + 2 ;
nmbracelevel = 1 ;
while ( ( ( namebfptr < namebfxptr ) && ( nmbracelevel >
0 ) ) ) {
if ( ( svbuffer [namebfptr ]== 125 ) )
nmbracelevel = nmbracelevel - 1 ;
else if ( ( svbuffer [namebfptr ]== 123 ) )
nmbracelevel = nmbracelevel + 1 ;
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= svbuffer [namebfptr ];
exbufptr = exbufptr + 1 ;
}
}
namebfptr = namebfptr + 1 ;
}
goto lab15 ;
}
namebfptr = namebfptr + 1 ;
}
lab15: ;
}
curtoken = curtoken + 1 ;
if ( ( curtoken < lasttoken ) )
{
if ( ( usedefault ) )
{
if ( ( ! doubleletter ) )
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= 46 ;
exbufptr = exbufptr + 1 ;
}
}
if ( ( lexclass [namesepchar [curtoken ]]== 4 ) )
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= namesepchar [curtoken ];
exbufptr = exbufptr + 1 ;
}
}
else if ( ( ( curtoken == lasttoken - 1 ) || ( !
enoughtextchars ( 3 ) ) ) )
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= 126 ;
exbufptr = exbufptr + 1 ;
}
}
else {
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= 32 ;
exbufptr = exbufptr + 1 ;
}
}
}
else {
if ( ( exbuflength + ( spxptr2 - spxptr1 ) > bufsize ) )
bufferoverflow () ;
spptr = spxptr1 ;
while ( ( spptr < spxptr2 ) ) {
{
exbuf [exbufptr ]= strpool [spptr ];
exbufptr = exbufptr + 1 ;
}
spptr = spptr + 1 ;
}
}
}
}
if ( ( ! usedefault ) )
spptr = spxptr2 + 1 ;
}
}
else if ( ( strpool [spptr ]== 125 ) )
{
spbracelevel = spbracelevel - 1 ;
spptr = spptr + 1 ;
if ( ( spbracelevel > 0 ) )
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= 125 ;
exbufptr = exbufptr + 1 ;
}
}
}
else if ( ( strpool [spptr ]== 123 ) )
{
spbracelevel = spbracelevel + 1 ;
spptr = spptr + 1 ;
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= 123 ;
exbufptr = exbufptr + 1 ;
}
}
}
else {
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= strpool [spptr ];
exbufptr = exbufptr + 1 ;
}
}
spptr = spptr + 1 ;
}
if ( ( exbufptr > 0 ) )
if ( ( exbuf [exbufptr - 1 ]== 126 ) )
{
exbufptr = exbufptr - 1 ;
if ( ( exbuf [exbufptr - 1 ]== 126 ) )
;
else if ( ( ! enoughtextchars ( 3 ) ) )
exbufptr = exbufptr + 1 ;
else {
exbuf [exbufptr ]= 32 ;
exbufptr = exbufptr + 1 ;
}
}
}
}
}
else if ( ( strpool [spptr ]== 125 ) )
{
bracesunbalancedcomplaint ( poplit1 ) ;
spptr = spptr + 1 ;
}
else {
{
if ( ( exbufptr == bufsize ) )
bufferoverflow () ;
{
exbuf [exbufptr ]= strpool [spptr ];
exbufptr = exbufptr + 1 ;
}
}
spptr = spptr + 1 ;
}
if ( ( spbracelevel > 0 ) )
bracesunbalancedcomplaint ( poplit1 ) ;
exbuflength = exbufptr ;
}
}
void
#ifdef HAVE_PROTOTYPES
zpushlitstk ( integer pushlt , stktype pushtype )
#else
zpushlitstk ( pushlt , pushtype )
integer pushlt ;
stktype pushtype ;
#endif
{
#ifdef TRACE
litstkloc dumptr ;
#endif /* TRACE */
litstack [litstkptr ]= pushlt ;
litstktype [litstkptr ]= pushtype ;
;
#ifdef TRACE
{register integer for_end; dumptr = 0 ;for_end = litstkptr ; if ( dumptr
<= for_end) do
{
Fputs( logfile , " " ) ;
}
while ( dumptr++ < for_end ) ;}
{
Fputs( logfile , "Pushing " ) ;
}
switch ( ( litstktype [litstkptr ]) )
{case 0 :
{
fprintf( logfile , "%ld\n", (long)litstack [litstkptr ]) ;
}
break ;
case 1 :
{
{
putc ( '"' , logfile );
}
{
outpoolstr ( logfile , litstack [litstkptr ]) ;
}
{
fprintf( logfile , "%c\n", '"' ) ;
}
}
break ;
case 2 :
{
{
putc ( '`' , logfile );
}
{
outpoolstr ( logfile , hashtext [litstack [litstkptr ]]) ;
}
{
fprintf( logfile , "%c\n", '\'' ) ;
}
}
break ;
case 3 :
{
{
Fputs( logfile , "missing field `" ) ;
}
{
outpoolstr ( logfile , litstack [litstkptr ]) ;
}
{
fprintf( logfile , "%c\n", '\'' ) ;
}
}
break ;
case 4 :
{
fprintf( logfile , "%s\n", "a bad literal--popped from an empty stack" ) ;
}
break ;
default:
unknwnliteralconfusion () ;
break ;
}
#endif /* TRACE */
if ( ( litstkptr == litstksize ) )
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "literal-stack size " , (long)litstksize ) ;
fprintf( standardoutput , "%s%ld\n", "literal-stack size " , (long)litstksize ) ;
}
longjmp(jmp9998,1) ;
}
litstkptr = litstkptr + 1 ;
}
void
#ifdef HAVE_PROTOTYPES
zzpoplitstk ( integer * poplit , stktype * poptype )
#else
zzpoplitstk ( poplit , poptype )
integer * poplit ;
stktype * poptype ;
#endif
{
if ( ( litstkptr == 0 ) )
{
{
{
Fputs( logfile , "You can't pop an empty literal stack" ) ;
Fputs( standardoutput , "You can't pop an empty literal stack" ) ;
}
bstexwarnprint () ;
}
* poptype = 4 ;
}
else {
litstkptr = litstkptr - 1 ;
* poplit = litstack [litstkptr ];
* poptype = litstktype [litstkptr ];
if ( ( *poptype == 1 ) )
if ( ( *poplit >= cmdstrptr ) )
{
if ( ( *poplit != strptr - 1 ) )
{
{
Fputs( logfile , "Nontop top of string stack" ) ;
Fputs( standardoutput , "Nontop top of string stack" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
{
strptr = strptr - 1 ;
poolptr = strstart [strptr ];
}
}
}
}
void
#ifdef HAVE_PROTOTYPES
zprintwrongstklit ( integer stklt , stktype stktp1 , stktype stktp2 )
#else
zprintwrongstklit ( stklt , stktp1 , stktp2 )
integer stklt ;
stktype stktp1 ;
stktype stktp2 ;
#endif
{
if ( ( stktp1 != 4 ) )
{
printstklit ( stklt , stktp1 ) ;
switch ( ( stktp2 ) )
{case 0 :
{
Fputs( logfile , ", not an integer," ) ;
Fputs( standardoutput , ", not an integer," ) ;
}
break ;
case 1 :
{
Fputs( logfile , ", not a string," ) ;
Fputs( standardoutput , ", not a string," ) ;
}
break ;
case 2 :
{
Fputs( logfile , ", not a function," ) ;
Fputs( standardoutput , ", not a function," ) ;
}
break ;
case 3 :
case 4 :
illeglliteralconfusion () ;
break ;
default:
unknwnliteralconfusion () ;
break ;
}
bstexwarnprint () ;
}
}
void
#ifdef HAVE_PROTOTYPES
poptopandprint ( void )
#else
poptopandprint ( )
#endif
{
integer stklt ;
stktype stktp ;
poplitstk ( stklt , stktp ) ;
if ( ( stktp == 4 ) )
{
fprintf( logfile , "%s\n", "Empty literal" ) ;
fprintf( standardoutput , "%s\n", "Empty literal" ) ;
}
else printlit ( stklt , stktp ) ;
}
void
#ifdef HAVE_PROTOTYPES
popwholestack ( void )
#else
popwholestack ( )
#endif
{
while ( ( litstkptr > 0 ) ) poptopandprint () ;
}
void
#ifdef HAVE_PROTOTYPES
initcommandexecution ( void )
#else
initcommandexecution ( )
#endif
{
litstkptr = 0 ;
cmdstrptr = strptr ;
}
void
#ifdef HAVE_PROTOTYPES
checkcommandexecution ( void )
#else
checkcommandexecution ( )
#endif
{
if ( ( litstkptr != 0 ) )
{
{
fprintf( logfile , "%s%ld%s\n", "ptr=" , (long)litstkptr , ", stack=" ) ;
fprintf( standardoutput , "%s%ld%s\n", "ptr=" , (long)litstkptr , ", stack=" ) ;
}
popwholestack () ;
{
{
Fputs( logfile , "---the literal stack isn't empty" ) ;
Fputs( standardoutput , "---the literal stack isn't empty" ) ;
}
bstexwarnprint () ;
}
}
if ( ( cmdstrptr != strptr ) )
{
;
#ifdef TRACE
{
fprintf( logfile , "%s%ld%s%ld\n", "Pointer is " , (long)strptr , " but should be " , (long)cmdstrptr ) ;
fprintf( standardoutput , "%s%ld%s%ld\n", "Pointer is " , (long)strptr , " but should be " , (long)cmdstrptr ) ;
}
#endif /* TRACE */
{
{
Fputs( logfile , "Nonempty empty string stack" ) ;
Fputs( standardoutput , "Nonempty empty string stack" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
}
void
#ifdef HAVE_PROTOTYPES
addpoolbufandpush ( void )
#else
addpoolbufandpush ( )
#endif
{
{
if ( ( poolptr + exbuflength > poolsize ) )
pooloverflow () ;
}
exbufptr = 0 ;
while ( ( exbufptr < exbuflength ) ) {
{
strpool [poolptr ]= exbuf [exbufptr ];
poolptr = poolptr + 1 ;
}
exbufptr = exbufptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
void
#ifdef HAVE_PROTOTYPES
zaddbufpool ( strnumber pstr )
#else
zaddbufpool ( pstr )
strnumber pstr ;
#endif
{
pptr1 = strstart [pstr ];
pptr2 = strstart [pstr + 1 ];
if ( ( exbuflength + ( pptr2 - pptr1 ) > bufsize ) )
bufferoverflow () ;
exbufptr = exbuflength ;
while ( ( pptr1 < pptr2 ) ) {
{
exbuf [exbufptr ]= strpool [pptr1 ];
exbufptr = exbufptr + 1 ;
}
pptr1 = pptr1 + 1 ;
}
exbuflength = exbufptr ;
}
void
#ifdef HAVE_PROTOTYPES
zaddoutpool ( strnumber pstr )
#else
zaddoutpool ( pstr )
strnumber pstr ;
#endif
{
bufpointer breakptr ;
bufpointer endptr ;
pptr1 = strstart [pstr ];
pptr2 = strstart [pstr + 1 ];
if ( ( outbuflength + ( pptr2 - pptr1 ) > bufsize ) )
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "output buffer size " , (long)bufsize ) ;
fprintf( standardoutput , "%s%ld\n", "output buffer size " , (long)bufsize ) ;
}
longjmp(jmp9998,1) ;
}
outbufptr = outbuflength ;
while ( ( pptr1 < pptr2 ) ) {
outbuf [outbufptr ]= strpool [pptr1 ];
pptr1 = pptr1 + 1 ;
outbufptr = outbufptr + 1 ;
}
outbuflength = outbufptr ;
while ( ( outbuflength > maxprintline ) ) {
endptr = outbuflength ;
outbufptr = maxprintline ;
while ( ( ( lexclass [outbuf [outbufptr ]]!= 1 ) && ( outbufptr >=
minprintline ) ) ) outbufptr = outbufptr - 1 ;
if ( ( outbufptr == minprintline - 1 ) )
{
outbuf [endptr ]= outbuf [maxprintline - 1 ];
outbuf [maxprintline - 1 ]= 37 ;
outbuflength = maxprintline ;
breakptr = outbuflength - 1 ;
outputbblline () ;
outbuf [maxprintline - 1 ]= outbuf [endptr ];
outbufptr = 0 ;
tmpptr = breakptr ;
while ( ( tmpptr < endptr ) ) {
outbuf [outbufptr ]= outbuf [tmpptr ];
outbufptr = outbufptr + 1 ;
tmpptr = tmpptr + 1 ;
}
outbuflength = endptr - breakptr ;
}
else {
outbuflength = outbufptr ;
breakptr = outbuflength + 1 ;
outputbblline () ;
outbuf [0 ]= 32 ;
outbuf [1 ]= 32 ;
outbufptr = 2 ;
tmpptr = breakptr ;
while ( ( tmpptr < endptr ) ) {
outbuf [outbufptr ]= outbuf [tmpptr ];
outbufptr = outbufptr + 1 ;
tmpptr = tmpptr + 1 ;
}
outbuflength = endptr - breakptr + 2 ;
}
}
}
void
#ifdef HAVE_PROTOTYPES
xequals ( void )
#else
xequals ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != poptyp2 ) )
{
if ( ( ( poptyp1 != 4 ) && ( poptyp2 != 4 ) ) )
{
printstklit ( poplit1 , poptyp1 ) ;
{
Fputs( logfile , ", " ) ;
Fputs( standardoutput , ", " ) ;
}
printstklit ( poplit2 , poptyp2 ) ;
printanewline () ;
{
{
Fputs( logfile , "---they aren't the same literal types" ) ;
Fputs( standardoutput , "---they aren't the same literal types" ) ;
}
bstexwarnprint () ;
}
}
pushlitstk ( 0 , 0 ) ;
}
else if ( ( ( poptyp1 != 0 ) && ( poptyp1 != 1 ) ) )
{
if ( ( poptyp1 != 4 ) )
{
printstklit ( poplit1 , poptyp1 ) ;
{
{
Fputs( logfile , ", not an integer or a string," ) ;
Fputs( standardoutput , ", not an integer or a string," ) ;
}
bstexwarnprint () ;
}
}
pushlitstk ( 0 , 0 ) ;
}
else if ( ( poptyp1 == 0 ) )
if ( ( poplit2 == poplit1 ) )
pushlitstk ( 1 , 0 ) ;
else pushlitstk ( 0 , 0 ) ;
else if ( ( streqstr ( poplit2 , poplit1 ) ) )
pushlitstk ( 1 , 0 ) ;
else pushlitstk ( 0 , 0 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xgreaterthan ( void )
#else
xgreaterthan ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
pushlitstk ( 0 , 0 ) ;
}
else if ( ( poptyp2 != 0 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 0 ) ;
pushlitstk ( 0 , 0 ) ;
}
else if ( ( poplit2 > poplit1 ) )
pushlitstk ( 1 , 0 ) ;
else pushlitstk ( 0 , 0 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xlessthan ( void )
#else
xlessthan ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
pushlitstk ( 0 , 0 ) ;
}
else if ( ( poptyp2 != 0 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 0 ) ;
pushlitstk ( 0 , 0 ) ;
}
else if ( ( poplit2 < poplit1 ) )
pushlitstk ( 1 , 0 ) ;
else pushlitstk ( 0 , 0 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xplus ( void )
#else
xplus ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
pushlitstk ( 0 , 0 ) ;
}
else if ( ( poptyp2 != 0 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 0 ) ;
pushlitstk ( 0 , 0 ) ;
}
else pushlitstk ( poplit2 + poplit1 , 0 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xminus ( void )
#else
xminus ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
pushlitstk ( 0 , 0 ) ;
}
else if ( ( poptyp2 != 0 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 0 ) ;
pushlitstk ( 0 , 0 ) ;
}
else pushlitstk ( poplit2 - poplit1 , 0 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xconcatenate ( void )
#else
xconcatenate ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( poptyp2 != 1 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else {
if ( ( poplit2 >= cmdstrptr ) )
if ( ( poplit1 >= cmdstrptr ) )
{
strstart [poplit1 ]= strstart [poplit1 + 1 ];
{
strptr = strptr + 1 ;
poolptr = strstart [strptr ];
}
litstkptr = litstkptr + 1 ;
}
else if ( ( ( strstart [poplit2 + 1 ]- strstart [poplit2 ]) == 0 ) )
pushlitstk ( poplit1 , 1 ) ;
else {
poolptr = strstart [poplit2 + 1 ];
{
if ( ( poolptr + ( strstart [poplit1 + 1 ]- strstart [poplit1 ]) >
poolsize ) )
pooloverflow () ;
}
spptr = strstart [poplit1 ];
spend = strstart [poplit1 + 1 ];
while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
else {
if ( ( poplit1 >= cmdstrptr ) )
if ( ( ( strstart [poplit2 + 1 ]- strstart [poplit2 ]) == 0 ) )
{
{
strptr = strptr + 1 ;
poolptr = strstart [strptr ];
}
litstack [litstkptr ]= poplit1 ;
litstkptr = litstkptr + 1 ;
}
else if ( ( ( strstart [poplit1 + 1 ]- strstart [poplit1 ]) == 0 ) )
litstkptr = litstkptr + 1 ;
else {
splength = ( strstart [poplit1 + 1 ]- strstart [poplit1 ]) ;
sp2length = ( strstart [poplit2 + 1 ]- strstart [poplit2 ]) ;
{
if ( ( poolptr + splength + sp2length > poolsize ) )
pooloverflow () ;
}
spptr = strstart [poplit1 + 1 ];
spend = strstart [poplit1 ];
spxptr1 = spptr + sp2length ;
while ( ( spptr > spend ) ) {
spptr = spptr - 1 ;
spxptr1 = spxptr1 - 1 ;
strpool [spxptr1 ]= strpool [spptr ];
}
spptr = strstart [poplit2 ];
spend = strstart [poplit2 + 1 ];
while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
poolptr = poolptr + splength ;
pushlitstk ( makestring () , 1 ) ;
}
else {
if ( ( ( strstart [poplit1 + 1 ]- strstart [poplit1 ]) == 0 ) )
litstkptr = litstkptr + 1 ;
else if ( ( ( strstart [poplit2 + 1 ]- strstart [poplit2 ]) == 0 )
)
pushlitstk ( poplit1 , 1 ) ;
else {
{
if ( ( poolptr + ( strstart [poplit1 + 1 ]- strstart [poplit1 ]
) + ( strstart [poplit2 + 1 ]- strstart [poplit2 ]) > poolsize
) )
pooloverflow () ;
}
spptr = strstart [poplit2 ];
spend = strstart [poplit2 + 1 ];
while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
spptr = strstart [poplit1 ];
spend = strstart [poplit1 + 1 ];
while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
}
}
}
}
void
#ifdef HAVE_PROTOTYPES
xgets ( void )
#else
xgets ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != 2 ) )
printwrongstklit ( poplit1 , poptyp1 , 2 ) ;
else if ( ( ( ! messwithentries ) && ( ( fntype [poplit1 ]== 6 ) || (
fntype [poplit1 ]== 5 ) ) ) )
bstcantmesswithentriesprint () ;
else switch ( ( fntype [poplit1 ]) )
{case 5 :
if ( ( poptyp2 != 0 ) )
printwrongstklit ( poplit2 , poptyp2 , 0 ) ;
else entryints [citeptr * numentints + ilkinfo [poplit1 ]]= poplit2 ;
break ;
case 6 :
{
if ( ( poptyp2 != 1 ) )
printwrongstklit ( poplit2 , poptyp2 , 1 ) ;
else {
strentptr = citeptr * numentstrs + ilkinfo [poplit1 ];
entchrptr = 0 ;
spptr = strstart [poplit2 ];
spxptr1 = strstart [poplit2 + 1 ];
if ( ( spxptr1 - spptr > entstrsize ) )
{
{
bst1printstringsizeexceeded () ;
{
fprintf( logfile , "%ld%s", (long)entstrsize , ", the entry" ) ;
fprintf( standardoutput , "%ld%s", (long)entstrsize , ", the entry" ) ;
}
bst2printstringsizeexceeded () ;
}
spxptr1 = spptr + entstrsize ;
}
while ( ( spptr < spxptr1 ) ) {
entrystrs [( strentptr ) * ( entstrsize + 1 ) + ( entchrptr ) ]=
strpool [spptr ];
entchrptr = entchrptr + 1 ;
spptr = spptr + 1 ;
}
entrystrs [( strentptr ) * ( entstrsize + 1 ) + ( entchrptr ) ]= 127
;
}
}
break ;
case 7 :
if ( ( poptyp2 != 0 ) )
printwrongstklit ( poplit2 , poptyp2 , 0 ) ;
else ilkinfo [poplit1 ]= poplit2 ;
break ;
case 8 :
{
if ( ( poptyp2 != 1 ) )
printwrongstklit ( poplit2 , poptyp2 , 1 ) ;
else {
strglbptr = ilkinfo [poplit1 ];
if ( ( poplit2 < cmdstrptr ) )
glbstrptr [strglbptr ]= poplit2 ;
else {
glbstrptr [strglbptr ]= 0 ;
globchrptr = 0 ;
spptr = strstart [poplit2 ];
spend = strstart [poplit2 + 1 ];
if ( ( spend - spptr > globstrsize ) )
{
{
bst1printstringsizeexceeded () ;
{
fprintf( logfile , "%ld%s", (long)globstrsize , ", the global" ) ;
fprintf( standardoutput , "%ld%s", (long)globstrsize , ", the global" ) ;
}
bst2printstringsizeexceeded () ;
}
spend = spptr + globstrsize ;
}
while ( ( spptr < spend ) ) {
globalstrs [strglbptr ][globchrptr ]= strpool [spptr ];
globchrptr = globchrptr + 1 ;
spptr = spptr + 1 ;
}
glbstrend [strglbptr ]= globchrptr ;
}
}
}
break ;
default:
{
{
Fputs( logfile , "You can't assign to type " ) ;
Fputs( standardoutput , "You can't assign to type " ) ;
}
printfnclass ( poplit1 ) ;
{
{
Fputs( logfile , ", a nonvariable function class" ) ;
Fputs( standardoutput , ", a nonvariable function class" ) ;
}
bstexwarnprint () ;
}
}
break ;
}
}
void
#ifdef HAVE_PROTOTYPES
xaddperiod ( void )
#else
xaddperiod ( )
#endif
{
/* 15 */ poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( ( strstart [poplit1 + 1 ]- strstart [poplit1 ]) == 0 ) )
pushlitstk ( snull , 1 ) ;
else {
spptr = strstart [poplit1 + 1 ];
spend = strstart [poplit1 ];
while ( ( spptr > spend ) ) {
spptr = spptr - 1 ;
if ( ( strpool [spptr ]!= 125 ) )
goto lab15 ;
}
lab15: switch ( ( strpool [spptr ]) )
{case 46 :
case 63 :
case 33 :
{
if ( ( litstack [litstkptr ]>= cmdstrptr ) )
{
strptr = strptr + 1 ;
poolptr = strstart [strptr ];
}
litstkptr = litstkptr + 1 ;
}
break ;
default:
{
if ( ( poplit1 < cmdstrptr ) )
{
{
if ( ( poolptr + ( strstart [poplit1 + 1 ]- strstart [poplit1 ]
) + 1 > poolsize ) )
pooloverflow () ;
}
spptr = strstart [poplit1 ];
spend = strstart [poplit1 + 1 ];
while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
}
else {
poolptr = strstart [poplit1 + 1 ];
{
if ( ( poolptr + 1 > poolsize ) )
pooloverflow () ;
}
}
{
strpool [poolptr ]= 46 ;
poolptr = poolptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
break ;
}
}
}
void
#ifdef HAVE_PROTOTYPES
xchangecase ( void )
#else
xchangecase ( )
#endif
{
/* 21 */ poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( poptyp2 != 1 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else {
{
switch ( ( strpool [strstart [poplit1 ]]) )
{case 116 :
case 84 :
conversiontype = 0 ;
break ;
case 108 :
case 76 :
conversiontype = 1 ;
break ;
case 117 :
case 85 :
conversiontype = 2 ;
break ;
default:
conversiontype = 3 ;
break ;
}
if ( ( ( ( strstart [poplit1 + 1 ]- strstart [poplit1 ]) != 1 ) || (
conversiontype == 3 ) ) )
{
conversiontype = 3 ;
printapoolstr ( poplit1 ) ;
{
{
Fputs( logfile , " is an illegal case-conversion string" ) ;
Fputs( standardoutput , " is an illegal case-conversion string" )
;
}
bstexwarnprint () ;
}
}
}
exbuflength = 0 ;
addbufpool ( poplit2 ) ;
{
bracelevel = 0 ;
exbufptr = 0 ;
while ( ( exbufptr < exbuflength ) ) {
if ( ( exbuf [exbufptr ]== 123 ) )
{
bracelevel = bracelevel + 1 ;
if ( ( bracelevel != 1 ) )
goto lab21 ;
if ( ( exbufptr + 4 > exbuflength ) )
goto lab21 ;
else if ( ( exbuf [exbufptr + 1 ]!= 92 ) )
goto lab21 ;
if ( ( conversiontype == 0 ) )
if ( ( exbufptr == 0 ) )
goto lab21 ;
else if ( ( ( prevcolon ) && ( lexclass [exbuf [exbufptr - 1 ]]
== 1 ) ) )
goto lab21 ;
{
exbufptr = exbufptr + 1 ;
while ( ( ( exbufptr < exbuflength ) && ( bracelevel > 0 ) ) ) {
exbufptr = exbufptr + 1 ;
exbufxptr = exbufptr ;
while ( ( ( exbufptr < exbuflength ) && ( lexclass [exbuf [
exbufptr ]]== 2 ) ) ) exbufptr = exbufptr + 1 ;
controlseqloc = strlookup ( exbuf , exbufxptr , exbufptr -
exbufxptr , 14 , false ) ;
if ( ( hashfound ) )
{
switch ( ( conversiontype ) )
{case 0 :
case 1 :
switch ( ( ilkinfo [controlseqloc ]) )
{case 11 :
case 9 :
case 3 :
case 5 :
case 7 :
lowercase ( exbuf , exbufxptr , exbufptr - exbufxptr ) ;
break ;
default:
;
break ;
}
break ;
case 2 :
switch ( ( ilkinfo [controlseqloc ]) )
{case 10 :
case 8 :
case 2 :
case 4 :
case 6 :
uppercase ( exbuf , exbufxptr , exbufptr - exbufxptr ) ;
break ;
case 0 :
case 1 :
case 12 :
{
uppercase ( exbuf , exbufxptr , exbufptr - exbufxptr ) ;
while ( ( exbufxptr < exbufptr ) ) {
exbuf [exbufxptr - 1 ]= exbuf [exbufxptr ];
exbufxptr = exbufxptr + 1 ;
}
exbufxptr = exbufxptr - 1 ;
while ( ( ( exbufptr < exbuflength ) && ( lexclass [
exbuf [exbufptr ]]== 1 ) ) ) exbufptr = exbufptr + 1
;
tmpptr = exbufptr ;
while ( ( tmpptr < exbuflength ) ) {
exbuf [tmpptr - ( exbufptr - exbufxptr ) ]= exbuf [
tmpptr ];
tmpptr = tmpptr + 1 ;
}
exbuflength = tmpptr - ( exbufptr - exbufxptr ) ;
exbufptr = exbufxptr ;
}
break ;
default:
;
break ;
}
break ;
case 3 :
;
break ;
default:
caseconversionconfusion () ;
break ;
}
}
exbufxptr = exbufptr ;
while ( ( ( exbufptr < exbuflength ) && ( bracelevel > 0 ) && (
exbuf [exbufptr ]!= 92 ) ) ) {
if ( ( exbuf [exbufptr ]== 125 ) )
bracelevel = bracelevel - 1 ;
else if ( ( exbuf [exbufptr ]== 123 ) )
bracelevel = bracelevel + 1 ;
exbufptr = exbufptr + 1 ;
}
{
switch ( ( conversiontype ) )
{case 0 :
case 1 :
lowercase ( exbuf , exbufxptr , exbufptr - exbufxptr ) ;
break ;
case 2 :
uppercase ( exbuf , exbufxptr , exbufptr - exbufxptr ) ;
break ;
case 3 :
;
break ;
default:
caseconversionconfusion () ;
break ;
}
}
}
exbufptr = exbufptr - 1 ;
}
lab21: prevcolon = false ;
}
else if ( ( exbuf [exbufptr ]== 125 ) )
{
decrbracelevel ( poplit2 ) ;
prevcolon = false ;
}
else if ( ( bracelevel == 0 ) )
{
switch ( ( conversiontype ) )
{case 0 :
{
if ( ( exbufptr == 0 ) )
;
else if ( ( ( prevcolon ) && ( lexclass [exbuf [exbufptr - 1 ]
]== 1 ) ) )
;
else lowercase ( exbuf , exbufptr , 1 ) ;
if ( ( exbuf [exbufptr ]== 58 ) )
prevcolon = true ;
else if ( ( lexclass [exbuf [exbufptr ]]!= 1 ) )
prevcolon = false ;
}
break ;
case 1 :
lowercase ( exbuf , exbufptr , 1 ) ;
break ;
case 2 :
uppercase ( exbuf , exbufptr , 1 ) ;
break ;
case 3 :
;
break ;
default:
caseconversionconfusion () ;
break ;
}
}
exbufptr = exbufptr + 1 ;
}
checkbracelevel ( poplit2 ) ;
}
addpoolbufandpush () ;
}
}
void
#ifdef HAVE_PROTOTYPES
xchrtoint ( void )
#else
xchrtoint ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( 0 , 0 ) ;
}
else if ( ( ( strstart [poplit1 + 1 ]- strstart [poplit1 ]) != 1 ) )
{
{
putc ( '"' , logfile );
putc ( '"' , standardoutput );
}
printapoolstr ( poplit1 ) ;
{
{
Fputs( logfile , "\" isn't a single character" ) ;
Fputs( standardoutput , "\" isn't a single character" ) ;
}
bstexwarnprint () ;
}
pushlitstk ( 0 , 0 ) ;
}
else pushlitstk ( strpool [strstart [poplit1 ]], 0 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xcite ( void )
#else
xcite ( )
#endif
{
if ( ( ! messwithentries ) )
bstcantmesswithentriesprint () ;
else pushlitstk ( citelist [citeptr ], 1 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xduplicate ( void )
#else
xduplicate ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
{
pushlitstk ( poplit1 , poptyp1 ) ;
pushlitstk ( poplit1 , poptyp1 ) ;
}
else {
{
if ( ( litstack [litstkptr ]>= cmdstrptr ) )
{
strptr = strptr + 1 ;
poolptr = strstart [strptr ];
}
litstkptr = litstkptr + 1 ;
}
if ( ( poplit1 < cmdstrptr ) )
pushlitstk ( poplit1 , poptyp1 ) ;
else {
{
if ( ( poolptr + ( strstart [poplit1 + 1 ]- strstart [poplit1 ]) >
poolsize ) )
pooloverflow () ;
}
spptr = strstart [poplit1 ];
spend = strstart [poplit1 + 1 ];
while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
}
}
void
#ifdef HAVE_PROTOTYPES
xempty ( void )
#else
xempty ( )
#endif
{
/* 10 */ poplitstk ( poplit1 , poptyp1 ) ;
switch ( ( poptyp1 ) )
{case 1 :
{
spptr = strstart [poplit1 ];
spend = strstart [poplit1 + 1 ];
while ( ( spptr < spend ) ) {
if ( ( lexclass [strpool [spptr ]]!= 1 ) )
{
pushlitstk ( 0 , 0 ) ;
goto lab10 ;
}
spptr = spptr + 1 ;
}
pushlitstk ( 1 , 0 ) ;
}
break ;
case 3 :
pushlitstk ( 1 , 0 ) ;
break ;
case 4 :
pushlitstk ( 0 , 0 ) ;
break ;
default:
{
printstklit ( poplit1 , poptyp1 ) ;
{
{
Fputs( logfile , ", not a string or missing field," ) ;
Fputs( standardoutput , ", not a string or missing field," ) ;
}
bstexwarnprint () ;
}
pushlitstk ( 0 , 0 ) ;
}
break ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
xformatname ( void )
#else
xformatname ( )
#endif
{
/* 16 17 52 */ poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
poplitstk ( poplit3 , poptyp3 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( poptyp2 != 0 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 0 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( poptyp3 != 1 ) )
{
printwrongstklit ( poplit3 , poptyp3 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else {
exbuflength = 0 ;
addbufpool ( poplit3 ) ;
{
exbufptr = 0 ;
numnames = 0 ;
while ( ( ( numnames < poplit2 ) && ( exbufptr < exbuflength ) ) ) {
numnames = numnames + 1 ;
exbufxptr = exbufptr ;
namescanforand ( poplit3 ) ;
}
if ( ( exbufptr < exbuflength ) )
exbufptr = exbufptr - 4 ;
if ( ( numnames < poplit2 ) )
{
if ( ( poplit2 == 1 ) )
{
Fputs( logfile , "There is no name in \"" ) ;
Fputs( standardoutput , "There is no name in \"" ) ;
}
else {
fprintf( logfile , "%s%ld%s", "There aren't " , (long)poplit2 , " names in \"" ) ;
fprintf( standardoutput , "%s%ld%s", "There aren't " , (long)poplit2 , " names in \"" ) ;
}
printapoolstr ( poplit3 ) ;
{
{
putc ( '"' , logfile );
putc ( '"' , standardoutput );
}
bstexwarnprint () ;
}
}
}
{
{
while ( ( exbufptr > exbufxptr ) ) switch ( ( lexclass [exbuf [
exbufptr - 1 ]]) )
{case 1 :
case 4 :
exbufptr = exbufptr - 1 ;
break ;
default:
if ( ( exbuf [exbufptr - 1 ]== 44 ) )
{
{
fprintf( logfile , "%s%ld%s", "Name " , (long)poplit2 , " in \"" ) ;
fprintf( standardoutput , "%s%ld%s", "Name " , (long)poplit2 , " in \"" ) ;
}
printapoolstr ( poplit3 ) ;
{
Fputs( logfile , "\" has a comma at the end" ) ;
Fputs( standardoutput , "\" has a comma at the end" ) ;
}
bstexwarnprint () ;
exbufptr = exbufptr - 1 ;
}
else goto lab16 ;
break ;
}
lab16: ;
}
namebfptr = 0 ;
numcommas = 0 ;
numtokens = 0 ;
tokenstarting = true ;
while ( ( exbufxptr < exbufptr ) ) switch ( ( exbuf [exbufxptr ]) )
{case 44 :
{
if ( ( numcommas == 2 ) )
{
{
fprintf( logfile , "%s%ld%s", "Too many commas in name " , (long)poplit2 , " of \"" ) ;
fprintf( standardoutput , "%s%ld%s", "Too many commas in name " , (long)poplit2 , " of \"" ) ;
}
printapoolstr ( poplit3 ) ;
{
putc ( '"' , logfile );
putc ( '"' , standardoutput );
}
bstexwarnprint () ;
}
else {
numcommas = numcommas + 1 ;
if ( ( numcommas == 1 ) )
comma1 = numtokens ;
else comma2 = numtokens ;
namesepchar [numtokens ]= 44 ;
}
exbufxptr = exbufxptr + 1 ;
tokenstarting = true ;
}
break ;
case 123 :
{
bracelevel = bracelevel + 1 ;
if ( ( tokenstarting ) )
{
nametok [numtokens ]= namebfptr ;
numtokens = numtokens + 1 ;
}
svbuffer [namebfptr ]= exbuf [exbufxptr ];
namebfptr = namebfptr + 1 ;
exbufxptr = exbufxptr + 1 ;
while ( ( ( bracelevel > 0 ) && ( exbufxptr < exbufptr ) ) ) {
if ( ( exbuf [exbufxptr ]== 125 ) )
bracelevel = bracelevel - 1 ;
else if ( ( exbuf [exbufxptr ]== 123 ) )
bracelevel = bracelevel + 1 ;
svbuffer [namebfptr ]= exbuf [exbufxptr ];
namebfptr = namebfptr + 1 ;
exbufxptr = exbufxptr + 1 ;
}
tokenstarting = false ;
}
break ;
case 125 :
{
if ( ( tokenstarting ) )
{
nametok [numtokens ]= namebfptr ;
numtokens = numtokens + 1 ;
}
{
fprintf( logfile , "%s%ld%s", "Name " , (long)poplit2 , " of \"" ) ;
fprintf( standardoutput , "%s%ld%s", "Name " , (long)poplit2 , " of \"" ) ;
}
printapoolstr ( poplit3 ) ;
{
{
Fputs( logfile , "\" isn't brace balanced" ) ;
Fputs( standardoutput , "\" isn't brace balanced" ) ;
}
bstexwarnprint () ;
}
exbufxptr = exbufxptr + 1 ;
tokenstarting = false ;
}
break ;
default:
switch ( ( lexclass [exbuf [exbufxptr ]]) )
{case 1 :
{
if ( ( ! tokenstarting ) )
namesepchar [numtokens ]= 32 ;
exbufxptr = exbufxptr + 1 ;
tokenstarting = true ;
}
break ;
case 4 :
{
if ( ( ! tokenstarting ) )
namesepchar [numtokens ]= exbuf [exbufxptr ];
exbufxptr = exbufxptr + 1 ;
tokenstarting = true ;
}
break ;
default:
{
if ( ( tokenstarting ) )
{
nametok [numtokens ]= namebfptr ;
numtokens = numtokens + 1 ;
}
svbuffer [namebfptr ]= exbuf [exbufxptr ];
namebfptr = namebfptr + 1 ;
exbufxptr = exbufxptr + 1 ;
tokenstarting = false ;
}
break ;
}
break ;
}
nametok [numtokens ]= namebfptr ;
}
{
if ( ( numcommas == 0 ) )
{
firststart = 0 ;
lastend = numtokens ;
jrend = lastend ;
{
vonstart = 0 ;
while ( ( vonstart < lastend - 1 ) ) {
namebfptr = nametok [vonstart ];
namebfxptr = nametok [vonstart + 1 ];
if ( ( vontokenfound () ) )
{
vonnameendsandlastnamestartsstuff () ;
goto lab52 ;
}
vonstart = vonstart + 1 ;
}
while ( ( vonstart > 0 ) ) {
if ( ( ( lexclass [namesepchar [vonstart ]]!= 4 ) || (
namesepchar [vonstart ]== 126 ) ) )
goto lab17 ;
vonstart = vonstart - 1 ;
}
lab17: vonend = vonstart ;
lab52: firstend = vonstart ;
}
}
else if ( ( numcommas == 1 ) )
{
vonstart = 0 ;
lastend = comma1 ;
jrend = lastend ;
firststart = jrend ;
firstend = numtokens ;
vonnameendsandlastnamestartsstuff () ;
}
else if ( ( numcommas == 2 ) )
{
vonstart = 0 ;
lastend = comma1 ;
jrend = comma2 ;
firststart = jrend ;
firstend = numtokens ;
vonnameendsandlastnamestartsstuff () ;
}
else {
{
Fputs( logfile , "Illegal number of comma,s" ) ;
Fputs( standardoutput , "Illegal number of comma,s" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
exbuflength = 0 ;
addbufpool ( poplit1 ) ;
figureouttheformattedname () ;
addpoolbufandpush () ;
}
}
void
#ifdef HAVE_PROTOTYPES
xinttochr ( void )
#else
xinttochr ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( ( poplit1 < 0 ) || ( poplit1 > 127 ) ) )
{
{
{
fprintf( logfile , "%ld%s", (long)poplit1 , " isn't valid ASCII" ) ;
fprintf( standardoutput , "%ld%s", (long)poplit1 , " isn't valid ASCII" ) ;
}
bstexwarnprint () ;
}
pushlitstk ( snull , 1 ) ;
}
else {
{
if ( ( poolptr + 1 > poolsize ) )
pooloverflow () ;
}
{
strpool [poolptr ]= poplit1 ;
poolptr = poolptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
xinttostr ( void )
#else
xinttostr ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
pushlitstk ( snull , 1 ) ;
}
else {
inttoASCII ( poplit1 , exbuf , 0 , exbuflength ) ;
addpoolbufandpush () ;
}
}
void
#ifdef HAVE_PROTOTYPES
xmissing ( void )
#else
xmissing ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( ! messwithentries ) )
bstcantmesswithentriesprint () ;
else if ( ( ( poptyp1 != 1 ) && ( poptyp1 != 3 ) ) )
{
if ( ( poptyp1 != 4 ) )
{
printstklit ( poplit1 , poptyp1 ) ;
{
{
Fputs( logfile , ", not a string or missing field," ) ;
Fputs( standardoutput , ", not a string or missing field," ) ;
}
bstexwarnprint () ;
}
}
pushlitstk ( 0 , 0 ) ;
}
else if ( ( poptyp1 == 3 ) )
pushlitstk ( 1 , 0 ) ;
else pushlitstk ( 0 , 0 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xnumnames ( void )
#else
xnumnames ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( 0 , 0 ) ;
}
else {
exbuflength = 0 ;
addbufpool ( poplit1 ) ;
{
exbufptr = 0 ;
numnames = 0 ;
while ( ( exbufptr < exbuflength ) ) {
namescanforand ( poplit1 ) ;
numnames = numnames + 1 ;
}
}
pushlitstk ( numnames , 0 ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
xpreamble ( void )
#else
xpreamble ( )
#endif
{
exbuflength = 0 ;
preambleptr = 0 ;
while ( ( preambleptr < numpreamblestrings ) ) {
addbufpool ( spreamble [preambleptr ]) ;
preambleptr = preambleptr + 1 ;
}
addpoolbufandpush () ;
}
void
#ifdef HAVE_PROTOTYPES
xpurify ( void )
#else
xpurify ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else {
exbuflength = 0 ;
addbufpool ( poplit1 ) ;
{
bracelevel = 0 ;
exbufxptr = 0 ;
exbufptr = 0 ;
while ( ( exbufptr < exbuflength ) ) {
switch ( ( lexclass [exbuf [exbufptr ]]) )
{case 1 :
case 4 :
{
exbuf [exbufxptr ]= 32 ;
exbufxptr = exbufxptr + 1 ;
}
break ;
case 2 :
case 3 :
{
exbuf [exbufxptr ]= exbuf [exbufptr ];
exbufxptr = exbufxptr + 1 ;
}
break ;
default:
if ( ( exbuf [exbufptr ]== 123 ) )
{
bracelevel = bracelevel + 1 ;
if ( ( ( bracelevel == 1 ) && ( exbufptr + 1 < exbuflength ) ) )
if ( ( exbuf [exbufptr + 1 ]== 92 ) )
{
exbufptr = exbufptr + 1 ;
while ( ( ( exbufptr < exbuflength ) && ( bracelevel > 0 ) ) ) {
exbufptr = exbufptr + 1 ;
exbufyptr = exbufptr ;
while ( ( ( exbufptr < exbuflength ) && ( lexclass [exbuf [
exbufptr ]]== 2 ) ) ) exbufptr = exbufptr + 1 ;
controlseqloc = strlookup ( exbuf , exbufyptr , exbufptr -
exbufyptr , 14 , false ) ;
if ( ( hashfound ) )
{
exbuf [exbufxptr ]= exbuf [exbufyptr ];
exbufxptr = exbufxptr + 1 ;
switch ( ( ilkinfo [controlseqloc ]) )
{case 2 :
case 3 :
case 4 :
case 5 :
case 12 :
{
exbuf [exbufxptr ]= exbuf [exbufyptr + 1 ];
exbufxptr = exbufxptr + 1 ;
}
break ;
default:
;
break ;
}
}
while ( ( ( exbufptr < exbuflength ) && ( bracelevel > 0 ) &&
( exbuf [exbufptr ]!= 92 ) ) ) {
switch ( ( lexclass [exbuf [exbufptr ]]) )
{case 2 :
case 3 :
{
exbuf [exbufxptr ]= exbuf [exbufptr ];
exbufxptr = exbufxptr + 1 ;
}
break ;
default:
if ( ( exbuf [exbufptr ]== 125 ) )
bracelevel = bracelevel - 1 ;
else if ( ( exbuf [exbufptr ]== 123 ) )
bracelevel = bracelevel + 1 ;
break ;
}
exbufptr = exbufptr + 1 ;
}
}
exbufptr = exbufptr - 1 ;
}
}
else if ( ( exbuf [exbufptr ]== 125 ) )
if ( ( bracelevel > 0 ) )
bracelevel = bracelevel - 1 ;
break ;
}
exbufptr = exbufptr + 1 ;
}
exbuflength = exbufxptr ;
}
addpoolbufandpush () ;
}
}
void
#ifdef HAVE_PROTOTYPES
xquote ( void )
#else
xquote ( )
#endif
{
{
if ( ( poolptr + 1 > poolsize ) )
pooloverflow () ;
}
{
strpool [poolptr ]= 34 ;
poolptr = poolptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xsubstring ( void )
#else
xsubstring ( )
#endif
{
/* 10 */ poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
poplitstk ( poplit3 , poptyp3 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( poptyp2 != 0 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 0 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( poptyp3 != 1 ) )
{
printwrongstklit ( poplit3 , poptyp3 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else {
splength = ( strstart [poplit3 + 1 ]- strstart [poplit3 ]) ;
if ( ( poplit1 >= splength ) )
if ( ( ( poplit2 == 1 ) || ( poplit2 == -1 ) ) )
{
{
if ( ( litstack [litstkptr ]>= cmdstrptr ) )
{
strptr = strptr + 1 ;
poolptr = strstart [strptr ];
}
litstkptr = litstkptr + 1 ;
}
goto lab10 ;
}
if ( ( ( poplit1 <= 0 ) || ( poplit2 == 0 ) || ( poplit2 > splength ) || (
poplit2 < - (integer) splength ) ) )
{
pushlitstk ( snull , 1 ) ;
goto lab10 ;
}
else {
if ( ( poplit2 > 0 ) )
{
if ( ( poplit1 > splength - ( poplit2 - 1 ) ) )
poplit1 = splength - ( poplit2 - 1 ) ;
spptr = strstart [poplit3 ]+ ( poplit2 - 1 ) ;
spend = spptr + poplit1 ;
if ( ( poplit2 == 1 ) )
if ( ( poplit3 >= cmdstrptr ) )
{
strstart [poplit3 + 1 ]= spend ;
{
strptr = strptr + 1 ;
poolptr = strstart [strptr ];
}
litstkptr = litstkptr + 1 ;
goto lab10 ;
}
}
else {
poplit2 = - (integer) poplit2 ;
if ( ( poplit1 > splength - ( poplit2 - 1 ) ) )
poplit1 = splength - ( poplit2 - 1 ) ;
spend = strstart [poplit3 + 1 ]- ( poplit2 - 1 ) ;
spptr = spend - poplit1 ;
}
while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
xswap ( void )
#else
xswap ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( ( poptyp1 != 1 ) || ( poplit1 < cmdstrptr ) ) )
{
pushlitstk ( poplit1 , poptyp1 ) ;
if ( ( ( poptyp2 == 1 ) && ( poplit2 >= cmdstrptr ) ) )
{
strptr = strptr + 1 ;
poolptr = strstart [strptr ];
}
pushlitstk ( poplit2 , poptyp2 ) ;
}
else if ( ( ( poptyp2 != 1 ) || ( poplit2 < cmdstrptr ) ) )
{
{
strptr = strptr + 1 ;
poolptr = strstart [strptr ];
}
pushlitstk ( poplit1 , 1 ) ;
pushlitstk ( poplit2 , poptyp2 ) ;
}
else {
exbuflength = 0 ;
addbufpool ( poplit2 ) ;
spptr = strstart [poplit1 ];
spend = strstart [poplit1 + 1 ];
while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
addpoolbufandpush () ;
}
}
void
#ifdef HAVE_PROTOTYPES
xtextlength ( void )
#else
xtextlength ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else {
numtextchars = 0 ;
{
spptr = strstart [poplit1 ];
spend = strstart [poplit1 + 1 ];
spbracelevel = 0 ;
while ( ( spptr < spend ) ) {
spptr = spptr + 1 ;
if ( ( strpool [spptr - 1 ]== 123 ) )
{
spbracelevel = spbracelevel + 1 ;
if ( ( ( spbracelevel == 1 ) && ( spptr < spend ) ) )
if ( ( strpool [spptr ]== 92 ) )
{
spptr = spptr + 1 ;
while ( ( ( spptr < spend ) && ( spbracelevel > 0 ) ) ) {
if ( ( strpool [spptr ]== 125 ) )
spbracelevel = spbracelevel - 1 ;
else if ( ( strpool [spptr ]== 123 ) )
spbracelevel = spbracelevel + 1 ;
spptr = spptr + 1 ;
}
numtextchars = numtextchars + 1 ;
}
}
else if ( ( strpool [spptr - 1 ]== 125 ) )
{
if ( ( spbracelevel > 0 ) )
spbracelevel = spbracelevel - 1 ;
}
else numtextchars = numtextchars + 1 ;
}
}
pushlitstk ( numtextchars , 0 ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
xtextprefix ( void )
#else
xtextprefix ( )
#endif
{
/* 10 */ poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( poptyp2 != 1 ) )
{
printwrongstklit ( poplit2 , poptyp2 , 1 ) ;
pushlitstk ( snull , 1 ) ;
}
else if ( ( poplit1 <= 0 ) )
{
pushlitstk ( snull , 1 ) ;
goto lab10 ;
}
else {
spptr = strstart [poplit2 ];
spend = strstart [poplit2 + 1 ];
{
numtextchars = 0 ;
spbracelevel = 0 ;
spxptr1 = spptr ;
while ( ( ( spxptr1 < spend ) && ( numtextchars < poplit1 ) ) ) {
spxptr1 = spxptr1 + 1 ;
if ( ( strpool [spxptr1 - 1 ]== 123 ) )
{
spbracelevel = spbracelevel + 1 ;
if ( ( ( spbracelevel == 1 ) && ( spxptr1 < spend ) ) )
if ( ( strpool [spxptr1 ]== 92 ) )
{
spxptr1 = spxptr1 + 1 ;
while ( ( ( spxptr1 < spend ) && ( spbracelevel > 0 ) ) ) {
if ( ( strpool [spxptr1 ]== 125 ) )
spbracelevel = spbracelevel - 1 ;
else if ( ( strpool [spxptr1 ]== 123 ) )
spbracelevel = spbracelevel + 1 ;
spxptr1 = spxptr1 + 1 ;
}
numtextchars = numtextchars + 1 ;
}
}
else if ( ( strpool [spxptr1 - 1 ]== 125 ) )
{
if ( ( spbracelevel > 0 ) )
spbracelevel = spbracelevel - 1 ;
}
else numtextchars = numtextchars + 1 ;
}
spend = spxptr1 ;
}
if ( ( poplit2 >= cmdstrptr ) )
poolptr = spend ;
else while ( ( spptr < spend ) ) {
{
strpool [poolptr ]= strpool [spptr ];
poolptr = poolptr + 1 ;
}
spptr = spptr + 1 ;
}
while ( ( spbracelevel > 0 ) ) {
{
strpool [poolptr ]= 125 ;
poolptr = poolptr + 1 ;
}
spbracelevel = spbracelevel - 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
xtype ( void )
#else
xtype ( )
#endif
{
if ( ( ! messwithentries ) )
bstcantmesswithentriesprint () ;
else if ( ( ( typelist [citeptr ]== undefined ) || ( typelist [citeptr ]
== 0 ) ) )
pushlitstk ( snull , 1 ) ;
else pushlitstk ( hashtext [typelist [citeptr ]], 1 ) ;
}
void
#ifdef HAVE_PROTOTYPES
xwarning ( void )
#else
xwarning ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
else {
{
Fputs( logfile , "Warning--" ) ;
Fputs( standardoutput , "Warning--" ) ;
}
printlit ( poplit1 , poptyp1 ) ;
markwarning () ;
}
}
void
#ifdef HAVE_PROTOTYPES
xwidth ( void )
#else
xwidth ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
pushlitstk ( 0 , 0 ) ;
}
else {
exbuflength = 0 ;
addbufpool ( poplit1 ) ;
stringwidth = 0 ;
{
bracelevel = 0 ;
exbufptr = 0 ;
while ( ( exbufptr < exbuflength ) ) {
if ( ( exbuf [exbufptr ]== 123 ) )
{
bracelevel = bracelevel + 1 ;
if ( ( ( bracelevel == 1 ) && ( exbufptr + 1 < exbuflength ) ) )
if ( ( exbuf [exbufptr + 1 ]== 92 ) )
{
exbufptr = exbufptr + 1 ;
while ( ( ( exbufptr < exbuflength ) && ( bracelevel > 0 ) ) ) {
exbufptr = exbufptr + 1 ;
exbufxptr = exbufptr ;
while ( ( ( exbufptr < exbuflength ) && ( lexclass [exbuf [
exbufptr ]]== 2 ) ) ) exbufptr = exbufptr + 1 ;
if ( ( ( exbufptr < exbuflength ) && ( exbufptr == exbufxptr ) )
)
exbufptr = exbufptr + 1 ;
else {
controlseqloc = strlookup ( exbuf , exbufxptr , exbufptr -
exbufxptr , 14 , false ) ;
if ( ( hashfound ) )
{
switch ( ( ilkinfo [controlseqloc ]) )
{case 12 :
stringwidth = stringwidth + 500 ;
break ;
case 4 :
stringwidth = stringwidth + 722 ;
break ;
case 2 :
stringwidth = stringwidth + 778 ;
break ;
case 5 :
stringwidth = stringwidth + 903 ;
break ;
case 3 :
stringwidth = stringwidth + 1014 ;
break ;
default:
stringwidth = stringwidth + charwidth [exbuf [exbufxptr
]];
break ;
}
}
}
while ( ( ( exbufptr < exbuflength ) && ( lexclass [exbuf [
exbufptr ]]== 1 ) ) ) exbufptr = exbufptr + 1 ;
while ( ( ( exbufptr < exbuflength ) && ( bracelevel > 0 ) && (
exbuf [exbufptr ]!= 92 ) ) ) {
if ( ( exbuf [exbufptr ]== 125 ) )
bracelevel = bracelevel - 1 ;
else if ( ( exbuf [exbufptr ]== 123 ) )
bracelevel = bracelevel + 1 ;
else stringwidth = stringwidth + charwidth [exbuf [exbufptr
]];
exbufptr = exbufptr + 1 ;
}
}
exbufptr = exbufptr - 1 ;
}
else stringwidth = stringwidth + charwidth [123 ];
else stringwidth = stringwidth + charwidth [123 ];
}
else if ( ( exbuf [exbufptr ]== 125 ) )
{
decrbracelevel ( poplit1 ) ;
stringwidth = stringwidth + charwidth [125 ];
}
else stringwidth = stringwidth + charwidth [exbuf [exbufptr ]];
exbufptr = exbufptr + 1 ;
}
checkbracelevel ( poplit1 ) ;
}
pushlitstk ( stringwidth , 0 ) ;
}
}
void
#ifdef HAVE_PROTOTYPES
xwrite ( void )
#else
xwrite ( )
#endif
{
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 1 ) )
printwrongstklit ( poplit1 , poptyp1 , 1 ) ;
else addoutpool ( poplit1 ) ;
}
void
#ifdef HAVE_PROTOTYPES
zexecutefn ( hashloc exfnloc )
#else
zexecutefn ( exfnloc )
hashloc exfnloc ;
#endif
{
/* 51 */ integer rpoplt1, rpoplt2 ;
stktype rpoptp1, rpoptp2 ;
wizfnloc wizptr ;
;
#ifdef TRACE
{
Fputs( logfile , "execute_fn `" ) ;
}
{
outpoolstr ( logfile , hashtext [exfnloc ]) ;
}
{
fprintf( logfile , "%c\n", '\'' ) ;
}
#endif /* TRACE */
switch ( ( fntype [exfnloc ]) )
{case 0 :
{
;
#ifndef NO_BIBTEX_STAT
executioncount [ilkinfo [exfnloc ]]= executioncount [ilkinfo [
exfnloc ]]+ 1 ;
#endif /* not NO_BIBTEX_STAT */
switch ( ( ilkinfo [exfnloc ]) )
{case 0 :
xequals () ;
break ;
case 1 :
xgreaterthan () ;
break ;
case 2 :
xlessthan () ;
break ;
case 3 :
xplus () ;
break ;
case 4 :
xminus () ;
break ;
case 5 :
xconcatenate () ;
break ;
case 6 :
xgets () ;
break ;
case 7 :
xaddperiod () ;
break ;
case 8 :
{
if ( ( ! messwithentries ) )
bstcantmesswithentriesprint () ;
else if ( ( typelist [citeptr ]== undefined ) )
executefn ( bdefault ) ;
else if ( ( typelist [citeptr ]== 0 ) )
;
else executefn ( typelist [citeptr ]) ;
}
break ;
case 9 :
xchangecase () ;
break ;
case 10 :
xchrtoint () ;
break ;
case 11 :
xcite () ;
break ;
case 12 :
xduplicate () ;
break ;
case 13 :
xempty () ;
break ;
case 14 :
xformatname () ;
break ;
case 15 :
{
poplitstk ( poplit1 , poptyp1 ) ;
poplitstk ( poplit2 , poptyp2 ) ;
poplitstk ( poplit3 , poptyp3 ) ;
if ( ( poptyp1 != 2 ) )
printwrongstklit ( poplit1 , poptyp1 , 2 ) ;
else if ( ( poptyp2 != 2 ) )
printwrongstklit ( poplit2 , poptyp2 , 2 ) ;
else if ( ( poptyp3 != 0 ) )
printwrongstklit ( poplit3 , poptyp3 , 0 ) ;
else if ( ( poplit3 > 0 ) )
executefn ( poplit2 ) ;
else executefn ( poplit1 ) ;
}
break ;
case 16 :
xinttochr () ;
break ;
case 17 :
xinttostr () ;
break ;
case 18 :
xmissing () ;
break ;
case 19 :
{
outputbblline () ;
}
break ;
case 20 :
xnumnames () ;
break ;
case 21 :
{
poplitstk ( poplit1 , poptyp1 ) ;
}
break ;
case 22 :
xpreamble () ;
break ;
case 23 :
xpurify () ;
break ;
case 24 :
xquote () ;
break ;
case 25 :
{
;
}
break ;
case 26 :
{
popwholestack () ;
}
break ;
case 27 :
xsubstring () ;
break ;
case 28 :
xswap () ;
break ;
case 29 :
xtextlength () ;
break ;
case 30 :
xtextprefix () ;
break ;
case 31 :
{
poptopandprint () ;
}
break ;
case 32 :
xtype () ;
break ;
case 33 :
xwarning () ;
break ;
case 34 :
{
poplitstk ( rpoplt1 , rpoptp1 ) ;
poplitstk ( rpoplt2 , rpoptp2 ) ;
if ( ( rpoptp1 != 2 ) )
printwrongstklit ( rpoplt1 , rpoptp1 , 2 ) ;
else if ( ( rpoptp2 != 2 ) )
printwrongstklit ( rpoplt2 , rpoptp2 , 2 ) ;
else while ( true ) {
executefn ( rpoplt2 ) ;
poplitstk ( poplit1 , poptyp1 ) ;
if ( ( poptyp1 != 0 ) )
{
printwrongstklit ( poplit1 , poptyp1 , 0 ) ;
goto lab51 ;
}
else if ( ( poplit1 > 0 ) )
executefn ( rpoplt1 ) ;
else goto lab51 ;
}
lab51: ;
}
break ;
case 35 :
xwidth () ;
break ;
case 36 :
xwrite () ;
break ;
default:
{
{
Fputs( logfile , "Unknown built-in function" ) ;
Fputs( standardoutput , "Unknown built-in function" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
break ;
}
}
break ;
case 1 :
{
wizptr = ilkinfo [exfnloc ];
while ( ( wizfunctions [wizptr ]!= endofdef ) ) {
if ( ( wizfunctions [wizptr ]!= quotenextfn ) )
executefn ( wizfunctions [wizptr ]) ;
else {
wizptr = wizptr + 1 ;
pushlitstk ( wizfunctions [wizptr ], 2 ) ;
}
wizptr = wizptr + 1 ;
}
}
break ;
case 2 :
pushlitstk ( ilkinfo [exfnloc ], 0 ) ;
break ;
case 3 :
pushlitstk ( hashtext [exfnloc ], 1 ) ;
break ;
case 4 :
{
if ( ( ! messwithentries ) )
bstcantmesswithentriesprint () ;
else {
fieldptr = citeptr * numfields + ilkinfo [exfnloc ];
checkfieldoverflow ( fieldptr ) ;
if ( ( fieldinfo [fieldptr ]== 0 ) )
pushlitstk ( hashtext [exfnloc ], 3 ) ;
else pushlitstk ( fieldinfo [fieldptr ], 1 ) ;
}
}
break ;
case 5 :
{
if ( ( ! messwithentries ) )
bstcantmesswithentriesprint () ;
else pushlitstk ( entryints [citeptr * numentints + ilkinfo [exfnloc ]
], 0 ) ;
}
break ;
case 6 :
{
if ( ( ! messwithentries ) )
bstcantmesswithentriesprint () ;
else {
strentptr = citeptr * numentstrs + ilkinfo [exfnloc ];
exbufptr = 0 ;
while ( ( entrystrs [( strentptr ) * ( entstrsize + 1 ) + ( exbufptr
) ]!= 127 ) ) {
exbuf [exbufptr ]= entrystrs [( strentptr ) * ( entstrsize + 1 )
+ ( exbufptr ) ];
exbufptr = exbufptr + 1 ;
}
exbuflength = exbufptr ;
addpoolbufandpush () ;
}
}
break ;
case 7 :
pushlitstk ( ilkinfo [exfnloc ], 0 ) ;
break ;
case 8 :
{
strglbptr = ilkinfo [exfnloc ];
if ( ( glbstrptr [strglbptr ]> 0 ) )
pushlitstk ( glbstrptr [strglbptr ], 1 ) ;
else {
{
if ( ( poolptr + glbstrend [strglbptr ]> poolsize ) )
pooloverflow () ;
}
globchrptr = 0 ;
while ( ( globchrptr < glbstrend [strglbptr ]) ) {
{
strpool [poolptr ]= globalstrs [strglbptr ][globchrptr ];
poolptr = poolptr + 1 ;
}
globchrptr = globchrptr + 1 ;
}
pushlitstk ( makestring () , 1 ) ;
}
}
break ;
default:
unknwnfunctionclassconfusion () ;
break ;
}
}
void
#ifdef HAVE_PROTOTYPES
getthetoplevelauxfilename ( void )
#else
getthetoplevelauxfilename ( )
#endif
{
/* 41 46 */ kpsesetprogname ( argv [0 ]) ;
parsearguments () ;
nameoffile = xmalloc ( strlen ( cmdline ( optind ) ) + 6 ) ;
strcpy ( (char*)nameoffile + 1 , cmdline ( optind ) ) ;
auxnamelength = strlen ( (char*)nameoffile + 1 ) ;
{
if ( ( ( auxnamelength + ( strstart [sauxextension + 1 ]- strstart [
sauxextension ]) > maxint ) || ( auxnamelength + ( strstart [
slogextension + 1 ]- strstart [slogextension ]) > maxint ) || (
auxnamelength + ( strstart [sbblextension + 1 ]- strstart [
sbblextension ]) > maxint ) ) )
{
samtoolongfilenameprint () ;
goto lab46 ;
}
{
namelength = auxnamelength ;
if ( strcmp ( (char*)nameoffile + 1 + namelength - 3 , "aux" ) != 0 )
addextension ( sauxextension ) ;
auxptr = 0 ;
if ( ( ! aopenin ( auxfile [auxptr ], -1 ) ) )
{
samwrongfilenameprint () ;
goto lab46 ;
}
namelength = auxnamelength ;
addextension ( slogextension ) ;
if ( ( ! aopenout ( logfile ) ) )
{
samwrongfilenameprint () ;
goto lab46 ;
}
namelength = auxnamelength ;
addextension ( sbblextension ) ;
if ( ( ! aopenout ( bblfile ) ) )
{
samwrongfilenameprint () ;
goto lab46 ;
}
}
{
namelength = auxnamelength ;
addextension ( sauxextension ) ;
nameptr = 1 ;
while ( ( nameptr <= namelength ) ) {
buffer [nameptr ]= xord [nameoffile [nameptr ]];
nameptr = nameptr + 1 ;
}
toplevstr = hashtext [strlookup ( buffer , 1 , auxnamelength , 0 , true
) ];
auxlist [auxptr ]= hashtext [strlookup ( buffer , 1 , namelength , 3
, true ) ];
if ( ( hashfound ) )
{
;
#ifdef TRACE
printauxname () ;
#endif /* TRACE */
{
{
Fputs( logfile , "Already encountered auxiliary file" ) ;
Fputs( standardoutput , "Already encountered auxiliary file" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
auxlnstack [auxptr ]= 0 ;
}
goto lab41 ;
}
lab46: uexit ( 1 ) ;
lab41: ;
}
void
#ifdef HAVE_PROTOTYPES
auxbibdatacommand ( void )
#else
auxbibdatacommand ( )
#endif
{
/* 10 */ if ( ( bibseen ) )
{
auxerrillegalanotherprint ( 0 ) ;
{
auxerrprint () ;
goto lab10 ;
}
}
bibseen = true ;
while ( ( buffer [bufptr2 ]!= 125 ) ) {
bufptr2 = bufptr2 + 1 ;
if ( ( ! scan2white ( 125 , 44 ) ) )
{
auxerrnorightbraceprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( ( lexclass [buffer [bufptr2 ]]== 1 ) )
{
auxerrwhitespaceinargumentprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( ( ( last > bufptr2 + 1 ) && ( buffer [bufptr2 ]== 125 ) ) )
{
auxerrstuffafterrightbraceprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
{
if ( ( bibptr == maxbibfiles ) )
{
BIBXRETALLOC ( "bib_list" , biblist , strnumber , maxbibfiles ,
maxbibfiles + MAXBIBFILES ) ;
BIBXRETALLOC ( "bib_file" , bibfile , alphafile , maxbibfiles ,
maxbibfiles ) ;
BIBXRETALLOC ( "s_preamble" , spreamble , strnumber , maxbibfiles ,
maxbibfiles ) ;
}
biblist [bibptr ]= hashtext [strlookup ( buffer , bufptr1 , ( bufptr2
- bufptr1 ) , 6 , true ) ];
if ( ( hashfound ) )
{
{
Fputs( logfile , "This database file appears more than once: " ) ;
Fputs( standardoutput , "This database file appears more than once: " ) ;
}
printbibname () ;
{
auxerrprint () ;
goto lab10 ;
}
}
startname ( biblist [bibptr ]) ;
if ( ( ! aopenin ( bibfile [bibptr ], kpsebibformat ) ) )
{
{
Fputs( logfile , "I couldn't open database file " ) ;
Fputs( standardoutput , "I couldn't open database file " ) ;
}
printbibname () ;
{
auxerrprint () ;
goto lab10 ;
}
}
;
#ifdef TRACE
{
outpoolstr ( logfile , biblist [bibptr ]) ;
}
{
outpoolstr ( logfile , sbibextension ) ;
}
{
fprintf( logfile , "%s\n", " is a bibdata file" ) ;
}
#endif /* TRACE */
bibptr = bibptr + 1 ;
}
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
auxbibstylecommand ( void )
#else
auxbibstylecommand ( )
#endif
{
/* 10 */ if ( ( bstseen ) )
{
auxerrillegalanotherprint ( 1 ) ;
{
auxerrprint () ;
goto lab10 ;
}
}
bstseen = true ;
bufptr2 = bufptr2 + 1 ;
if ( ( ! scan1white ( 125 ) ) )
{
auxerrnorightbraceprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( ( lexclass [buffer [bufptr2 ]]== 1 ) )
{
auxerrwhitespaceinargumentprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( ( last > bufptr2 + 1 ) )
{
auxerrstuffafterrightbraceprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
{
bststr = hashtext [strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ,
5 , true ) ];
if ( ( hashfound ) )
{
;
#ifdef TRACE
printbstname () ;
#endif /* TRACE */
{
{
Fputs( logfile , "Already encountered style file" ) ;
Fputs( standardoutput , "Already encountered style file" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
}
startname ( bststr ) ;
if ( ( ! aopenin ( bstfile , kpsebstformat ) ) )
{
{
Fputs( logfile , "I couldn't open style file " ) ;
Fputs( standardoutput , "I couldn't open style file " ) ;
}
printbstname () ;
bststr = 0 ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( verbose )
{
{
Fputs( logfile , "The style file: " ) ;
Fputs( standardoutput , "The style file: " ) ;
}
printbstname () ;
}
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
auxcitationcommand ( void )
#else
auxcitationcommand ( )
#endif
{
/* 23 10 */ citationseen = true ;
while ( ( buffer [bufptr2 ]!= 125 ) ) {
bufptr2 = bufptr2 + 1 ;
if ( ( ! scan2white ( 125 , 44 ) ) )
{
auxerrnorightbraceprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( ( lexclass [buffer [bufptr2 ]]== 1 ) )
{
auxerrwhitespaceinargumentprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( ( ( last > bufptr2 + 1 ) && ( buffer [bufptr2 ]== 125 ) ) )
{
auxerrstuffafterrightbraceprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
Fputs( logfile , " cite key encountered" ) ;
}
#endif /* TRACE */
{
if ( ( ( bufptr2 - bufptr1 ) == 1 ) )
if ( ( buffer [bufptr1 ]== 42 ) )
{
;
#ifdef TRACE
{
fprintf( logfile , "%s\n", "---entire database to be included" ) ;
}
#endif /* TRACE */
if ( ( allentries ) )
{
{
fprintf( logfile , "%s\n", "Multiple inclusions of entire database" ) ;
fprintf( standardoutput , "%s\n", "Multiple inclusions of entire database" ) ;
}
{
auxerrprint () ;
goto lab10 ;
}
}
else {
allentries = true ;
allmarker = citeptr ;
goto lab23 ;
}
}
}
tmpptr = bufptr1 ;
while ( ( tmpptr < bufptr2 ) ) {
exbuf [tmpptr ]= buffer [tmpptr ];
tmpptr = tmpptr + 1 ;
}
lowercase ( exbuf , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
lcciteloc = strlookup ( exbuf , bufptr1 , ( bufptr2 - bufptr1 ) , 10 ,
true ) ;
if ( ( hashfound ) )
{
;
#ifdef TRACE
{
fprintf( logfile , "%s\n", " previously" ) ;
}
#endif /* TRACE */
dummyloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 9 ,
false ) ;
if ( ( ! hashfound ) )
{
{
Fputs( logfile , "Case mismatch error between cite keys " ) ;
Fputs( standardoutput , "Case mismatch error between cite keys " ) ;
}
printatoken () ;
{
Fputs( logfile , " and " ) ;
Fputs( standardoutput , " and " ) ;
}
printapoolstr ( citelist [ilkinfo [ilkinfo [lcciteloc ]]]) ;
printanewline () ;
{
auxerrprint () ;
goto lab10 ;
}
}
}
else {
;
#ifdef TRACE
{
putc ('\n', logfile );
}
#endif /* TRACE */
citeloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 9 ,
true ) ;
if ( ( hashfound ) )
hashciteconfusion () ;
checkciteoverflow ( citeptr ) ;
citelist [citeptr ]= hashtext [citeloc ];
ilkinfo [citeloc ]= citeptr ;
ilkinfo [lcciteloc ]= citeloc ;
citeptr = citeptr + 1 ;
}
}
lab23: ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
auxinputcommand ( void )
#else
auxinputcommand ( )
#endif
{
/* 10 */ boolean auxextensionok ;
bufptr2 = bufptr2 + 1 ;
if ( ( ! scan1white ( 125 ) ) )
{
auxerrnorightbraceprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( ( lexclass [buffer [bufptr2 ]]== 1 ) )
{
auxerrwhitespaceinargumentprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
if ( ( last > bufptr2 + 1 ) )
{
auxerrstuffafterrightbraceprint () ;
{
auxerrprint () ;
goto lab10 ;
}
}
{
auxptr = auxptr + 1 ;
if ( ( auxptr == auxstacksize ) )
{
printatoken () ;
{
Fputs( logfile , ": " ) ;
Fputs( standardoutput , ": " ) ;
}
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "auxiliary file depth " , (long)auxstacksize ) ;
fprintf( standardoutput , "%s%ld\n", "auxiliary file depth " , (long)auxstacksize )
;
}
longjmp(jmp9998,1) ;
}
}
auxextensionok = true ;
if ( ( ( bufptr2 - bufptr1 ) < ( strstart [sauxextension + 1 ]- strstart
[sauxextension ]) ) )
auxextensionok = false ;
else if ( ( ! streqbuf ( sauxextension , buffer , bufptr2 - ( strstart [
sauxextension + 1 ]- strstart [sauxextension ]) , ( strstart [
sauxextension + 1 ]- strstart [sauxextension ]) ) ) )
auxextensionok = false ;
if ( ( ! auxextensionok ) )
{
printatoken () ;
{
Fputs( logfile , " has a wrong extension" ) ;
Fputs( standardoutput , " has a wrong extension" ) ;
}
auxptr = auxptr - 1 ;
{
auxerrprint () ;
goto lab10 ;
}
}
auxlist [auxptr ]= hashtext [strlookup ( buffer , bufptr1 , ( bufptr2 -
bufptr1 ) , 3 , true ) ];
if ( ( hashfound ) )
{
{
Fputs( logfile , "Already encountered file " ) ;
Fputs( standardoutput , "Already encountered file " ) ;
}
printauxname () ;
auxptr = auxptr - 1 ;
{
auxerrprint () ;
goto lab10 ;
}
}
{
startname ( auxlist [auxptr ]) ;
nameptr = namelength + 1 ;
nameoffile [nameptr ]= 0 ;
if ( ( ! aopenin ( auxfile [auxptr ], -1 ) ) )
{
{
Fputs( logfile , "I couldn't open auxiliary file " ) ;
Fputs( standardoutput , "I couldn't open auxiliary file " ) ;
}
printauxname () ;
auxptr = auxptr - 1 ;
{
auxerrprint () ;
goto lab10 ;
}
}
{
fprintf( logfile , "%s%ld%s", "A level-" , (long)auxptr , " auxiliary file: " ) ;
fprintf( standardoutput , "%s%ld%s", "A level-" , (long)auxptr , " auxiliary file: " ) ;
}
printauxname () ;
auxlnstack [auxptr ]= 0 ;
}
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
poptheauxstack ( void )
#else
poptheauxstack ( )
#endif
{
aclose ( auxfile [auxptr ]) ;
if ( ( auxptr == 0 ) )
{lab31=1; return;}
else auxptr = auxptr - 1 ;
}
void
#ifdef HAVE_PROTOTYPES
getauxcommandandprocess ( void )
#else
getauxcommandandprocess ( )
#endif
{
/* 10 */ bufptr2 = 0 ;
if ( ( ! scan1 ( 123 ) ) )
goto lab10 ;
commandnum = ilkinfo [strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 )
, 2 , false ) ];
if ( ( hashfound ) )
switch ( ( commandnum ) )
{case 0 :
auxbibdatacommand () ;
break ;
case 1 :
auxbibstylecommand () ;
break ;
case 2 :
auxcitationcommand () ;
break ;
case 3 :
auxinputcommand () ;
break ;
default:
{
{
Fputs( logfile , "Unknown auxiliary-file command" ) ;
Fputs( standardoutput , "Unknown auxiliary-file command" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
break ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
lastcheckforauxerrors ( void )
#else
lastcheckforauxerrors ( )
#endif
{
numcites = citeptr ;
numbibfiles = bibptr ;
if ( ( ! citationseen ) )
{
auxend1errprint () ;
{
Fputs( logfile , "\\citation commands" ) ;
Fputs( standardoutput , "\\citation commands" ) ;
}
auxend2errprint () ;
}
else if ( ( ( numcites == 0 ) && ( ! allentries ) ) )
{
auxend1errprint () ;
{
Fputs( logfile , "cite keys" ) ;
Fputs( standardoutput , "cite keys" ) ;
}
auxend2errprint () ;
}
if ( ( ! bibseen ) )
{
auxend1errprint () ;
{
Fputs( logfile , "\\bibdata command" ) ;
Fputs( standardoutput , "\\bibdata command" ) ;
}
auxend2errprint () ;
}
else if ( ( numbibfiles == 0 ) )
{
auxend1errprint () ;
{
Fputs( logfile , "database files" ) ;
Fputs( standardoutput , "database files" ) ;
}
auxend2errprint () ;
}
if ( ( ! bstseen ) )
{
auxend1errprint () ;
{
Fputs( logfile , "\\bibstyle command" ) ;
Fputs( standardoutput , "\\bibstyle command" ) ;
}
auxend2errprint () ;
}
else if ( ( bststr == 0 ) )
{
auxend1errprint () ;
{
Fputs( logfile , "style file" ) ;
Fputs( standardoutput , "style file" ) ;
}
auxend2errprint () ;
}
}
void
#ifdef HAVE_PROTOTYPES
bstentrycommand ( void )
#else
bstentrycommand ( )
#endif
{
/* 10 */ if ( ( entryseen ) )
{
{
Fputs( logfile , "Illegal, another entry command" ) ;
Fputs( standardoutput , "Illegal, another entry command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
entryseen = true ;
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
while ( ( buffer [bufptr2 ]!= 125 ) ) {
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a field" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fnloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 ,
true ) ;
{
if ( ( hashfound ) )
{
alreadyseenfunctionprint ( fnloc ) ;
goto lab10 ;
}
}
fntype [fnloc ]= 4 ;
ilkinfo [fnloc ]= numfields ;
numfields = numfields + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
if ( ( numfields == numpredefinedfields ) )
{
{
Fputs( logfile , "Warning--I didn't find any fields" ) ;
Fputs( standardoutput , "Warning--I didn't find any fields" ) ;
}
bstwarnprint () ;
}
{
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
while ( ( buffer [bufptr2 ]!= 125 ) ) {
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is an integer entry-variable" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fnloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 ,
true ) ;
{
if ( ( hashfound ) )
{
alreadyseenfunctionprint ( fnloc ) ;
goto lab10 ;
}
}
fntype [fnloc ]= 5 ;
ilkinfo [fnloc ]= numentints ;
numentints = numentints + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
while ( ( buffer [bufptr2 ]!= 125 ) ) {
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a string entry-variable" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fnloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 ,
true ) ;
{
if ( ( hashfound ) )
{
alreadyseenfunctionprint ( fnloc ) ;
goto lab10 ;
}
}
fntype [fnloc ]= 6 ;
ilkinfo [fnloc ]= numentstrs ;
numentstrs = numentstrs + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "entry" ) ;
Fputs( standardoutput , "entry" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
}
bufptr2 = bufptr2 + 1 ;
}
lab10: ;
}
boolean
#ifdef HAVE_PROTOTYPES
badargumenttoken ( void )
#else
badargumenttoken ( )
#endif
{
/* 10 */ register boolean Result; Result = true ;
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fnloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 , false )
;
if ( ( ! hashfound ) )
{
printatoken () ;
{
{
Fputs( logfile , " is an unknown function" ) ;
Fputs( standardoutput , " is an unknown function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
else if ( ( ( fntype [fnloc ]!= 0 ) && ( fntype [fnloc ]!= 1 ) ) )
{
printatoken () ;
{
Fputs( logfile , " has bad function type " ) ;
Fputs( standardoutput , " has bad function type " ) ;
}
printfnclass ( fnloc ) ;
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
Result = false ;
lab10: ;
return Result ;
}
void
#ifdef HAVE_PROTOTYPES
bstexecutecommand ( void )
#else
bstexecutecommand ( )
#endif
{
/* 10 */ if ( ( ! readseen ) )
{
{
Fputs( logfile , "Illegal, execute command before read command" ) ;
Fputs( standardoutput , "Illegal, execute command before read command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "execute" ) ;
Fputs( standardoutput , "execute" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "execute" ) ;
Fputs( standardoutput , "execute" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "execute" ) ;
Fputs( standardoutput , "execute" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "execute" ) ;
Fputs( standardoutput , "execute" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a to be executed function" ) ;
}
#endif /* TRACE */
if ( ( badargumenttoken () ) )
goto lab10 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "execute" ) ;
Fputs( standardoutput , "execute" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 125 ) )
{
bstrightbraceprint () ;
{
{
Fputs( logfile , "execute" ) ;
Fputs( standardoutput , "execute" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
initcommandexecution () ;
messwithentries = false ;
executefn ( fnloc ) ;
checkcommandexecution () ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bstfunctioncommand ( void )
#else
bstfunctioncommand ( )
#endif
{
/* 10 */ {
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a wizard-defined function" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
wizloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 ,
true ) ;
{
if ( ( hashfound ) )
{
alreadyseenfunctionprint ( wizloc ) ;
goto lab10 ;
}
}
fntype [wizloc ]= 1 ;
if ( ( hashtext [wizloc ]== sdefault ) )
bdefault = wizloc ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 125 ) )
{
bstrightbraceprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "function" ) ;
Fputs( standardoutput , "function" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
scanfndef ( wizloc ) ;
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bstintegerscommand ( void )
#else
bstintegerscommand ( )
#endif
{
/* 10 */ {
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "integers" ) ;
Fputs( standardoutput , "integers" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "integers" ) ;
Fputs( standardoutput , "integers" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "integers" ) ;
Fputs( standardoutput , "integers" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
while ( ( buffer [bufptr2 ]!= 125 ) ) {
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "integers" ) ;
Fputs( standardoutput , "integers" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is an integer global-variable" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fnloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 , true
) ;
{
if ( ( hashfound ) )
{
alreadyseenfunctionprint ( fnloc ) ;
goto lab10 ;
}
}
fntype [fnloc ]= 7 ;
ilkinfo [fnloc ]= 0 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "integers" ) ;
Fputs( standardoutput , "integers" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
}
bufptr2 = bufptr2 + 1 ;
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bstiteratecommand ( void )
#else
bstiteratecommand ( )
#endif
{
/* 10 */ if ( ( ! readseen ) )
{
{
Fputs( logfile , "Illegal, iterate command before read command" ) ;
Fputs( standardoutput , "Illegal, iterate command before read command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "iterate" ) ;
Fputs( standardoutput , "iterate" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "iterate" ) ;
Fputs( standardoutput , "iterate" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "iterate" ) ;
Fputs( standardoutput , "iterate" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "iterate" ) ;
Fputs( standardoutput , "iterate" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a to be iterated function" ) ;
}
#endif /* TRACE */
if ( ( badargumenttoken () ) )
goto lab10 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "iterate" ) ;
Fputs( standardoutput , "iterate" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 125 ) )
{
bstrightbraceprint () ;
{
{
Fputs( logfile , "iterate" ) ;
Fputs( standardoutput , "iterate" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
initcommandexecution () ;
messwithentries = true ;
sortciteptr = 0 ;
while ( ( sortciteptr < numcites ) ) {
citeptr = citeinfo [sortciteptr ];
;
#ifdef TRACE
{
outpoolstr ( logfile , hashtext [fnloc ]) ;
}
{
Fputs( logfile , " to be iterated on " ) ;
}
{
outpoolstr ( logfile , citelist [citeptr ]) ;
}
{
putc ('\n', logfile );
}
#endif /* TRACE */
executefn ( fnloc ) ;
checkcommandexecution () ;
sortciteptr = sortciteptr + 1 ;
}
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bstmacrocommand ( void )
#else
bstmacrocommand ( )
#endif
{
/* 10 */ if ( ( readseen ) )
{
{
Fputs( logfile , "Illegal, macro command after read command" ) ;
Fputs( standardoutput , "Illegal, macro command after read command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a macro" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
macronameloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 13
, true ) ;
if ( ( hashfound ) )
{
printatoken () ;
{
{
Fputs( logfile , " is already defined as a macro" ) ;
Fputs( standardoutput , " is already defined as a macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
ilkinfo [macronameloc ]= hashtext [macronameloc ];
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 125 ) )
{
bstrightbraceprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
if ( ( buffer [bufptr2 ]!= 34 ) )
{
{
fprintf( logfile , "%s%c%s", "A macro definition must be " , xchr [34 ], "-delimited" ) ;
fprintf( standardoutput , "%s%c%s", "A macro definition must be " , xchr [34 ], "-delimited" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
{
bufptr2 = bufptr2 + 1 ;
if ( ( ! scan1 ( 34 ) ) )
{
{
fprintf( logfile , "%s%c%s", "There's no `" , xchr [34 ], "' to end macro definition" ) ;
fprintf( standardoutput , "%s%c%s", "There's no `" , xchr [34 ], "' to end macro definition" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
;
#ifdef TRACE
{
putc ( '"' , logfile );
}
{
outtoken ( logfile ) ;
}
{
putc ( '"' , logfile );
}
{
fprintf( logfile , "%s\n", " is a macro string" ) ;
}
#endif /* TRACE */
macrodefloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 0 ,
true ) ;
fntype [macrodefloc ]= 3 ;
ilkinfo [macronameloc ]= hashtext [macrodefloc ];
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 125 ) )
{
bstrightbraceprint () ;
{
{
Fputs( logfile , "macro" ) ;
Fputs( standardoutput , "macro" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
getbibcommandorentryandprocess ( void )
#else
getbibcommandorentryandprocess ( )
#endif
{
/* 22 26 15 10 */ atbibcommand = false ;
while ( ( ! scan1 ( 64 ) ) ) {
if ( ( ! inputln ( bibfile [bibptr ]) ) )
goto lab10 ;
biblinenum = biblinenum + 1 ;
bufptr2 = 0 ;
}
{
if ( ( buffer [bufptr2 ]!= 64 ) )
{
{
fprintf( logfile , "%s%c%s", "An \"" , xchr [64 ], "\" disappeared" ) ;
fprintf( standardoutput , "%s%c%s", "An \"" , xchr [64 ], "\" disappeared" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
scanidentifier ( 123 , 40 , 40 ) ;
{
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bibidprint () ;
{
{
Fputs( logfile , "an entry type" ) ;
Fputs( standardoutput , "an entry type" ) ;
}
biberrprint () ;
goto lab10 ;
}
}
}
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is an entry type or a database-file command" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
commandnum = ilkinfo [strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1
) , 12 , false ) ];
if ( ( hashfound ) )
{
atbibcommand = true ;
switch ( ( commandnum ) )
{case 0 :
{
goto lab10 ;
}
break ;
case 1 :
{
if ( ( preambleptr == maxbibfiles ) )
{
BIBXRETALLOC ( "bib_list" , biblist , strnumber , maxbibfiles ,
maxbibfiles + MAXBIBFILES ) ;
BIBXRETALLOC ( "bib_file" , bibfile , alphafile , maxbibfiles ,
maxbibfiles ) ;
BIBXRETALLOC ( "s_preamble" , spreamble , strnumber , maxbibfiles
, maxbibfiles ) ;
}
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
if ( ( buffer [bufptr2 ]== 123 ) )
rightouterdelim = 125 ;
else if ( ( buffer [bufptr2 ]== 40 ) )
rightouterdelim = 41 ;
else {
biboneoftwoprint ( 123 , 40 ) ;
goto lab10 ;
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
storefield = true ;
if ( ( ! scanandstorethefieldvalueandeatwhite () ) )
goto lab10 ;
if ( ( buffer [bufptr2 ]!= rightouterdelim ) )
{
{
fprintf( logfile , "%s%c%s", "Missing \"" , xchr [rightouterdelim ], "\" in preamble command" ) ;
fprintf( standardoutput , "%s%c%s", "Missing \"" , xchr [rightouterdelim ] , "\" in preamble command" ) ;
}
biberrprint () ;
goto lab10 ;
}
bufptr2 = bufptr2 + 1 ;
goto lab10 ;
}
break ;
case 2 :
{
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
{
if ( ( buffer [bufptr2 ]== 123 ) )
rightouterdelim = 125 ;
else if ( ( buffer [bufptr2 ]== 40 ) )
rightouterdelim = 41 ;
else {
biboneoftwoprint ( 123 , 40 ) ;
goto lab10 ;
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
scanidentifier ( 61 , 61 , 61 ) ;
{
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bibidprint () ;
{
{
Fputs( logfile , "a string name" ) ;
Fputs( standardoutput , "a string name" ) ;
}
biberrprint () ;
goto lab10 ;
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a database-defined macro" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
curmacroloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1
) , 13 , true ) ;
ilkinfo [curmacroloc ]= hashtext [curmacroloc ];
}
}
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
{
if ( ( buffer [bufptr2 ]!= 61 ) )
{
bibequalssignprint () ;
goto lab10 ;
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
storefield = true ;
if ( ( ! scanandstorethefieldvalueandeatwhite () ) )
goto lab10 ;
if ( ( buffer [bufptr2 ]!= rightouterdelim ) )
{
{
fprintf( logfile , "%s%c%s", "Missing \"" , xchr [rightouterdelim ], "\" in string command" ) ;
fprintf( standardoutput , "%s%c%s", "Missing \"" , xchr [rightouterdelim ], "\" in string command" ) ;
}
biberrprint () ;
goto lab10 ;
}
bufptr2 = bufptr2 + 1 ;
}
goto lab10 ;
}
break ;
default:
bibcmdconfusion () ;
break ;
}
}
else {
entrytypeloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11
, false ) ;
if ( ( ( ! hashfound ) || ( fntype [entrytypeloc ]!= 1 ) ) )
typeexists = false ;
else typeexists = true ;
}
}
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
{
if ( ( buffer [bufptr2 ]== 123 ) )
rightouterdelim = 125 ;
else if ( ( buffer [bufptr2 ]== 40 ) )
rightouterdelim = 41 ;
else {
biboneoftwoprint ( 123 , 40 ) ;
goto lab10 ;
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
if ( ( rightouterdelim == 41 ) )
{
if ( ( scan1white ( 44 ) ) )
;
}
else if ( ( scan2white ( 44 , 125 ) ) )
;
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a database key" ) ;
}
#endif /* TRACE */
tmpptr = bufptr1 ;
while ( ( tmpptr < bufptr2 ) ) {
exbuf [tmpptr ]= buffer [tmpptr ];
tmpptr = tmpptr + 1 ;
}
lowercase ( exbuf , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
if ( ( allentries ) )
lcciteloc = strlookup ( exbuf , bufptr1 , ( bufptr2 - bufptr1 ) , 10 ,
true ) ;
else lcciteloc = strlookup ( exbuf , bufptr1 , ( bufptr2 - bufptr1 ) ,
10 , false ) ;
if ( ( hashfound ) )
{
entryciteptr = ilkinfo [ilkinfo [lcciteloc ]];
{
if ( ( ( ! allentries ) || ( entryciteptr < allmarker ) || (
entryciteptr >= oldnumcites ) ) )
{
if ( ( typelist [entryciteptr ]== 0 ) )
{
{
if ( ( ( ! allentries ) && ( entryciteptr >= oldnumcites ) ) )
{
citeloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1
) , 9 , true ) ;
if ( ( ! hashfound ) )
{
ilkinfo [lcciteloc ]= citeloc ;
ilkinfo [citeloc ]= entryciteptr ;
citelist [entryciteptr ]= hashtext [citeloc ];
hashfound = true ;
}
}
}
goto lab26 ;
}
}
else if ( ( ! entryexists [entryciteptr ]) )
{
{
exbufptr = 0 ;
tmpptr = strstart [citeinfo [entryciteptr ]];
tmpendptr = strstart [citeinfo [entryciteptr ]+ 1 ];
while ( ( tmpptr < tmpendptr ) ) {
exbuf [exbufptr ]= strpool [tmpptr ];
exbufptr = exbufptr + 1 ;
tmpptr = tmpptr + 1 ;
}
lowercase ( exbuf , 0 , ( strstart [citeinfo [entryciteptr ]+
1 ]- strstart [citeinfo [entryciteptr ]]) ) ;
lcxciteloc = strlookup ( exbuf , 0 , ( strstart [citeinfo [
entryciteptr ]+ 1 ]- strstart [citeinfo [entryciteptr ]])
, 10 , false ) ;
if ( ( ! hashfound ) )
citekeydisappearedconfusion () ;
}
if ( ( lcxciteloc == lcciteloc ) )
goto lab26 ;
}
if ( ( typelist [entryciteptr ]== 0 ) )
{
{
Fputs( logfile , "The cite list is messed up" ) ;
Fputs( standardoutput , "The cite list is messed up" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
{
{
Fputs( logfile , "Repeated entry" ) ;
Fputs( standardoutput , "Repeated entry" ) ;
}
biberrprint () ;
goto lab10 ;
}
lab26: ;
}
}
storeentry = true ;
if ( ( allentries ) )
{
if ( ( hashfound ) )
{
if ( ( entryciteptr < allmarker ) )
goto lab22 ;
else {
entryexists [entryciteptr ]= true ;
citeloc = ilkinfo [lcciteloc ];
}
}
else {
citeloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 9 ,
true ) ;
if ( ( hashfound ) )
hashciteconfusion () ;
}
entryciteptr = citeptr ;
adddatabasecite ( citeptr ) ;
lab22: ;
}
else if ( ( ! hashfound ) )
storeentry = false ;
if ( ( storeentry ) )
{
if ( ( typeexists ) )
typelist [entryciteptr ]= entrytypeloc ;
else {
typelist [entryciteptr ]= undefined ;
{
Fputs( logfile , "Warning--entry type for \"" ) ;
Fputs( standardoutput , "Warning--entry type for \"" ) ;
}
printatoken () ;
{
{
fprintf( logfile , "%s\n", "\" isn't style-file defined" ) ;
fprintf( standardoutput , "%s\n", "\" isn't style-file defined" ) ;
}
bibwarnprint () ;
}
}
}
}
}
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
{
while ( ( buffer [bufptr2 ]!= rightouterdelim ) ) {
if ( ( buffer [bufptr2 ]!= 44 ) )
{
biboneoftwoprint ( 44 , rightouterdelim ) ;
goto lab10 ;
}
bufptr2 = bufptr2 + 1 ;
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
if ( ( buffer [bufptr2 ]== rightouterdelim ) )
goto lab15 ;
{
scanidentifier ( 61 , 61 , 61 ) ;
{
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bibidprint () ;
{
{
Fputs( logfile , "a field name" ) ;
Fputs( standardoutput , "a field name" ) ;
}
biberrprint () ;
goto lab10 ;
}
}
}
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a field name" ) ;
}
#endif /* TRACE */
storefield = false ;
if ( ( storeentry ) )
{
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fieldnameloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 )
, 11 , false ) ;
if ( ( hashfound ) )
if ( ( fntype [fieldnameloc ]== 4 ) )
storefield = true ;
}
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
if ( ( buffer [bufptr2 ]!= 61 ) )
{
bibequalssignprint () ;
goto lab10 ;
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbibwhitespace () ) )
{
eatbibprint () ;
goto lab10 ;
}
}
if ( ( ! scanandstorethefieldvalueandeatwhite () ) )
goto lab10 ;
}
lab15: bufptr2 = bufptr2 + 1 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bstreadcommand ( void )
#else
bstreadcommand ( )
#endif
{
/* 10 */ if ( ( readseen ) )
{
{
Fputs( logfile , "Illegal, another read command" ) ;
Fputs( standardoutput , "Illegal, another read command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
readseen = true ;
if ( ( ! entryseen ) )
{
{
Fputs( logfile , "Illegal, read command before entry command" ) ;
Fputs( standardoutput , "Illegal, read command before entry command" )
;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
svptr1 = bufptr2 ;
svptr2 = last ;
tmpptr = svptr1 ;
while ( ( tmpptr < svptr2 ) ) {
svbuffer [tmpptr ]= buffer [tmpptr ];
tmpptr = tmpptr + 1 ;
}
{
{
{
checkfieldoverflow ( numfields * numcites ) ;
fieldptr = 0 ;
while ( ( fieldptr < maxfields ) ) {
fieldinfo [fieldptr ]= 0 ;
fieldptr = fieldptr + 1 ;
}
}
{
citeptr = 0 ;
while ( ( citeptr < maxcites ) ) {
typelist [citeptr ]= 0 ;
citeinfo [citeptr ]= 0 ;
citeptr = citeptr + 1 ;
}
oldnumcites = numcites ;
if ( ( allentries ) )
{
citeptr = allmarker ;
while ( ( citeptr < oldnumcites ) ) {
citeinfo [citeptr ]= citelist [citeptr ];
entryexists [citeptr ]= false ;
citeptr = citeptr + 1 ;
}
citeptr = allmarker ;
}
else {
citeptr = numcites ;
allmarker = 0 ;
}
}
}
readperformed = true ;
bibptr = 0 ;
while ( ( bibptr < numbibfiles ) ) {
if ( verbose )
{
{
fprintf( logfile , "%s%ld%s", "Database file #" , (long)bibptr + 1 , ": " ) ;
fprintf( standardoutput , "%s%ld%s", "Database file #" , (long)bibptr + 1 , ": " ) ;
}
printbibname () ;
}
biblinenum = 0 ;
bufptr2 = last ;
while ( ( ! eof ( bibfile [bibptr ]) ) )
getbibcommandorentryandprocess () ;
aclose ( bibfile [bibptr ]) ;
bibptr = bibptr + 1 ;
}
readingcompleted = true ;
;
#ifdef TRACE
{
fprintf( logfile , "%s\n", "Finished reading the database file(s)" ) ;
}
#endif /* TRACE */
{
numcites = citeptr ;
numpreamblestrings = preambleptr ;
{
checkfieldoverflow ( ( numcites - 1 ) * numfields + crossrefnum ) ;
citeptr = 0 ;
while ( ( citeptr < numcites ) ) {
fieldptr = citeptr * numfields + crossrefnum ;
if ( ( fieldinfo [fieldptr ]!= 0 ) )
if ( ( findcitelocsforthiscitekey ( fieldinfo [fieldptr ]) ) )
{
citeloc = ilkinfo [lcciteloc ];
fieldinfo [fieldptr ]= hashtext [citeloc ];
citeparentptr = ilkinfo [citeloc ];
fieldptr = citeptr * numfields + numpredefinedfields ;
fieldendptr = fieldptr - numpredefinedfields + numfields ;
fieldparentptr = citeparentptr * numfields + numpredefinedfields ;
while ( ( fieldptr < fieldendptr ) ) {
if ( ( fieldinfo [fieldptr ]== 0 ) )
fieldinfo [fieldptr ]= fieldinfo [fieldparentptr ];
fieldptr = fieldptr + 1 ;
fieldparentptr = fieldparentptr + 1 ;
}
}
citeptr = citeptr + 1 ;
}
}
{
checkfieldoverflow ( ( numcites - 1 ) * numfields + crossrefnum ) ;
citeptr = 0 ;
while ( ( citeptr < numcites ) ) {
fieldptr = citeptr * numfields + crossrefnum ;
if ( ( fieldinfo [fieldptr ]!= 0 ) )
if ( ( ! findcitelocsforthiscitekey ( fieldinfo [fieldptr ]) ) )
{
if ( ( citehashfound ) )
hashciteconfusion () ;
nonexistentcrossreferenceerror () ;
fieldinfo [fieldptr ]= 0 ;
}
else {
if ( ( citeloc != ilkinfo [lcciteloc ]) )
hashciteconfusion () ;
citeparentptr = ilkinfo [citeloc ];
if ( ( typelist [citeparentptr ]== 0 ) )
{
nonexistentcrossreferenceerror () ;
fieldinfo [fieldptr ]= 0 ;
}
else {
fieldparentptr = citeparentptr * numfields + crossrefnum ;
if ( ( fieldinfo [fieldparentptr ]!= 0 ) )
{
{
Fputs( logfile , "Warning--you've nested cross references" ) ;
Fputs( standardoutput , "Warning--you've nested cross references" ) ;
}
badcrossreferenceprint ( citelist [citeparentptr ]) ;
{
fprintf( logfile , "%s\n", "\", which also refers to something" ) ;
fprintf( standardoutput , "%s\n", "\", which also refers to something" ) ;
}
markwarning () ;
}
if ( ( ( ! allentries ) && ( citeparentptr >= oldnumcites ) && (
citeinfo [citeparentptr ]< mincrossrefs ) ) )
fieldinfo [fieldptr ]= 0 ;
}
}
citeptr = citeptr + 1 ;
}
}
{
citeptr = 0 ;
while ( ( citeptr < numcites ) ) {
if ( ( typelist [citeptr ]== 0 ) )
printmissingentry ( citelist [citeptr ]) ;
else if ( ( ( allentries ) || ( citeptr < oldnumcites ) || (
citeinfo [citeptr ]>= mincrossrefs ) ) )
{
if ( ( citeptr > citexptr ) )
{
checkfieldoverflow ( ( citexptr + 1 ) * numfields ) ;
citelist [citexptr ]= citelist [citeptr ];
typelist [citexptr ]= typelist [citeptr ];
if ( ( ! findcitelocsforthiscitekey ( citelist [citeptr ]) ) )
citekeydisappearedconfusion () ;
if ( ( ( ! citehashfound ) || ( citeloc != ilkinfo [lcciteloc ]
) ) )
hashciteconfusion () ;
ilkinfo [citeloc ]= citexptr ;
fieldptr = citexptr * numfields ;
fieldendptr = fieldptr + numfields ;
tmpptr = citeptr * numfields ;
while ( ( fieldptr < fieldendptr ) ) {
fieldinfo [fieldptr ]= fieldinfo [tmpptr ];
fieldptr = fieldptr + 1 ;
tmpptr = tmpptr + 1 ;
}
}
citexptr = citexptr + 1 ;
}
citeptr = citeptr + 1 ;
}
numcites = citexptr ;
if ( ( allentries ) )
{
citeptr = allmarker ;
while ( ( citeptr < oldnumcites ) ) {
if ( ( ! entryexists [citeptr ]) )
printmissingentry ( citeinfo [citeptr ]) ;
citeptr = citeptr + 1 ;
}
}
}
{
if ( ( numentints * numcites > maxentints ) )
BIBXRETALLOC ( "entry_ints" , entryints , integer , maxentints , (
numentints + 1 ) * ( numcites + 1 ) ) ;
intentptr = 0 ;
while ( ( intentptr < numentints * numcites ) ) {
entryints [intentptr ]= 0 ;
intentptr = intentptr + 1 ;
}
}
{
if ( ( numentstrs * numcites > maxentstrs ) )
{
BIBXRETALLOC ( "entry_strs" , entrystrs , ASCIIcode , maxentstrs , (
numentstrs + 1 ) * ( numcites + 1 ) * ( entstrsize + 1 ) ) ;
maxentstrs = numentstrs * numcites ;
}
strentptr = 0 ;
while ( ( strentptr < numentstrs * numcites ) ) {
entrystrs [( strentptr ) * ( entstrsize + 1 ) + ( 0 ) ]= 127 ;
strentptr = strentptr + 1 ;
}
}
{
citeptr = 0 ;
while ( ( citeptr < numcites ) ) {
citeinfo [citeptr ]= citeptr ;
citeptr = citeptr + 1 ;
}
}
}
readcompleted = true ;
}
bufptr2 = svptr1 ;
last = svptr2 ;
tmpptr = bufptr2 ;
while ( ( tmpptr < last ) ) {
buffer [tmpptr ]= svbuffer [tmpptr ];
tmpptr = tmpptr + 1 ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bstreversecommand ( void )
#else
bstreversecommand ( )
#endif
{
/* 10 */ if ( ( ! readseen ) )
{
{
Fputs( logfile , "Illegal, reverse command before read command" ) ;
Fputs( standardoutput , "Illegal, reverse command before read command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "reverse" ) ;
Fputs( standardoutput , "reverse" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "reverse" ) ;
Fputs( standardoutput , "reverse" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "reverse" ) ;
Fputs( standardoutput , "reverse" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "reverse" ) ;
Fputs( standardoutput , "reverse" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a to be iterated in reverse function" ) ;
}
#endif /* TRACE */
if ( ( badargumenttoken () ) )
goto lab10 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "reverse" ) ;
Fputs( standardoutput , "reverse" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 125 ) )
{
bstrightbraceprint () ;
{
{
Fputs( logfile , "reverse" ) ;
Fputs( standardoutput , "reverse" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
initcommandexecution () ;
messwithentries = true ;
if ( ( numcites > 0 ) )
{
sortciteptr = numcites ;
do {
sortciteptr = sortciteptr - 1 ;
citeptr = citeinfo [sortciteptr ];
;
#ifdef TRACE
{
outpoolstr ( logfile , hashtext [fnloc ]) ;
}
{
Fputs( logfile , " to be iterated in reverse on " ) ;
}
{
outpoolstr ( logfile , citelist [citeptr ]) ;
}
{
putc ('\n', logfile );
}
#endif /* TRACE */
executefn ( fnloc ) ;
checkcommandexecution () ;
} while ( ! ( ( sortciteptr == 0 ) ) ) ;
}
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bstsortcommand ( void )
#else
bstsortcommand ( )
#endif
{
/* 10 */ if ( ( ! readseen ) )
{
{
Fputs( logfile , "Illegal, sort command before read command" ) ;
Fputs( standardoutput , "Illegal, sort command before read command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
{
;
#ifdef TRACE
{
fprintf( logfile , "%s\n", "Sorting the entries" ) ;
}
#endif /* TRACE */
if ( ( numcites > 1 ) )
quicksort ( 0 , numcites - 1 ) ;
;
#ifdef TRACE
{
fprintf( logfile , "%s\n", "Done sorting" ) ;
}
#endif /* TRACE */
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
bststringscommand ( void )
#else
bststringscommand ( )
#endif
{
/* 10 */ {
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "strings" ) ;
Fputs( standardoutput , "strings" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
if ( ( buffer [bufptr2 ]!= 123 ) )
{
bstleftbraceprint () ;
{
{
Fputs( logfile , "strings" ) ;
Fputs( standardoutput , "strings" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
bufptr2 = bufptr2 + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "strings" ) ;
Fputs( standardoutput , "strings" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
while ( ( buffer [bufptr2 ]!= 125 ) ) {
{
scanidentifier ( 125 , 37 , 37 ) ;
if ( ( ( scanresult == 3 ) || ( scanresult == 1 ) ) )
;
else {
bstidprint () ;
{
{
Fputs( logfile , "strings" ) ;
Fputs( standardoutput , "strings" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
{
;
#ifdef TRACE
{
outtoken ( logfile ) ;
}
{
fprintf( logfile , "%s\n", " is a string global-variable" ) ;
}
#endif /* TRACE */
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
fnloc = strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) , 11 , true
) ;
{
if ( ( hashfound ) )
{
alreadyseenfunctionprint ( fnloc ) ;
goto lab10 ;
}
}
fntype [fnloc ]= 8 ;
ilkinfo [fnloc ]= numglbstrs ;
if ( ( numglbstrs == 20 ) )
{
printoverflow () ;
{
fprintf( logfile , "%s%ld\n", "number of string global-variables " , (long)20 ) ;
fprintf( standardoutput , "%s%ld\n", "number of string global-variables " , (long)20 ) ;
}
longjmp(jmp9998,1) ;
}
numglbstrs = numglbstrs + 1 ;
}
{
if ( ( ! eatbstwhitespace () ) )
{
eatbstprint () ;
{
{
Fputs( logfile , "strings" ) ;
Fputs( standardoutput , "strings" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
}
}
bufptr2 = bufptr2 + 1 ;
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
getbstcommandandprocess ( void )
#else
getbstcommandandprocess ( )
#endif
{
/* 10 */ if ( ( ! scanalpha () ) )
{
{
fprintf( logfile , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" can't start a style-file command" ) ;
fprintf( standardoutput , "%c%c%s", '"' , xchr [buffer [bufptr2 ]], "\" can't start a style-file command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
lowercase ( buffer , bufptr1 , ( bufptr2 - bufptr1 ) ) ;
commandnum = ilkinfo [strlookup ( buffer , bufptr1 , ( bufptr2 - bufptr1 )
, 4 , false ) ];
if ( ( ! hashfound ) )
{
printatoken () ;
{
{
Fputs( logfile , " is an illegal style-file command" ) ;
Fputs( standardoutput , " is an illegal style-file command" ) ;
}
{
bsterrprintandlookforblankline () ;
goto lab10 ;
}
}
}
switch ( ( commandnum ) )
{case 0 :
bstentrycommand () ;
break ;
case 1 :
bstexecutecommand () ;
break ;
case 2 :
bstfunctioncommand () ;
break ;
case 3 :
bstintegerscommand () ;
break ;
case 4 :
bstiteratecommand () ;
break ;
case 5 :
bstmacrocommand () ;
break ;
case 6 :
bstreadcommand () ;
break ;
case 7 :
bstreversecommand () ;
break ;
case 8 :
bstsortcommand () ;
break ;
case 9 :
bststringscommand () ;
break ;
default:
{
{
Fputs( logfile , "Unknown style-file command" ) ;
Fputs( standardoutput , "Unknown style-file command" ) ;
}
printconfusion () ;
longjmp(jmp9998,1) ;
}
break ;
}
lab10: ;
}
void
#ifdef HAVE_PROTOTYPES
initialize ( void )
#else
initialize ( )
#endif
{
integer i ;
hashloc k ;
bad = 0 ;
if ( ( minprintline < 3 ) )
bad = 1 ;
if ( ( maxprintline <= minprintline ) )
bad = 10 * bad + 2 ;
if ( ( maxprintline >= bufsize ) )
bad = 10 * bad + 3 ;
if ( ( hashprime < 128 ) )
bad = 10 * bad + 4 ;
if ( ( hashprime > hashsize ) )
bad = 10 * bad + 5 ;
if ( ( maxstrings > hashsize ) )
bad = 10 * bad + 7 ;
if ( ( maxcites > maxstrings ) )
bad = 10 * bad + 8 ;
if ( ( entstrsize > bufsize ) )
bad = 10 * bad + 9 ;
if ( ( globstrsize > bufsize ) )
bad = 100 * bad + 11 ;
if ( ( 10 < 2 * 4 + 2 ) )
bad = 100 * bad + 22 ;
if ( ( bad > 0 ) )
{
fprintf( standardoutput , "%ld%s\n", (long)bad , " is a bad bad" ) ;
uexit ( 1 ) ;
}
history = 0 ;
xchr [32 ]= ' ' ;
xchr [33 ]= '!' ;
xchr [34 ]= '"' ;
xchr [35 ]= '#' ;
xchr [36 ]= '$' ;
xchr [37 ]= '%' ;
xchr [38 ]= '&' ;
xchr [39 ]= '\'' ;
xchr [40 ]= '(' ;
xchr [41 ]= ')' ;
xchr [42 ]= '*' ;
xchr [43 ]= '+' ;
xchr [44 ]= ',' ;
xchr [45 ]= '-' ;
xchr [46 ]= '.' ;
xchr [47 ]= '/' ;
xchr [48 ]= '0' ;
xchr [49 ]= '1' ;
xchr [50 ]= '2' ;
xchr [51 ]= '3' ;
xchr [52 ]= '4' ;
xchr [53 ]= '5' ;
xchr [54 ]= '6' ;
xchr [55 ]= '7' ;
xchr [56 ]= '8' ;
xchr [57 ]= '9' ;
xchr [58 ]= ':' ;
xchr [59 ]= ';' ;
xchr [60 ]= '<' ;
xchr [61 ]= '=' ;
xchr [62 ]= '>' ;
xchr [63 ]= '?' ;
xchr [64 ]= '@' ;
xchr [65 ]= 'A' ;
xchr [66 ]= 'B' ;
xchr [67 ]= 'C' ;
xchr [68 ]= 'D' ;
xchr [69 ]= 'E' ;
xchr [70 ]= 'F' ;
xchr [71 ]= 'G' ;
xchr [72 ]= 'H' ;
xchr [73 ]= 'I' ;
xchr [74 ]= 'J' ;
xchr [75 ]= 'K' ;
xchr [76 ]= 'L' ;
xchr [77 ]= 'M' ;
xchr [78 ]= 'N' ;
xchr [79 ]= 'O' ;
xchr [80 ]= 'P' ;
xchr [81 ]= 'Q' ;
xchr [82 ]= 'R' ;
xchr [83 ]= 'S' ;
xchr [84 ]= 'T' ;
xchr [85 ]= 'U' ;
xchr [86 ]= 'V' ;
xchr [87 ]= 'W' ;
xchr [88 ]= 'X' ;
xchr [89 ]= 'Y' ;
xchr [90 ]= 'Z' ;
xchr [91 ]= '[' ;
xchr [92 ]= '\\' ;
xchr [93 ]= ']' ;
xchr [94 ]= '^' ;
xchr [95 ]= '_' ;
xchr [96 ]= '`' ;
xchr [97 ]= 'a' ;
xchr [98 ]= 'b' ;
xchr [99 ]= 'c' ;
xchr [100 ]= 'd' ;
xchr [101 ]= 'e' ;
xchr [102 ]= 'f' ;
xchr [103 ]= 'g' ;
xchr [104 ]= 'h' ;
xchr [105 ]= 'i' ;
xchr [106 ]= 'j' ;
xchr [107 ]= 'k' ;
xchr [108 ]= 'l' ;
xchr [109 ]= 'm' ;
xchr [110 ]= 'n' ;
xchr [111 ]= 'o' ;
xchr [112 ]= 'p' ;
xchr [113 ]= 'q' ;
xchr [114 ]= 'r' ;
xchr [115 ]= 's' ;
xchr [116 ]= 't' ;
xchr [117 ]= 'u' ;
xchr [118 ]= 'v' ;
xchr [119 ]= 'w' ;
xchr [120 ]= 'x' ;
xchr [121 ]= 'y' ;
xchr [122 ]= 'z' ;
xchr [123 ]= '{' ;
xchr [124 ]= '|' ;
xchr [125 ]= '}' ;
xchr [126 ]= '~' ;
xchr [0 ]= ' ' ;
xchr [127 ]= ' ' ;
{register integer for_end; i = 0 ;for_end = 31 ; if ( i <= for_end) do
xchr [i ]= chr ( i ) ;
while ( i++ < for_end ) ;}
{register integer for_end; i = 127 ;for_end = 255 ; if ( i <= for_end) do
xchr [i ]= chr ( i ) ;
while ( i++ < for_end ) ;}
{register integer for_end; i = 0 ;for_end = 255 ; if ( i <= for_end) do
xord [xchr [i ]]= i ;
while ( i++ < for_end ) ;}
{register integer for_end; i = 0 ;for_end = 127 ; if ( i <= for_end) do
lexclass [i ]= 5 ;
while ( i++ < for_end ) ;}
{register integer for_end; i = 0 ;for_end = 31 ; if ( i <= for_end) do
lexclass [i ]= 0 ;
while ( i++ < for_end ) ;}
lexclass [127 ]= 0 ;
lexclass [9 ]= 1 ;
lexclass [13 ]= 1 ;
lexclass [32 ]= 1 ;
lexclass [126 ]= 4 ;
lexclass [45 ]= 4 ;
{register integer for_end; i = 48 ;for_end = 57 ; if ( i <= for_end) do
lexclass [i ]= 3 ;
while ( i++ < for_end ) ;}
{register integer for_end; i = 65 ;for_end = 90 ; if ( i <= for_end) do
lexclass [i ]= 2 ;
while ( i++ < for_end ) ;}
{register integer for_end; i = 97 ;for_end = 122 ; if ( i <= for_end) do
lexclass [i ]= 2 ;
while ( i++ < for_end ) ;}
{register integer for_end; i = 0 ;for_end = 127 ; if ( i <= for_end) do
idclass [i ]= 1 ;
while ( i++ < for_end ) ;}
{register integer for_end; i = 0 ;for_end = 31 ; if ( i <= for_end) do
idclass [i ]= 0 ;
while ( i++ < for_end ) ;}
idclass [32 ]= 0 ;
idclass [9 ]= 0 ;
idclass [34 ]= 0 ;
idclass [35 ]= 0 ;
idclass [37 ]= 0 ;
idclass [39 ]= 0 ;
idclass [40 ]= 0 ;
idclass [41 ]= 0 ;
idclass [44 ]= 0 ;
idclass [61 ]= 0 ;
idclass [123 ]= 0 ;
idclass [125 ]= 0 ;
{register integer for_end; i = 0 ;for_end = 127 ; if ( i <= for_end) do
charwidth [i ]= 0 ;
while ( i++ < for_end ) ;}
charwidth [32 ]= 278 ;
charwidth [33 ]= 278 ;
charwidth [34 ]= 500 ;
charwidth [35 ]= 833 ;
charwidth [36 ]= 500 ;
charwidth [37 ]= 833 ;
charwidth [38 ]= 778 ;
charwidth [39 ]= 278 ;
charwidth [40 ]= 389 ;
charwidth [41 ]= 389 ;
charwidth [42 ]= 500 ;
charwidth [43 ]= 778 ;
charwidth [44 ]= 278 ;
charwidth [45 ]= 333 ;
charwidth [46 ]= 278 ;
charwidth [47 ]= 500 ;
charwidth [48 ]= 500 ;
charwidth [49 ]= 500 ;
charwidth [50 ]= 500 ;
charwidth [51 ]= 500 ;
charwidth [52 ]= 500 ;
charwidth [53 ]= 500 ;
charwidth [54 ]= 500 ;
charwidth [55 ]= 500 ;
charwidth [56 ]= 500 ;
charwidth [57 ]= 500 ;
charwidth [58 ]= 278 ;
charwidth [59 ]= 278 ;
charwidth [60 ]= 278 ;
charwidth [61 ]= 778 ;
charwidth [62 ]= 472 ;
charwidth [63 ]= 472 ;
charwidth [64 ]= 778 ;
charwidth [65 ]= 750 ;
charwidth [66 ]= 708 ;
charwidth [67 ]= 722 ;
charwidth [68 ]= 764 ;
charwidth [69 ]= 681 ;
charwidth [70 ]= 653 ;
charwidth [71 ]= 785 ;
charwidth [72 ]= 750 ;
charwidth [73 ]= 361 ;
charwidth [74 ]= 514 ;
charwidth [75 ]= 778 ;
charwidth [76 ]= 625 ;
charwidth [77 ]= 917 ;
charwidth [78 ]= 750 ;
charwidth [79 ]= 778 ;
charwidth [80 ]= 681 ;
charwidth [81 ]= 778 ;
charwidth [82 ]= 736 ;
charwidth [83 ]= 556 ;
charwidth [84 ]= 722 ;
charwidth [85 ]= 750 ;
charwidth [86 ]= 750 ;
charwidth [87 ]= 1028 ;
charwidth [88 ]= 750 ;
charwidth [89 ]= 750 ;
charwidth [90 ]= 611 ;
charwidth [91 ]= 278 ;
charwidth [92 ]= 500 ;
charwidth [93 ]= 278 ;
charwidth [94 ]= 500 ;
charwidth [95 ]= 278 ;
charwidth [96 ]= 278 ;
charwidth [97 ]= 500 ;
charwidth [98 ]= 556 ;
charwidth [99 ]= 444 ;
charwidth [100 ]= 556 ;
charwidth [101 ]= 444 ;
charwidth [102 ]= 306 ;
charwidth [103 ]= 500 ;
charwidth [104 ]= 556 ;
charwidth [105 ]= 278 ;
charwidth [106 ]= 306 ;
charwidth [107 ]= 528 ;
charwidth [108 ]= 278 ;
charwidth [109 ]= 833 ;
charwidth [110 ]= 556 ;
charwidth [111 ]= 500 ;
charwidth [112 ]= 556 ;
charwidth [113 ]= 528 ;
charwidth [114 ]= 392 ;
charwidth [115 ]= 394 ;
charwidth [116 ]= 389 ;
charwidth [117 ]= 556 ;
charwidth [118 ]= 528 ;
charwidth [119 ]= 722 ;
charwidth [120 ]= 528 ;
charwidth [121 ]= 528 ;
charwidth [122 ]= 444 ;
charwidth [123 ]= 500 ;
charwidth [124 ]= 1000 ;
charwidth [125 ]= 500 ;
charwidth [126 ]= 500 ;
{register integer for_end; k = hashbase ;for_end = hashmax ; if ( k <=
for_end) do
{
hashnext [k ]= 0 ;
hashtext [k ]= 0 ;
}
while ( k++ < for_end ) ;}
hashused = hashmax + 1 ;
poolptr = 0 ;
strptr = 1 ;
strstart [strptr ]= poolptr ;
bibptr = 0 ;
bibseen = false ;
bststr = 0 ;
bstseen = false ;
citeptr = 0 ;
citationseen = false ;
allentries = false ;
wizdefptr = 0 ;
numentints = 0 ;
numentstrs = 0 ;
numfields = 0 ;
strglbptr = 0 ;
while ( ( strglbptr < 20 ) ) {
glbstrptr [strglbptr ]= 0 ;
glbstrend [strglbptr ]= 0 ;
strglbptr = strglbptr + 1 ;
}
numglbstrs = 0 ;
entryseen = false ;
readseen = false ;
readperformed = false ;
readingcompleted = false ;
readcompleted = false ;
implfnnum = 0 ;
outbuflength = 0 ;
predefcertainstrings () ;
getthetoplevelauxfilename () ;
}
void
#ifdef HAVE_PROTOTYPES
parsearguments ( void )
#else
parsearguments ( )
#endif
{
#define noptions ( 4 )
getoptstruct longoptions[noptions + 1] ;
integer getoptreturnval ;
cinttype optionindex ;
integer currentoption ;
verbose = true ;
mincrossrefs = 2 ;
currentoption = 0 ;
longoptions [0 ].name = "terse" ;
longoptions [0 ].hasarg = 0 ;
longoptions [0 ].flag = addressof ( verbose ) ;
longoptions [0 ].val = 0 ;
currentoption = currentoption + 1 ;
longoptions [currentoption ].name = "min-crossrefs" ;
longoptions [currentoption ].hasarg = 1 ;
longoptions [currentoption ].flag = 0 ;
longoptions [currentoption ].val = 0 ;
currentoption = currentoption + 1 ;
longoptions [currentoption ].name = "help" ;
longoptions [currentoption ].hasarg = 0 ;
longoptions [currentoption ].flag = 0 ;
longoptions [currentoption ].val = 0 ;
currentoption = currentoption + 1 ;
longoptions [currentoption ].name = "version" ;
longoptions [currentoption ].hasarg = 0 ;
longoptions [currentoption ].flag = 0 ;
longoptions [currentoption ].val = 0 ;
currentoption = currentoption + 1 ;
longoptions [currentoption ].name = 0 ;
longoptions [currentoption ].hasarg = 0 ;
longoptions [currentoption ].flag = 0 ;
longoptions [currentoption ].val = 0 ;
do {
getoptreturnval = getoptlongonly ( argc , argv , "" , longoptions ,
addressof ( optionindex ) ) ;
if ( getoptreturnval == -1 )
{
;
}
else if ( getoptreturnval == 63 )
{
usage ( 1 , "bibtex" ) ;
}
else if ( ( strcmp ( longoptions [optionindex ].name , "min-crossrefs" )
== 0 ) )
{
mincrossrefs = atoi ( optarg ) ;
}
else if ( ( strcmp ( longoptions [optionindex ].name , "help" ) == 0 ) )
{
usage ( 0 , BIBTEXHELP ) ;
}
else if ( ( strcmp ( longoptions [optionindex ].name , "version" ) == 0
) )
{
printversionandexit ( "This is BibTeX, Version 0.99c" , "Oren Patashnik"
, nil ) ;
}
} while ( ! ( getoptreturnval == -1 ) ) ;
if ( ( optind + 1 != argc ) )
{
fprintf( stderr , "%s\n", "bibtex: Need exactly one file argument." ) ;
usage ( 1 , "bibtex" ) ;
}
}
void mainbody() {
standardinput = stdin ;
standardoutput = stdout ;
maxentints = MAXENTINTS ;
maxentstrs = MAXENTSTRS ;
poolsize = POOLSIZE ;
maxbibfiles = MAXBIBFILES ;
maxfields = MAXFIELDS ;
bibfile = XTALLOC ( maxbibfiles + 1 , alphafile ) ;
biblist = XTALLOC ( maxbibfiles + 1 , strnumber ) ;
entryints = XTALLOC ( maxentints + 1 , integer ) ;
entrystrs = XTALLOC ( ( maxentstrs + 1 ) * ( entstrsize + 1 ) , ASCIIcode )
;
wizfunctions = XTALLOC ( wizfnspace + 1 , hashptr2 ) ;
fieldinfo = XTALLOC ( maxfields + 1 , strnumber ) ;
spreamble = XTALLOC ( maxbibfiles + 1 , strnumber ) ;
strpool = XTALLOC ( poolsize + 1 , ASCIIcode ) ;
initialize () ;
if ( verbose )
{
{
Fputs( logfile , "This is BibTeX, Version 0.99c" ) ;
Fputs( standardoutput , "This is BibTeX, Version 0.99c" ) ;
}
{
fprintf( logfile , "%s\n", versionstring ) ;
fprintf( standardoutput , "%s\n", versionstring ) ;
}
}
if ( verbose )
{
{
Fputs( logfile , "The top-level auxiliary file: " ) ;
Fputs( standardoutput , "The top-level auxiliary file: " ) ;
}
printauxname () ;
}
while (lab31==0 ) {
auxlnstack [auxptr ]= auxlnstack [auxptr ]+ 1 ;
if ( ( ! inputln ( auxfile [auxptr ]) ) )
poptheauxstack () ;
else getauxcommandandprocess () ;
}
#ifdef TRACE
{
fprintf( logfile , "%s\n", "Finished reading the auxiliary file(s)" ) ;
}
#endif /* TRACE */
lastcheckforauxerrors () ;
if ( ( bststr == 0 ) )
goto lab9932 ;
bstlinenum = 0 ;
bbllinenum = 1 ;
bufptr2 = last ;
if(setjmp(jmp9998)==1) goto lab9998;if(setjmp(jmp32)==0)for(;;)
{
if ( ( ! eatbstwhitespace () ) )
break ;
getbstcommandandprocess () ;
}
aclose ( bstfile ) ;
lab9932: aclose ( bblfile ) ;
lab9998: {
if ( ( ( readperformed ) && ( ! readingcompleted ) ) )
{
{
fprintf( logfile , "%s%ld%s", "Aborted at line " , (long)biblinenum , " of file " ) ;
fprintf( standardoutput , "%s%ld%s", "Aborted at line " , (long)biblinenum , " of file " ) ;
}
printbibname () ;
}
traceandstatprinting () ;
switch ( ( history ) )
{case 0 :
;
break ;
case 1 :
{
if ( ( errcount == 1 ) )
{
fprintf( logfile , "%s\n", "(There was 1 warning)" ) ;
fprintf( standardoutput , "%s\n", "(There was 1 warning)" ) ;
}
else {
fprintf( logfile , "%s%ld%s\n", "(There were " , (long)errcount , " warnings)" ) ;
fprintf( standardoutput , "%s%ld%s\n", "(There were " , (long)errcount , " warnings)" ) ;
}
}
break ;
case 2 :
{
if ( ( errcount == 1 ) )
{
fprintf( logfile , "%s\n", "(There was 1 error message)" ) ;
fprintf( standardoutput , "%s\n", "(There was 1 error message)" ) ;
}
else {
fprintf( logfile , "%s%ld%s\n", "(There were " , (long)errcount , " error messages)" )
;
fprintf( standardoutput , "%s%ld%s\n", "(There were " , (long)errcount , " error messages)" ) ;
}
}
break ;
case 3 :
{
fprintf( logfile , "%s\n", "(That was a fatal error)" ) ;
fprintf( standardoutput , "%s\n", "(That was a fatal error)" ) ;
}
break ;
default:
{
{
Fputs( logfile , "History is bunk" ) ;
Fputs( standardoutput , "History is bunk" ) ;
}
printconfusion () ;
}
break ;
}
aclose ( logfile ) ;
}
lab9999: if ( ( history > 1 ) )
uexit ( history ) ;
}
|