summaryrefslogtreecommitdiff
path: root/web/funnelAC/fwACsrc/help.h
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /web/funnelAC/fwACsrc/help.h
Initial commit
Diffstat (limited to 'web/funnelAC/fwACsrc/help.h')
-rw-r--r--web/funnelAC/fwACsrc/help.h164
1 files changed, 164 insertions, 0 deletions
diff --git a/web/funnelAC/fwACsrc/help.h b/web/funnelAC/fwACsrc/help.h
new file mode 100644
index 0000000000..d51690f8e3
--- /dev/null
+++ b/web/funnelAC/fwACsrc/help.h
@@ -0,0 +1,164 @@
+/*##############################################################################
+
+FUNNNELWEB COPYRIGHT
+====================
+FunnelWeb is a literate-programming macro preprocessor.
+
+Copyright (C) 1992 Ross N. Williams.
+
+ Ross N. Williams
+ ross@spam.adelaide.edu.au
+ 16 Lerwick Avenue, Hazelwood Park 5066, Australia.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of Version 2 of the GNU General Public License as
+published by the Free Software Foundation.
+
+This program is distributed WITHOUT ANY WARRANTY; without even the implied
+warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+See Version 2 of the GNU General Public License for more details.
+
+You should have received a copy of Version 2 of the GNU General Public
+License along with this program. If not, you can FTP the license from
+prep.ai.mit.edu/pub/gnu/COPYING-2 or write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Section 2a of the license requires that all changes to this file be
+recorded prominently in this file. Please record all changes here.
+
+Programmers:
+ RNW Ross N. Williams ross@spam.adelaide.edu.au
+ ABC Anthony B. Coates coates@physics.uq.edu.au
+
+Changes:
+ 07-May-1992 RNW Program prepared for release under GNU GPL V2.
+ 16-Sep-1993 ABC Changed all constants *_MAX to *_FWMAX to avoid
+ conflict with some standard UNIX constants.
+
+##############################################################################*/
+
+
+/******************************************************************************/
+/* HELP.H */
+/******************************************************************************/
+/* */
+/* HELP PACKAGE */
+/* ============ */
+/* As I came closer and closer to completing the release version of */
+/* FunnelWeb, I noticed that the online help was a bit of a mess. I had */
+/* random commands and command line options here and there to provide bits of */
+/* information. After a close look and some thought, I decided to centralize */
+/* all of FunnelWeb's help messages into one module, and provide a clean and */
+/* consistent interface to the help messages, both in the command line, and */
+/* in interactive mode. */
+/* */
+/* The result is that all of the help messages have been moved to */
+/* this module. Each help message has a name consisting of a string. One */
+/* particular message has the name "MENU" and is the root help message (the */
+/* "menu message"). It contains a list of all the help messages available and */
+/* their names. */
+/* */
+/* The command line connects to help by providing a single command line */
+/* option called +Hx which has the effect of displaying the help message */
+/* called x. The default is -Hmenu. The "-" means that help is not invoked by */
+/* default, but that if the user specifies +H, the menu message will be */
+/* printed. If the user specifies (say) +Hsloth, message SLOTH will be */
+/* displayed. The menu message is printed if the user invokes FunnelWeb with */
+/* no actions. The +H option is classified as an action option. */
+/* */
+/* Interactive mode connects to help through the HELP command. In the spirit */
+/* of the command line interface, if no argument is given, the menu message */
+/* is displayed. If an argument is given, the specified message is written */
+/* out. */
+/* */
+/* This module contributes two things to this process: */
+/* 1) Provides a mapping from message names to messages. */
+/* 2) Acts as a repository for the messages themselves. */
+/* */
+/******************************************************************************/
+
+/* Ensure that the body of this header file is included at most once. */
+#ifndef DONE_HELP
+#define DONE_HELP
+
+/******************************************************************************/
+
+#include "style.h"
+
+/******************************************************************************/
+
+/* Place a bound on help name length, and define an array type to hold them. */
+#define HL_NMLEN 20
+typedef char hn_t[HL_NMLEN+1];
+
+/******************************************************************************/
+
+/* Each of the messages has a unique symbol and number. The reason for */
+/* defining these symbols instead of just using the message names in the code */
+/* is that doing it this way allows us to change the exact message names */
+/* without having to track down all their occurences in the code, or getting */
+/* nasty surprises later down the track at run time (the compiler will tell */
+/* you in a call containing HL_SLT that the symbol doesn't exist, but it */
+/* won't complain about a string argument that just happens not to be the */
+/* name of a message anymore). */
+
+/* HL_ERR is the non-existent message. */
+#define HL_ERR 0
+
+/* HL_MEN - Help messages. */
+/* HL_INT - Introduction to FunnelWeb. */
+/* HL_OPT - Command line options. */
+/* HL_DOP - Option defaults. */
+/* HL_COM - Interactive commands. */
+/* HL_DOC - Documentation. */
+/* HL_REG - Registration. */
+/* HL_LIC - The GNU License. */
+/* HL_COP - Copyright notice. */
+/* HL_NOW - No Warranty notice. */
+/* HL_DIS - Distribution notice. */
+/* HL_ACK - Acknowledgements. */
+/* HL_VER - Versions. */
+/* HL_SUP - Support. */
+/* HL_MOD - Modifications. */
+#define HL_MEN 1
+#define HL_INT 2
+#define HL_OPT 3
+#define HL_DOP 4
+#define HL_COM 5
+#define HL_DOC 6
+#define HL_REG 7
+#define HL_GNU 8
+#define HL_COP 9
+#define HL_NOW 10
+#define HL_DIS 11
+#define HL_ACK 12
+#define HL_VER 13
+#define HL_SUP 14
+#define HL_MOD 15
+
+/* The following symbol does not represent a message. It is the number of */
+/* messages. This is useful for range checking and possibly in for loops. */
+#define HL_FWMAX 15
+
+/******************************************************************************/
+
+EXPORT uword hel_num P_((char *));
+/* Accepts a character string that is supposed to be the name of a message */
+/* and returns the number of the message, or HL_ERR if the string does not */
+/* correspond to any defined message. A match will occur if the argument */
+/* string is the same (with case independent matching) as the prefix (of */
+/* corresponding length) of exactly one message name. */
+
+EXPORT void hel_wri P_((void (*)(char *),uword));
+/* Accepts a message number and writes the message using the function */
+/* provided in the first argument. Bombs the program if the message number in */
+/* the second argument is not in the range [1,HL_FWMAX]. */
+
+/******************************************************************************/
+
+/* For #ifndef preventing multiple inclusion of the body of this header file. */
+#endif
+
+/******************************************************************************/
+/* End of HELP.H */
+/******************************************************************************/