1*48295Sbostic /*-
2*48295Sbostic * %sccs.include.proprietary.c%
3*48295Sbostic */
4*48295Sbostic
512275Stut #ifndef lint
6*48295Sbostic static char sccsid[] = "@(#)deliv1.c 4.2 (Berkeley) 04/18/91";
7*48295Sbostic #endif /* not lint */
812275Stut
912275Stut #include <stdio.h>
1012275Stut
main(argc,argv)1112275Stut main(argc, argv) /* goes from file:begin,l to actual characters */
1212275Stut char *argv[];
1312275Stut {
1412275Stut FILE *fopen(), *fa = NULL;
1512275Stut char line[750], *p, name[100], *strcpy();
1612275Stut long lp;
1712275Stut int len;
1812275Stut
1912275Stut if (argc > 1 && argv[1] && argv[1][0])
2012275Stut chdir(argv[1]);
2112275Stut name[0] = NULL;
2212275Stut while (gets(line))
2312275Stut {
2412275Stut if (line[0] == '$' && line[1] == '$')
2512275Stut {
2612275Stut chdir(line+2);
2712275Stut continue;
2812275Stut }
2912275Stut for (p = line; *p != ':'; p++)
3012275Stut ;
3112275Stut *p++ = 0;
3212275Stut sscanf(p, "%ld,%d", &lp, &len);
3312275Stut if (p == line)
3412275Stut fa = stdin;
3512275Stut else
3612275Stut if (strcmp(name, line) != 0)
3712275Stut {
3812275Stut if (fa != NULL)
3912275Stut fclose(fa);
4012275Stut fa = fopen(line, "r");
4112275Stut if (fa == NULL)
4212275Stut err("Can't open %s", line);
4312275Stut strcpy(name, line);
4412275Stut }
4512275Stut if (fa != NULL)
4612275Stut {
4712275Stut fseek (fa, lp, 0);
4812275Stut fread (line, 1, len, fa);
4912275Stut line[len] = 0;
5012275Stut fputs(line, stdout);
5112275Stut }
5212275Stut }
5312275Stut }
54