#define EXTERN extern #include "texd.h" void giveerrhelp ( ) {giveerrhelp_regmem tokenshow ( eqtb [ 10821 ] .hh .v.RH ) ; } boolean openfmtfile ( ) {/* 40 10 */ register boolean Result; openfmtfile_regmem integer j ; j = curinput .locfield ; if ( buffer [ curinput .locfield ] == 38 ) { incr ( curinput .locfield ) ; j = curinput .locfield ; buffer [ last ] = 32 ; while ( buffer [ j ] != 32 ) incr ( j ) ; packbufferedname ( 0 , curinput .locfield , j - 1 ) ; if ( wopenin ( fmtfile ) ) goto lab40 ; (void) fprintf( stdout , "%s%s\n", "Sorry, I can't find that format;" , " will try the default." ) ; flush ( stdout ) ; } packbufferedname ( formatdefaultlength - 4 , 1 , 0 ) ; if ( ! wopenin ( fmtfile ) ) { ; (void) fprintf( stdout , "%s\n", "I can't find the default format file!" ) ; Result = false ; return(Result) ; } lab40: curinput .locfield = j ; Result = true ; return(Result) ; } void closefilesandterminate ( ) {closefilesandterminate_regmem integer k ; {register integer for_end; k = 0 ; for_end = 15 ; if ( k <= for_end) do if ( writeopen [ k ] ) aclose ( writefile [ k ] ) ; while ( k++ < for_end ) ; } {register integer for_end; hsii = 1 ; for_end = FILENAMESIZE ; if ( hsii <= for_end) do { nameoffile [ hsii ] = ' ' ; } while ( hsii++ < for_end ) ; } hsij = strstart [ jobname ] ; hsii = 1 ; while ( hsij < strstart [ jobname + 1 ] ) { nameoffile [ hsii ] = xchr [ strpool [ hsij ] ] ; hsij = hsij + 1 ; hsii = hsii + 1 ; } nameoffile [ hsii ] = '.' ; nameoffile [ hsii + 1 ] = 'm' ; nameoffile [ hsii + 2 ] = 'e' ; nameoffile [ hsii + 3 ] = 'm' ; if ( ! aopenout ( hsmem ) ) { (void) fprintf( stdout , "%s\n", " =iSi=> cant a_open_out " ) ; wjob () ; (void) Fputs( stdout , ".mem " ) ; (void) putc('\n', stdout ); } else { while ( mdm != nil ) { if ( inuse ( mdm ->w12 , mdm ->l1 , mdb ) ) { if ( isidebug == 1 ) { (void) Fputs( stdout , " =iSi=> writing to " ) ; wjob () ; (void) Fputs( stdout , ".mem: " ) ; writewt ( mdm ->w12 , mdm ->l1 , mdm ->tr1 ) ; (void) putc('\n', stdout ); } (void) fprintf( hsmem , " %ld\n", (long)mdm ->l1 ) ; {register integer for_end; k = 1 ; for_end = mdm ->l1 ; if ( k <= for_end) do { (void) fprintf( hsmem , " %ld", (long)mdm ->w12 [ k ] ) ; } while ( k++ < for_end ) ; } (void) putc('\n', hsmem ); {register integer for_end; k = 1 ; for_end = mdm ->l1 ; if ( k <= for_end) do { (void) fprintf( hsmem , " %ld", (long)mdm ->tr1 [ k ] ) ; } while ( k++ < for_end ) ; } (void) putc('\n', hsmem ); if ( mdm ->neu1 ) { (void) putc( Xchr ( 116 ) , hsmem ); (void) putc('\n', hsmem ); mdleintragen ( mdm ->w12 , mdm ->l1 , mdl ) ; } else { (void) putc( Xchr ( 102 ) , hsmem ); (void) putc('\n', hsmem ); } } else { if ( isidebug == 1 ) { (void) Fputs( stdout , " =iSi=> " ) ; wwort ( mdm ->w12 , mdm ->l1 ) ; (void) Fputs( stdout , " not in use" ) ; (void) putc('\n', stdout ); } } mdm = mdm ->li ; } aclose ( hsmem ) ; } {register integer for_end; hsii = 1 ; for_end = FILENAMESIZE ; if ( hsii <= for_end) do { nameoffile [ hsii ] = ' ' ; } while ( hsii++ < for_end ) ; } hsij = strstart [ jobname ] ; hsii = 1 ; while ( hsij < strstart [ jobname + 1 ] ) { nameoffile [ hsii ] = xchr [ strpool [ hsij ] ] ; hsij = hsij + 1 ; hsii = hsii + 1 ; } nameoffile [ hsii ] = '.' ; nameoffile [ hsii + 1 ] = 'l' ; nameoffile [ hsii + 2 ] = 'e' ; nameoffile [ hsii + 3 ] = 'x' ; if ( ! aopenout ( hslex ) ) (void) fprintf( stdout , "%s\n", " =iSi=> cant open hslex" ) ; else { while ( mdl != nil ) { if ( isidebug == 1 ) { (void) Fputs( stdout , " =iSi=> writing to " ) ; wjob () ; (void) Fputs( stdout , ".lex: " ) ; wwort ( mdl ->w12 , mdl ->l1 ) ; (void) putc('\n', stdout ); } (void) putc( Xchr ( mdl ->l1 ) , hslex ); {register integer for_end; k = 1 ; for_end = mdl ->l1 ; if ( k <= for_end) do { if ( mdl ->w12 [ k ] <= 26 ) { (void) putc( Xchr ( mdl ->w12 [ k ] + 96 ) , hslex ); } else { if ( mdl ->w12 [ k ] == 27 ) { (void) Fputs( hslex , "\"a" ) ; } else if ( mdl ->w12 [ k ] == 28 ) { (void) Fputs( hslex , "\"o" ) ; } else if ( mdl ->w12 [ k ] == 29 ) { (void) Fputs( hslex , "\"u" ) ; } else if ( mdl ->w12 [ k ] == 30 ) { (void) Fputs( hslex , "\"s" ) ; } else { (void) putc( '-' , hslex ); } } } while ( k++ < for_end ) ; } (void) putc('\n', hslex ); mdl = mdl ->li ; } aclose ( hslex ) ; } {register integer for_end; hsii = 1 ; for_end = FILENAMESIZE ; if ( hsii <= for_end) do { nameoffile [ hsii ] = ' ' ; } while ( hsii++ < for_end ) ; } hsij = strstart [ jobname ] ; hsii = 1 ; while ( hsij < strstart [ jobname + 1 ] ) { nameoffile [ hsii ] = xchr [ strpool [ hsij ] ] ; hsij = hsij + 1 ; hsii = hsii + 1 ; } nameoffile [ hsii ] = '.' ; nameoffile [ hsii + 1 ] = 'e' ; nameoffile [ hsii + 2 ] = 'd' ; nameoffile [ hsii + 3 ] = 't' ; if ( ! aopenout ( hsedt ) ) (void) fprintf( stdout , "%s\n", " =iSi=> cant open hsedt" ) ; else { while ( mde != nil ) { if ( isidebug == 1 ) { (void) Fputs( stdout , " =iSi=> writing to " ) ; wjob () ; (void) Fputs( stdout , ".edt: " ) ; wwort ( mde ->w12 , mde ->l1 ) ; (void) putc('\n', stdout ); } {register integer for_end; k = 1 ; for_end = mde ->l1 ; if ( k <= for_end) do { if ( mde ->w12 [ k ] <= 26 ) { (void) putc( Xchr ( mde ->w12 [ k ] + 96 ) , hsedt ); } else { if ( mde ->w12 [ k ] == 27 ) { (void) Fputs( hsedt , "\"a" ) ; } else if ( mde ->w12 [ k ] == 28 ) { (void) Fputs( hsedt , "\"o" ) ; } else if ( mde ->w12 [ k ] == 29 ) { (void) Fputs( hsedt , "\"u" ) ; } else if ( mde ->w12 [ k ] == 30 ) { (void) Fputs( hsedt , "\"s" ) ; } else { (void) Fputs( hsedt , "--" ) ; } } } while ( k++ < for_end ) ; } (void) putc('\n', hsedt ); mde = mde ->li ; } aclose ( hsedt ) ; } ; #ifdef STAT if ( eqtb [ 12694 ] .cint > 0 ) if ( logopened ) { (void) fprintf( logfile , "%c\n", ' ' ) ; (void) fprintf( logfile , "%s%s\n", "Here is how much of TeX's memory" , " you used:" ) ; (void) fprintf( logfile , "%c%ld%s", ' ' , (long)strptr - initstrptr , " string" ) ; if ( strptr != initstrptr + 1 ) (void) putc( 's' , logfile ); (void) fprintf( logfile , "%s%ld\n", " out of " , (long)maxstrings - initstrptr ) ; (void) fprintf( logfile , "%c%ld%s%ld\n", ' ' , (long)poolptr - initpoolptr , " string characters out of " , (long)poolsize - initpoolptr ) ; (void) fprintf( logfile , "%c%ld%s%ld\n", ' ' , (long)lomemmax - memmin + memend - himemmin + 2 , " words of memory out of " , (long)memend + 1 - memmin ) ; (void) fprintf( logfile , "%c%ld%s%ld\n", ' ' , (long)cscount , " multiletter control sequences out of " , (long)9500 ) ; (void) fprintf( logfile , "%c%ld%s%ld%s", ' ' , (long)fmemptr , " words of font info for " , (long)fontptr - 0 , " font" ) ; if ( fontptr != 1 ) (void) putc( 's' , logfile ); (void) fprintf( logfile , "%s%ld%s%ld\n", ", out of " , (long)fontmemsize , " for " , (long)fontmax - 0 ) ; (void) fprintf( logfile , "%c%ld%s", ' ' , (long)hyphcount , " hyphenation exception" ) ; if ( hyphcount != 1 ) (void) putc( 's' , logfile ); (void) fprintf( logfile , "%s%ld\n", " out of " , (long)607 ) ; (void) fprintf( logfile , "%c%ld%s%ld%s%ld%s%ld%s%ld%s%ld%s%ld%s%ld%s%ld%s%ld%c\n", ' ' , (long)maxinstack , "i," , (long)maxneststack , "n," , (long)maxparamstack , "p," , (long)maxbufstack + 1 , "b," , (long)maxsavestack + 6 , "s stack positions out of " , (long)stacksize , "i," , (long)nestsize , "n," , (long)paramsize , "p," , (long)bufsize , "b," , (long)savesize , 's' ) ; } #endif /* STAT */ while ( curs > -1 ) { if ( curs > 0 ) { dvibuf [ dviptr ] = 142 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } else { { dvibuf [ dviptr ] = 140 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } incr ( totalpages ) ; } decr ( curs ) ; } if ( totalpages == 0 ) printnl ( 833 ) ; else { { dvibuf [ dviptr ] = 248 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } dvifour ( lastbop ) ; lastbop = dvioffset + dviptr - 5 ; dvifour ( 25400000L ) ; dvifour ( 473628672L ) ; preparemag () ; dvifour ( eqtb [ 12680 ] .cint ) ; dvifour ( maxv ) ; dvifour ( maxh ) ; { dvibuf [ dviptr ] = maxpush / 256 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } { dvibuf [ dviptr ] = maxpush % 256 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } { dvibuf [ dviptr ] = ( totalpages / 256 ) % 256 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } { dvibuf [ dviptr ] = totalpages % 256 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } while ( fontptr > 0 ) { if ( fontused [ fontptr ] ) dvifontdef ( fontptr ) ; decr ( fontptr ) ; } { dvibuf [ dviptr ] = 249 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } dvifour ( lastbop ) ; { dvibuf [ dviptr ] = 2 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } k = 4 + ( ( dvibufsize - dviptr ) % 4 ) ; while ( k > 0 ) { { dvibuf [ dviptr ] = 223 ; incr ( dviptr ) ; if ( dviptr == dvilimit ) dviswap () ; } decr ( k ) ; } if ( dvilimit == halfbuf ) writedvi ( halfbuf , dvibufsize - 1 ) ; if ( dviptr > 0 ) writedvi ( 0 , dviptr - 1 ) ; printnl ( 834 ) ; print ( outputfilename ) ; print ( 284 ) ; printint ( totalpages ) ; print ( 835 ) ; if ( totalpages != 1 ) printchar ( 115 ) ; print ( 836 ) ; printint ( dvioffset + dviptr ) ; print ( 837 ) ; bclose ( dvifile ) ; } if ( logopened ) { (void) putc('\n', logfile ); aclose ( logfile ) ; selector = selector - 2 ; if ( selector == 17 ) { printnl ( 1268 ) ; print ( logname ) ; printchar ( 46 ) ; } } println () ; if ( ( editnamestart != 0 ) && ( interaction > 0 ) ) calledit ( strpool , editnamestart , editnamelength , editline ) ; } #ifdef DEBUG void debughelp ( ) {/* 888 10 */ debughelp_regmem integer k, l, m, n ; while ( true ) { ; printnl ( 1277 ) ; flush ( stdout ) ; read ( stdin , m ) ; if ( m < 0 ) return ; else if ( m == 0 ) dumpcore () ; else { read ( stdin , n ) ; switch ( m ) {case 1 : printword ( mem [ n ] ) ; break ; case 2 : printint ( mem [ n ] .hh .v.LH ) ; break ; case 3 : printint ( mem [ n ] .hh .v.RH ) ; break ; case 4 : printword ( eqtb [ n ] ) ; break ; case 5 : printword ( fontinfo [ n ] ) ; break ; case 6 : printword ( savestack [ n ] ) ; break ; case 7 : showbox ( n ) ; break ; case 8 : { breadthmax = 10000 ; depththreshold = poolsize - poolptr - 10 ; shownodelist ( n ) ; } break ; case 9 : showtokenlist ( n , 0 , 1000 ) ; break ; case 10 : print ( n ) ; break ; case 11 : checkmem ( n > 0 ) ; break ; case 12 : searchmem ( n ) ; break ; case 13 : { read ( stdin , l ) ; printcmdchr ( n , l ) ; } break ; case 14 : {register integer for_end; k = 0 ; for_end = n ; if ( k <= for_end) do print ( buffer [ k ] ) ; while ( k++ < for_end ) ; } break ; case 15 : { fontinshortdisplay = 0 ; shortdisplay ( n ) ; } break ; case 16 : panicking = ! panicking ; break ; default: print ( 63 ) ; break ; } } } } #endif /* DEBUG */