home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_100 / 143_01 / cat.c < prev    next >
Text File  |  1985-11-14  |  2KB  |  77 lines

  1. /*
  2. %CC1 $1.C -X -E5000
  3. %CLINK $1 DIO WILDEXP -S
  4. %DELETE $1.CRL 
  5. */
  6. /*********************************************************************
  7. *                               CAT                                  *
  8. **********************************************************************
  9. *                  COPYRIGHT 1983 EUGENE H. MALLORY                  *
  10. *********************************************************************/
  11. #include "BDSCIO.H"
  12. #include "DIO.H"
  13.  
  14. main(argc,argv)
  15.  
  16. int argc;
  17. char **argv;
  18.  
  19. BEGIN
  20.  
  21.     int fid,c;
  22.     char fcb[BUFSIZ],doneflag,fname[MAXLINE];
  23.  
  24.     dioinit(&argc,argv); /* INITIALIZE DIO BUFFERS AND FLAGS */
  25.     wildexp(&argc,&argv);
  26.     
  27.     if (argc == 1 && !DIOIN)
  28.     BEGIN
  29.         while ((c=getchar()) != EOF) putchar(c);  
  30.         goto done;
  31.     END
  32.     while (TRUE)
  33.     BEGIN
  34.         doneflag = TRUE;
  35.         if (--argc > 0)
  36.         BEGIN
  37.             strcpy(fname,*++argv);
  38.             doneflag = FALSE;
  39.         END
  40.         else if (DIOIN) 
  41.         BEGIN
  42.             doneflag = getstring(fname);
  43.             if (strlen(fname) == 0) goto done;
  44.             fname[strlen(fname)-1] = 0;
  45.         END
  46.         if (doneflag) goto done;
  47.         if (strlen(fname) == 0) goto newfile;
  48.         fid = fopen(fname,fcb);
  49.         if (fid <= 0)
  50.         BEGIN
  51.             typef("Unable to open file \'%s\'.\n",fname);
  52.             goto newfile;
  53.         END
  54.     while (TRUE)
  55.         BEGIN
  56.         c = getc(fcb);
  57.         if (c == '\r')
  58.             BEGIN
  59.             c = getc(fcb);
  60.             if (c != '\n')
  61.                 BEGIN
  62.                 ungetc(c,fcb);
  63.                 c = '\r';
  64.                 END
  65.             END
  66.         if (c == -1) goto newfile;
  67.         if (c == CPMEOF) goto newfile;
  68.         putchar(c);
  69.         END
  70. newfile:
  71.     fclose(fcb);
  72.     END
  73. done:
  74.     dioflush();
  75.     exit(0);
  76. END
  77.