Commit | Line | Data |
---|---|---|
aaa7ced1 BJ |
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 | } |