/* +--------------------------------------------+ */ /* |@(#) cntr: usage [width:-80] | */ /* +--------------------------------------------+ */ #include #include #include #define BMAX 2048 #define WIDTH 80 char *verid = "%Z% VAU-1 cntr by ycos %I%"; /* Error message print */ /* erprint(prog, message), output stderr */ void erprt( char *prog, char *msg ) { fprintf(stderr,"\n%s:%s\n", prog, msg ); exit(1); } main( int argc, char *argv[] ) { FILE *ipt; /* Input file discripter */ int len, /* length of input line */ mgn, /* right mergin */ wid, /* output width */ i; char buf[BMAX]; /* I/O buffer per 1 line*/ /* Arguments check( none, width or width filename ) */ switch( argc ) { case 1: ipt = stdin; wid = WIDTH; break; case 2: ipt = stdin; wid = atoi( argv[1] ); break; case 3: ipt = fopen(argv[2], "r"); if( ipt == NULL ) erprt(argv[0],"input file error"); break; default: erprt(argv[0],"[ width [file name] ]"); break; } if( wid < 3 || wid > BMAX ) erprt(argv[0],"range check. width"); for(;;){ if( fgets(buf, BMAX, ipt ) == NULL ) break; len = strlen(buf); if( wid > len ) { mgn = (wid - len ) / 2; for(i=0;i