Commit | Line | Data |
---|---|---|
ffcdbf5b BJ |
1 | /* Copyright (c) 1979 Regents of the University of California */ |
2 | #include <retrofit.h> | |
3 | #include <stdio.h> | |
4 | ||
5 | main(argc, argv) | |
6 | int argc; | |
7 | char *argv[]; | |
8 | { | |
9 | ||
10 | argc--, argv++; | |
11 | while (argc > 0) | |
12 | getfrom(*argv++), argc--; | |
13 | exit(0); | |
14 | } | |
15 | ||
16 | getfrom(name) | |
17 | char *name; | |
18 | { | |
19 | char headbuf[BUFSIZ]; | |
20 | char linbuf[BUFSIZ]; | |
21 | register char *cp; | |
22 | int i = 0; | |
23 | ||
24 | if (freopen(name, "r", stdin) == 0) { | |
25 | perror(name); | |
26 | exit(1); | |
27 | } | |
28 | for (;;) { | |
29 | if (fgets(headbuf, sizeof headbuf, stdin) == NULL) | |
30 | return; | |
31 | if (headbuf[0] != '.') | |
32 | continue; | |
33 | if (headbuf[1] == 'T' && headbuf[2] == 'H') | |
34 | break; | |
35 | if (headbuf[1] == 't' && headbuf[2] == 'h') | |
36 | break; | |
37 | } | |
38 | for (;;) { | |
39 | if (fgets(linbuf, sizeof linbuf, stdin) == NULL) | |
40 | return; | |
41 | if (linbuf[0] != '.') | |
42 | continue; | |
43 | if (linbuf[1] == 'S' && linbuf[2] == 'H') | |
44 | break; | |
45 | if (linbuf[1] == 's' && linbuf[2] == 'h') | |
46 | break; | |
47 | } | |
48 | trimln(headbuf); | |
49 | printf("%s\t", headbuf); | |
50 | for (;;) { | |
51 | if (fgets(linbuf, sizeof linbuf, stdin) == NULL) | |
52 | break; | |
53 | if (linbuf[0] == '.') { | |
54 | if (linbuf[1] == 'S' && linbuf[2] == 'H') | |
55 | break; | |
56 | if (linbuf[1] == 's' && linbuf[2] == 'h') | |
57 | break; | |
58 | } | |
59 | trimln(linbuf); | |
60 | if (i != 0) | |
61 | printf(" "); | |
62 | i++; | |
63 | printf("%s", linbuf); | |
64 | } | |
65 | printf("\n"); | |
66 | } | |
67 | ||
68 | trimln(cp) | |
69 | register char *cp; | |
70 | { | |
71 | ||
72 | while (*cp) | |
73 | cp++; | |
74 | if (*--cp == '\n') | |
75 | *cp = 0; | |
76 | } |