The LBR$OUTPUT_HELP routine provides a simple, one-call method
to initiate an interactive help session. Help library bookkeeping
functions, such as LBR$INI_CONTROL and LBR$OPEN, are handled
internally. You should not call LBR$INI_CONTROL or LBR$OPEN
before you issue a call to LBR$OUTPUT_HELP.
LBR$OUTPUT_HELP accepts help keys in the same format as LBR$GET_
HELP, with the following qualifications:
o If the keyword HELP is supplied, help text on HELP is output,
followed by a list of HELP subtopics available.
If no help keys are provided or if the line_desc argument is
0, a list of topics available in the root library is output.
o If the line_desc argument contains a list of help keys, then
each key must be separated from its predecessor by a slash
(/) or by one or more spaces.
o The first key can specify a library to replace the main
library as the root library (the first library searched) in
which LBR$OUTPUT_HELP searches for help. A key used for this
purpose must have the form <@filespec>, where filespec is
subject to the same restrictions as the library_name argument.
If the specified library is an enabled user-defined default
library, then filespec can be abbreviated as any unique
substring of that default library's logical name translation.
In default library searches, you can define one or more default
libraries for LBR$OUTPUT_HELP to search for help information not
contained in the root library. Do this by equating logical names
(HLP$LIBRARY, HLP$LIBRARY_1, . . . ,HLP$LIBRARY_999) to the file
specifications of the default help libraries. You can define
these logical names in the process, group, or system logical name
table.
If default library searching is enabled by the flags argument,
LBR$OUTPUT_HELP uses those flags to determine which logical
name tables are enabled and then automatically searches any
user default libraries that have been defined in those logical
name tables. The library search order proceeds as follows: root
library, main library (if specified and different from the root
library), process libraries (if enabled), group libraries (if
enabled), system libraries (if enabled). If the requested help
information is not found in any of these libraries, LBR$OUTPUT_
HELP returns to the root library and issues a "help not found"
message.
To enter an interactive help session (after your initial request
for help has been satisfied), you must set the HLP$M_PROMPT bit
in the flags argument.
You can encounter four different types of prompt in an
interactive help session. Each type represents a different level
in the hierarchy of help available to you.
1. If the root library is the main library and you are not
currently examining HELP for a particular topic, the prompt
Topic? is output.
2. If the root library is a library other than the main library
and if you are not currently examining HELP for a particular
topic, a prompt of the form @<library-spec>Topic? is output.
3. If you are currently examining HELP for a particular topic
(and subtopics), a prompt of the form <keyword...>subtopic? is
output.
4. A combination of 2 and 3.
When you encounter one of these prompt messages, you can respond
in any one of several ways. Each type of response and its effect
on LBR$OUTPUT_HELP in each prompting situation is described in
the following table:
Action in the Current Prompt Environment
Response (Keyed to the prompt in the preceding list)
keyword [ . . . ] (1,2) Search all enabled libraries for these
keys.
(3,4) Search additional help for the current
topic (and subtopic) for these keys.
@filespec (1,2) Same as above, except that the root
[keyword[ . . . ]] library is the library specified by filespec.
If the specified library does not exist, treat
@filespec as a normal key.
(3,4) Same as above; treat @filespec as a
normal key.
? (1,2) Display a list of topics available in
the root library.
(3,4) Display a list of subtopics of the
current topic (and subtopics) for which help
exists.
Carriage Return (1) Exit from LBR$OUTPUT_HELP.
(2) Change root library to main library.
(3,4) Strip the last keyword from a list of
keys defining the current topic (and subtopic)
environment.
Ctrl/Z (1,2,3,4) Exit from LBR$OUTPUT_HELP.