home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Interactive Guide
/
c-cplusplus-interactive-guide.iso
/
c_ref
/
csource3
/
143_01
/
cat.c
< prev
next >
Wrap
Text File
|
1985-11-15
|
2KB
|
77 lines
/*
%CC1 $1.C -X -E5000
%CLINK $1 DIO WILDEXP -S
%DELETE $1.CRL
*/
/*********************************************************************
* CAT *
**********************************************************************
* COPYRIGHT 1983 EUGENE H. MALLORY *
*********************************************************************/
#include "BDSCIO.H"
#include "DIO.H"
main(argc,argv)
int argc;
char **argv;
BEGIN
int fid,c;
char fcb[BUFSIZ],doneflag,fname[MAXLINE];
dioinit(&argc,argv); /* INITIALIZE DIO BUFFERS AND FLAGS */
wildexp(&argc,&argv);
if (argc == 1 && !DIOIN)
BEGIN
while ((c=getchar()) != EOF) putchar(c);
goto done;
END
while (TRUE)
BEGIN
doneflag = TRUE;
if (--argc > 0)
BEGIN
strcpy(fname,*++argv);
doneflag = FALSE;
END
else if (DIOIN)
BEGIN
doneflag = getstring(fname);
if (strlen(fname) == 0) goto done;
fname[strlen(fname)-1] = 0;
END
if (doneflag) goto done;
if (strlen(fname) == 0) goto newfile;
fid = fopen(fname,fcb);
if (fid <= 0)
BEGIN
typef("Unable to open file \'%s\'.\n",fname);
goto newfile;
END
while (TRUE)
BEGIN
c = getc(fcb);
if (c == '\r')
BEGIN
c = getc(fcb);
if (c != '\n')
BEGIN
ungetc(c,fcb);
c = '\r';
END
END
if (c == -1) goto newfile;
if (c == CPMEOF) goto newfile;
putchar(c);
END
newfile:
fclose(fcb);
END
done:
dioflush();
exit(0);
END