aboutsummaryrefslogtreecommitdiff
path: root/pkg/system/help/help.h
blob: e1ec7070d5f685be6f7fe36b957a6b37627a73e0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Help Definitions.

# Control Structure.  Contains all control parameters.  Pointer to structure
# is passed to Lroff and on by Lroff to the input and output procedures.
# With the exceptions of H_EOF and H_NLINES, the control parameters are
# read only outside the main routine.

define	LEN_CTRLSTRUCT	220
define	SZ_CURPACK	39		# current package
define	SZ_SECNAME	39		# section name, single section mode
define	SZ_PARNAME	39		# parameter name
define	SZ_TEMPLATE	79		# the original modules template
define	SZ_HELPDB	1024		# max chars in helpdb file list

define	H_IN		Memi[$1]	# input file descriptor
define	H_OUT		Memi[$1+1]	# output file descriptor
define	H_OPTION	Memi[$1+2]	# option code (see below)
define	H_TTY		Memi[$1+3]	# TTY device descriptor
define	H_LMARGIN	Memi[$1+4]	# permanent left margin for Lroff
define	H_RMARGIN	Memi[$1+5]	# permanent right margin for Lroff
define	H_RAWIN		Memi[$1+6]	# if YES, do not look at input
define	H_RAWOUT	Memi[$1+7]	# if YES, do not process output
define	H_FILTER_INPUT	Memi[$1+8]	# if YES, filter out part of input
define	H_PAGINATE	Memi[$1+9]	# paginate output?
define	H_MANPAGE	Memi[$1+10]	# manpage style output?
define	H_NLPP		Memi[$1+11]	# number of lines per manual page
define	H_NLINES	Memi[$1+12]	# number of output lines on page
define	H_STATE		Memi[$1+13]	# input state, hinput()
define	H_EOF		Memi[$1+14]	# input should return EOF to Lroff
define	H_QUIT		Memi[$1+15]	# stop program
define	H_LENTL		Memi[$1+16]	# length of the TL template list
define	H_ALLMODULES	Memi[$1+17]	# process all modules matching template
define	H_FORMAT	Memi[$1+18]	# output format type
define	H_SOFLAG	Memi[$1+19]	# standout flags
			# (extra space)
define	H_CURPACK	Memc[P2C($1+20)]	# current package
define	H_SECNAME	Memc[P2C($1+60)]	# section name
define	H_PARNAME	Memc[P2C($1+100)]	# parameter name
define	H_TEMPLATE	Memc[P2C($1+140)]	# module name template

# The nomore flag is set whenever the user responds negatively to the more?
# query.  A nomore at the beginning of a help block or two nomores in a row
# stop the program.

define	NOMORE		(-1)

# Option codes.  Max_options is used by the get_option keyword recognizer,
# which handles abbreviations.

define	O_HELP		1		# print full help block
define	O_SOURCE	2		# print source code
define	O_SYSDOC	3		# print technical system documentation
define	O_ALLDOC	4		# print all documentation (!source)
define	O_FILES		5		# print file names
define	O_SUMMARY	6		# summarize contents of help file
define	O_DIR		7		# print directory of help blocks
define	O_REFERENCES	8		# keyword search output format
define	MAX_OPTIONS	8

define	O_PARAM		7		# output text for single parameter
define	O_SECTION	8		# output text for single section
define	O_MENU		9		# print package menu

# Type codes for filenames.  Passed to hd_getname to fetch the module name
# or a filename from a help directory.

define	TY_MODNAME	0
define	TY_HLP		1
define	TY_SYS		2
define	TY_SRC		3
define	TY_PKG		4
define	TY_MEN		5
define	TY_UNKNOWN	6

# Format codes.  This is used to determine whether we output formatted
# text, HTML or Postscript.

define	HF_DEVICES	"|terminal|text|gui|html|postscript|ps|"
define	HF_TERMINAL	1
define	HF_TEXT		2
define	HF_GUI		3
define	HF_HTML		4
define	HF_POSTSCRIPT	5
define	HF_PS		6

# Help block header structure.  A ".help" directive is decoded into this
# structure.  The line number counter should be zeroed when the structure
# is allocated.

define	LEN_HBSTRUCT	1124
define	MAX_KEYS	50
define	SZ_TYPESTR	9		# help block type string
define	SZ_KEY		19		# max size of a key
define	SZ_SECTION	39		# section label, i.e., (Mar84)
define	SZ_TITLE	63		# block title

define	HB_TYPE		Memi[$1]	# type of block (default TY_HLP)
define	HB_LINENO	Memi[$1+1]	# line number within file
define	HB_NKEYS	Memi[$1+2]	# number of keys
define	HB_TYPESTR	Memc[P2C($1+10)]		# blk type string
define	HB_KEY		Memc[P2C($1+20+($2-1)*20)]	# keys
define	HB_SECTION	Memc[P2C($1+1020)]		# section label
define	HB_TITLE	Memc[P2C($1+1060)]		# block title

# Pagination Control Codes.  The pagination directives BP, TP, KS, and KE
# are ignored when output is directed to the terminal, but are important
# when output is piped to the printer.  When the line input routine HINPUT sees
# one of these directives in the input it places a control code in the
# data stream read by Lroff.  Lroff passes control codes on to the output,
# i.e., to HOUTPUT, where pagination takes place.

define	BREAK_PAGE	1		# .bp
define	TEST_PAGE	2		# .tp n
define	START_KEEP	3		# .ks
define	END_KEEP	4		# .ke