summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2002-06-30 23:31:21 +0000
committerjmallett <jmallett@FreeBSD.org>2002-06-30 23:31:21 +0000
commita1210c52bd7f78f806bc93c28162ae1afb108ba2 (patch)
treecefea8567ac81012f102845fbf26fd3fa425fa2a /usr.bin
parentcceeb62b51c6090d800c2339edaedebb39780ff2 (diff)
downloadFreeBSD-src-a1210c52bd7f78f806bc93c28162ae1afb108ba2.zip
FreeBSD-src-a1210c52bd7f78f806bc93c28162ae1afb108ba2.tar.gz
Nuke src/usr.bin/help in favor of projects/sccs/help (repo copied).
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/help/Makefile6
-rw-r--r--usr.bin/help/help.c168
2 files changed, 0 insertions, 174 deletions
diff --git a/usr.bin/help/Makefile b/usr.bin/help/Makefile
deleted file mode 100644
index 67b34e9..0000000
--- a/usr.bin/help/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# $FreeBSD$
-
-PROG= help
-NOMAN= noman
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/help/help.c b/usr.bin/help/help.c
deleted file mode 100644
index 05667ce..0000000
--- a/usr.bin/help/help.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Author: J. Mallett <jmallett@FreeBSD.org>
- * Date: May 22, 2002
- * Program: help
- * Description:
- * Displays help from files in the format used by SCCS.
- *
- * This file is in the public domain.
- *
- * $FreeBSD$
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ctype.h>
-#include <err.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-/*
- * Base path to the help files.
- */
-#define _PATH_LIBHELP "/usr/lib/help"
-
-/*
- * The file we check if all else fails.
- */
-#define _PATH_DEFAULT _PATH_LIBHELP "/default"
-
-/*
- * The file we check for command help.
- */
-#define _PATH_COMMANDS _PATH_LIBHELP "/cmds"
-
-int help(const char *);
-
-int
-main(int argc, char *argv[])
-{
- char *key;
- int i, rv;
-
- rv = 0;
-
- if (argc == 1) {
- size_t len;
-
- (void)printf("Enter the message number or SCCS command name: ");
- if ((key = fgetln(stdin, &len)) == NULL) {
- err(1, NULL);
- }
- key[len - 1] = '\0';
- return help(key);
- }
- argc--;
- argv++;
-
- for (i = 0; i < argc; i++) {
- /*
- * If no error occurred this time, rv becomes 1.
- */
- if (help(argv[i]) == 0) {
- rv = 1;
- }
- }
-
- /*
- * Return 0 if at least one help() worked. Return 1 else.
- */
- return rv ? 0 : 1;
-}
-
-/*
- * Function: help
- * Returns: 0 if no error occurrs, 1 otherwise.
- * Arguments: key -- The key we are looking up help for.
- * Description:
- * Looks up the help for a given key.
- */
-int
-help(const char *key)
-{
- FILE *helpfile;
- char path[PATH_MAX];
- char *keybase, *p;
- const char *keyname, *keynumber;
- int helping, found;
- size_t len, numlen;
-
- found = helping = 0;
-
- keyname = key;
- keybase = strdup(keyname);
- if (keybase == NULL) {
- err(1, NULL);
- }
- p = keybase;
- while (!isnumber(*p) && *p != '\0') {
- ++key;
- ++p;
- }
- keynumber = key;
- key = keyname;
- *p = '\0';
- numlen = strlen(keynumber);
- /*
- * Try the default help file if we have a numeric key.
- * If we have no numeric part of the key, use the command help.
- * Or else, use the non-numeric part of the key.
- */
- if (strlen(keybase) == 0) {
- strlcpy(path, _PATH_DEFAULT, sizeof(path));
- } else if (numlen == 0) {
- keynumber = keybase;
- numlen = strlen(keynumber);
- strlcpy(path, _PATH_COMMANDS, sizeof(path));
- } else {
- snprintf(path, sizeof(path), _PATH_LIBHELP "/%s", keybase);
- }
-
- helpfile = fopen(path, "r");
- if (helpfile == NULL) {
- goto fail;
- }
- while (!feof(helpfile) && (p = fgetln(helpfile, &len)) != NULL) {
- switch (*p) {
- case '*':
- continue;
- case '-':
- if (len < numlen) {
- continue;
- }
- if (strncmp(++p, keynumber, numlen) == 0) {
- found = 1;
- helping = 1;
- printf("\n%s:\n", key);
- } else {
- helping = 0;
- }
- continue;
- default:
- if (helping) {
- p[len - 1] = '\0';
- printf("%s\n", p);
- }
- continue;
- }
- }
- fclose(helpfile);
- if (keybase != NULL) {
- free(keybase);
- }
- if (found) {
- return 0;
- }
-fail:
- if (keybase != NULL) {
- free(keybase);
- }
- printf("Key '%s' not found.\n", key);
- return 1;
-}
OpenPOWER on IntegriCloud