/* squeese.c -- write The Book as a table of letters */ #include #include #include "ios.h" /* using the input/output service module ios.o */ #define LINE_LENGTH 50 static int get_letter ( void ); static int remains; void main ( int argc, char * argv [] ) { int k, LineCount, flag, c; char Buffer [LINE_LENGTH]; FILE * outfile; if ( argc < 3 ) err_command_line ( "squeese infile outfile" ); open_input_file ( argv [1] ); remains = 0; outfile = open_output_file ( argv [2] ); flag = 1; LineCount = 0; do { for ( k=0; k= 0 ) { fprintf ( outfile, "%c", Buffer [k] ); if ( k % 10 == 0 ) fprintf ( outfile, " " ); } fprintf ( outfile, " <-- %6ld ]\n", 1 + LINE_LENGTH * (long)LineCount ); ++LineCount; } while ( flag ); exit (0); } static int get_letter ( void ) { int c; static char * from; do { if ( remains < 0 ) return (-1); if ( remains == 0 ) { remains = get_line ( & from ); from += remains; continue; } --remains; c = (unsigned char) * --from; if ( isascii (c) && ( isspace (c) || isdigit (c) || (c=='<') || (c=='-') ) ) continue; return ( c ); } while (1); /* unreachable */ } /* end of squeese.c */