BSD 4 release
[unix-history] / usr / src / cmd / refer / deliv1.c
CommitLineData
aaa7ced1
BJ
1# include "stdio.h"
2main(argc,argv)
3 char *argv[];
4{
5/* goes from file:begin,l to actual characters */
6char line[750], *p, name[100];
7FILE *fa NULL;
8long lp;
9int len;
10
11if (argc>1 && argv[1] && argv[1][0])
12 chdir (argv[1]);
13name[0]="";
14while (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}