home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
300-399
/
ff304.lzh
/
PageCnt
/
pagecnt.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-01-10
|
1KB
|
86 lines
/*
* pagecnt : count the number of form feeds in a file.
* by Joel Swank November 1988
* Version 1.0
*/
#include <stdio.h>
#include <fcntl.h>
#include <exec/types.h>
#define STDIN 0 /* file descriptor for stdin */
FILE *fdopen();
int fileflag = FALSE; /* detect no files - use stdin */
main(argc,argv)
int argc;
char *argv[];
{
register FILE *filep ;
register cnt ;
/* get command line filenames */
for (cnt=1; cnt < argc; cnt++)
{ if (*argv[cnt] != '-')
{
if ((filep = fopen(argv[cnt], "r")) == NULL)
fatal("can't open %s", argv[cnt]) ;
printf("FILE: %s ",argv[cnt]);
dofile(filep);
fclose(filep);
fileflag = TRUE;
}
}
if (!fileflag) /* if no files given, use stdin */
{
filep = fdopen(STDIN, "r");
dofile(filep);
fclose(filep);
}
exit(0);
}
/*
* process open file via stream pointer
*/
dofile(filep)
FILE *filep;
{
int onemore, maxsize =0, fcount = 0, linecnt =0;
char chr;
while ((chr = getc(filep)) != EOF)
{
if (chr == '\f')
{
fcount++;
onemore =0;
continue;
}
else onemore =1;
if (chr == '\n')
{
if (linecnt > maxsize) maxsize = linecnt;
linecnt = 0;
}
else linecnt++;
}
printf("%d Pages, Longest line is %d\n",fcount+onemore, maxsize);
}
/*
* fatal - print standard error msg and halt process
*/
fatal(ptrn, data1, data2)
register char *ptrn, *data1, *data2 ;
{
printf("ERROR: ");
printf(ptrn, data1, data2) ;
putchar('\n');
exit(1);
}