From add17efb94015ebdb43c2affaba330b86a736bb9 Mon Sep 17 00:00:00 2001 From: Bill Joy Date: Thu, 2 Oct 1980 01:26:57 -0800 Subject: [PATCH] date and time created 80/10/01 17:26:57 by bill SCCS-vsn: libexec/getNAME/getNAME.c 4.1 --- usr/src/libexec/getNAME/getNAME.c | 99 +++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 usr/src/libexec/getNAME/getNAME.c diff --git a/usr/src/libexec/getNAME/getNAME.c b/usr/src/libexec/getNAME/getNAME.c new file mode 100644 index 0000000000..a6c8dd02cd --- /dev/null +++ b/usr/src/libexec/getNAME/getNAME.c @@ -0,0 +1,99 @@ +static char *sccsid = "@(#)getNAME.c 4.1 (Berkeley) %G%"; +#include + +int tocrc; + +main(argc, argv) + int argc; + char *argv[]; +{ + + argc--, argv++; + if (!strcmp(argv[0], "-t")) + argc--, argv++, tocrc++; + while (argc > 0) + getfrom(*argv++), argc--; + exit(0); +} + +getfrom(name) + char *name; +{ + char headbuf[BUFSIZ]; + char linbuf[BUFSIZ]; + register char *cp; + int i = 0; + + if (freopen(name, "r", stdin) == 0) { + perror(name); + exit(1); + } + for (;;) { + if (fgets(headbuf, sizeof headbuf, stdin) == NULL) + return; + if (headbuf[0] != '.') + continue; + if (headbuf[1] == 'T' && headbuf[2] == 'H') + break; + if (headbuf[1] == 't' && headbuf[2] == 'h') + break; + } + for (;;) { + if (fgets(linbuf, sizeof linbuf, stdin) == NULL) + return; + if (linbuf[0] != '.') + continue; + if (linbuf[1] == 'S' && linbuf[2] == 'H') + break; + if (linbuf[1] == 's' && linbuf[2] == 'h') + break; + } + trimln(headbuf); + if (tocrc) { + register char *dp = name, *ep; + +again: + while (*dp && *dp != '.') + putchar(*dp++); + if (*dp) + for (ep = dp+1; *ep; ep++) + if (*ep == '.') { + putchar(*dp++); + goto again; + } + putchar('('); + if (*dp) + dp++; + while (*dp) + putchar (*dp++); + putchar(')'); + putchar(' '); + } + printf("%s\t", headbuf); + for (;;) { + if (fgets(linbuf, sizeof linbuf, stdin) == NULL) + break; + if (linbuf[0] == '.') { + if (linbuf[1] == 'S' && linbuf[2] == 'H') + break; + if (linbuf[1] == 's' && linbuf[2] == 'h') + break; + } + trimln(linbuf); + if (i != 0) + printf(" "); + i++; + printf("%s", linbuf); + } + printf("\n"); +} + +trimln(cp) + register char *cp; +{ + + while (*cp) + cp++; + if (*--cp == '\n') + *cp = 0; +} -- 2.20.1