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