diff options
-rw-r--r-- | libexec/Makefile | 4 | ||||
-rw-r--r-- | libexec/getNAME/Makefile | 7 | ||||
-rw-r--r-- | libexec/getNAME/getNAME.8 | 90 | ||||
-rw-r--r-- | libexec/getNAME/getNAME.c | 342 |
4 files changed, 2 insertions, 441 deletions
diff --git a/libexec/Makefile b/libexec/Makefile index fd77323d4ff..91a81e0ad32 100644 --- a/libexec/Makefile +++ b/libexec/Makefile @@ -1,9 +1,9 @@ # from: @(#)Makefile 5.7 (Berkeley) 4/1/91 -# $OpenBSD: Makefile,v 1.45 2011/04/17 21:26:38 schwarze Exp $ +# $OpenBSD: Makefile,v 1.46 2011/09/19 06:47:49 okan Exp $ .include <bsd.own.mk> -SUBDIR= comsat fingerd ftpd getNAME getty identd lockspool \ +SUBDIR= comsat fingerd ftpd getty identd lockspool \ mail.local makewhatis rpc.rquotad rpc.rstatd rpc.rusersd \ rpc.rwalld rpc.sprayd security spamd spamlogd spamd-setup rshd \ talkd tcpd tftp-proxy tftpd uucpd diff --git a/libexec/getNAME/Makefile b/libexec/getNAME/Makefile deleted file mode 100644 index a85e02a7041..00000000000 --- a/libexec/getNAME/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $OpenBSD: Makefile,v 1.2 1997/11/13 04:15:27 millert Exp $ -# from: @(#)Makefile 8.1 (Berkeley) 6/4/93 - -PROG= getNAME -MAN= getNAME.8 - -.include <bsd.prog.mk> diff --git a/libexec/getNAME/getNAME.8 b/libexec/getNAME/getNAME.8 deleted file mode 100644 index 6b1f5d64c0f..00000000000 --- a/libexec/getNAME/getNAME.8 +++ /dev/null @@ -1,90 +0,0 @@ -.\" $OpenBSD: getNAME.8,v 1.12 2007/05/31 19:19:39 jmc Exp $ -.\" $NetBSD: getNAME.8,v 1.2.2.1 1997/11/10 19:54:39 thorpej Exp $ -.\" -.\" Copyright (c) 1997 Matthew R. Green -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. The name of the author may not be used to endorse or promote products -.\" derived from this software without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd $Mdocdate: May 31 2007 $ -.Dt GETNAME 8 -.Os -.Sh NAME -.Nm getNAME -.Nd "get NAME sections from manual source for whatis/apropos data base" -.Sh SYNOPSIS -.Nm getNAME -.Op Fl itw -.Ar path Op Ar path ... -.Sh DESCRIPTION -The -.Nm -program looks inside manual sources to retrieve the NAME section of -the manual page. -It can be used to create a table of contents, report -the style of manual, or to create an introduction to the manual section. -By default, -.Nm -returns data for use in an -.Xr apropos 1 -database. -.Nm -is designed to be called from -.Xr makewhatis 8 -or other manual grovelling tools, not to be used directly. -.Pp -The options are as follows: -.Bl -tag -width Ds -.It Fl i -Returns information useful in creating an introduction to a manual -section. -See -.Xr intro 1 , -.Xr intro 2 , -etc. for examples. -.It Fl t -Returns information useful for creating a table of contents. -.It Fl w -Determines whether traditional man -.Pq Dq OLD , -new mandoc -.Pq Dq NEW , -or some unknown -.Pq Dq UNKNOWN -format exists. -.El -.Sh SEE ALSO -.Xr apropos 1 , -.Xr man 1 , -.Xr whatis 1 , -.Xr makewhatis 8 -.Sh HISTORY -The -.Nm -command first appeared in -.Bx 2.0 . -.Sh BUGS -It would be nice if -.Nm -could deal with preformatted manuals. diff --git a/libexec/getNAME/getNAME.c b/libexec/getNAME/getNAME.c deleted file mode 100644 index 5238ffc666c..00000000000 --- a/libexec/getNAME/getNAME.c +++ /dev/null @@ -1,342 +0,0 @@ -/* $OpenBSD: getNAME.c,v 1.16 2009/10/27 23:59:31 deraadt Exp $ */ -/* $NetBSD: getNAME.c,v 1.7.2.1 1997/11/10 19:54:46 thorpej Exp $ */ - -/*- - * Copyright (c) 1980, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Get name sections from manual pages. - * -t for building toc - * -i for building intro entries - * -w for querying type of manual source - * other apropos database - */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <libgen.h> - -int tocrc; -int intro; -int typeflag; - -void doname(char *); -void dorefname(char *); -void getfrom(char *); -void split(char *, char *); -void trimln(char *); -__dead void usage(void); -int main(int, char *[]); - -int -main(int argc, char *argv[]) -{ - int ch; - - while ((ch = getopt(argc, argv, "itw")) != -1) - switch (ch) { - case 'i': - intro = 1; - break; - case 't': - tocrc = 1; - break; - case 'w': - typeflag = 1; - break; - case '?': - default: - usage(); - } - argc -= optind; - argv += optind; - - if (!*argv) - usage(); - - for (; *argv; ++argv) - getfrom(*argv); - exit(0); -} - -void -getfrom(char *pathname) -{ - int i = 0; - char *name, *loc, *s, *t; - char headbuf[BUFSIZ]; - char linbuf[BUFSIZ]; - char savebuf[BUFSIZ]; - - if (freopen(pathname, "r", stdin) == 0) { - perror(pathname); - return; - } - name = basename(pathname); - for (;;) { - if (fgets(headbuf, sizeof(headbuf), stdin) == NULL) { - if (typeflag) - printf("%-60s UNKNOWN\n", pathname); - return; - } - if (headbuf[0] != '.') - continue; - if ((headbuf[1] == 'T' && headbuf[2] == 'H') || - (headbuf[1] == 't' && headbuf[2] == 'h')) - break; - if (headbuf[1] == 'D' && headbuf[2] == 't') - goto newman; - } - if (typeflag) { - printf("%-60s OLD\n", pathname); - return; - } - 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) - doname(name); - linbuf[0] = '\0'; - for (;;) { - if (fgets(headbuf, sizeof(headbuf), stdin) == NULL) - break; - if (headbuf[0] == '.') { - if (headbuf[1] == 'S' && headbuf[2] == 'H') - break; - if (headbuf[1] == 's' && headbuf[2] == 'h') - break; - } - if (i != 0) - strlcat(linbuf, " ", sizeof(linbuf)); - i++; - trimln(headbuf); - strlcat(linbuf, headbuf, sizeof(linbuf)); - /* change the \- into (N) - */ - if ((s = strstr(linbuf, "\\-")) != NULL) { - strlcpy(savebuf, s+1, sizeof savebuf); - if ((t = strchr(name, '.')) != NULL) { - t++; - *s++ = '('; - while (*t) - *s++ = *t++; - *s++ = ')'; - *s++ = ' '; - *s++ = '\0'; - } - strlcat(linbuf, savebuf, sizeof(linbuf)); - } - } - if (intro) - split(linbuf, name); - else - printf("%s\n", linbuf); - return; - -newman: - if (typeflag) { - printf("%-60s NEW\n", pathname); - return; - } - for (;;) { - if (fgets(linbuf, sizeof(linbuf), stdin) == NULL) - return; - if (linbuf[0] != '.') - continue; - if (linbuf[1] == 'S' && linbuf[2] == 'h') - break; - } - trimln(headbuf); - if (tocrc) - doname(name); - linbuf[0] = '\0'; - for (;;) { - if (fgets(headbuf, sizeof(headbuf), stdin) == NULL) - break; - if (headbuf[0] == '.') { - if (headbuf[1] == 'S' && headbuf[2] == 'h') - break; - } - if (i != 0) - strlcat(linbuf, " ", sizeof(linbuf)); - i++; - trimln(headbuf); - for (loc = strchr(headbuf, ' '); loc; loc = strchr(loc, ' ')) - if (loc[1] == ',') - memmove(loc, &loc[1], strlen(&loc[1])+1); - else - loc++; - if (headbuf[0] != '.') { - strlcat(linbuf, headbuf, sizeof(linbuf)); - } else { - /* - * Get rid of quotes in macros. - */ - for (loc = strchr(&headbuf[4], '"'); loc; ) { - memmove(loc, &loc[1], strlen(&loc[1])+1); - loc = strchr(loc, '"'); - } - /* - * Handle cross references - */ - if (headbuf[1] == 'X' && headbuf[2] == 'r') { - for (loc = &headbuf[4]; *loc != ' '; loc++) - continue; - loc[0] = '('; - loc[2] = ')'; - loc[3] = '\0'; - } - - /* - * Put dash between names and description. - * Put section and dash between names and description. - */ - if (headbuf[1] == 'N' && headbuf[2] == 'd') { - if ((t = strchr(name, '.')) != NULL) { - char *str; - - if (asprintf(&str, "(%s)", t+1) == -1) - return; - strlcat(linbuf, str, sizeof(linbuf)); - free(str); - } - strlcat(linbuf, "- ", sizeof(linbuf)); - } - /* - * Skip over macro names. - */ - strlcat(linbuf, &headbuf[4], sizeof(linbuf)); - } - } - if (intro) - split(linbuf, name); - else - printf("%s\n", linbuf); -} - -void -trimln(char *cp) -{ - - while (*cp) - cp++; - if (*--cp == '\n') - *cp = 0; -} - -void -doname(char *name) -{ - 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(' '); -} - -void -split(char *line, char *name) -{ - char *cp, *dp; - char *sp, *sep; - - cp = strchr(line, '-'); - if (cp == 0) - return; - sp = cp + 1; - for (--cp; *cp == ' ' || *cp == '\t' || *cp == '\\'; cp--) - ; - *++cp = '\0'; - while (*sp && (*sp == ' ' || *sp == '\t')) - sp++; - for (sep = "", dp = line; dp && *dp; dp = cp, sep = "\n") { - cp = strchr(dp, ','); - if (cp) { - char *tp; - - for (tp = cp - 1; *tp == ' ' || *tp == '\t'; tp--) - ; - *++tp = '\0'; - for (++cp; *cp == ' ' || *cp == '\t'; cp++) - ; - } - printf("%s%s\t", sep, dp); - dorefname(name); - printf("\t%s", sp); - } -} - -void -dorefname(char *name) -{ - 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++); -} - -void -usage(void) -{ - extern char *__progname; - (void)fprintf(stderr, "usage: %s [-itw] file ...\n", __progname); - exit(1); -} |