BSD 2 development
[unix-history] / src / getNAME.c
CommitLineData
ffcdbf5b
BJ
1/* Copyright (c) 1979 Regents of the University of California */
2#include <retrofit.h>
3#include <stdio.h>
4
5main(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
16getfrom(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
68trimln(cp)
69 register char *cp;
70{
71
72 while (*cp)
73 cp++;
74 if (*--cp == '\n')
75 *cp = 0;
76}