home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / refer / deliv1.c next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  727 b   |  46 lines

  1. # include "stdio.h"
  2. main(argc,argv)
  3.     char *argv[];
  4. {
  5. /* goes from file:begin,l to actual characters */
  6. char line[750], *p, name[100];
  7. FILE *fa NULL;
  8. long lp;
  9. int len;
  10.  
  11. if (argc>1 && argv[1] && argv[1][0])
  12.     chdir (argv[1]);
  13. name[0]="";
  14. while (gets(line))
  15.     {
  16.     if (line[0]=='$' && line[1]=='$') 
  17.         {
  18.         chdir(line+2);
  19.         continue;
  20.         }
  21.     for(p=line; *p!= ':'; p++)
  22.         ;
  23.     *p++ = 0;
  24.     sscanf(p, "%ld,%d", &lp, &len);
  25.     if (p==line)
  26.         fa = stdin;
  27.     else
  28.     if (strcmp (name, line) != 0)
  29.         {
  30.         if (fa != NULL)
  31.             fclose(fa);
  32.         fa = fopen(line, "r");
  33.         if (fa == NULL)
  34.             err("Can't open %s", line);
  35.         strcpy(name, line);
  36.         }
  37.     if (fa != NULL)
  38.         {
  39.         fseek (fa, lp, 0);
  40.         fread (line, 1, len, fa);
  41.         line[len] = 0;
  42.         fputs(line, stdout);
  43.         }
  44.     }
  45. }
  46.