HELP(4) HELP(4)
NAME
help - make and control help windows
SYNOPSIS
help/help
Help(1) serves a variety of files for reading, writing, and
controlling its windows. The files are mounted on the
directory /mnt/help and are also unioned into the beginning
of /dev. At the top level of that directory are files cons,
consctl, and mouse, much like those of 8½(1). Help's ver-
sions of these files have restricted utility, however: cons
may be written to but not read and both consctl and mouse
draw an error when opened. When a program is run from
within help, its standard input is connected to /dev/null
and its standard output to /mnt/help/cons. Text written to
cons will appear in help's Errors window. Consctl and mouse
are there to prevent access to the files help is itself
using.
Another file in /mnt/help is index, which holds one line of
text for each help window. Each line has the numeric window
id for the window, a tab, and the tag of the window.
The rest of the files in /mnt/help are directories, one per
window, named by the numeric window id of the corresponding
window. Each directory contains the following files:
body This read-only file contains the text of the body
of the window.
bodyapp Text written to this write-only file is appended to
the body.
bodypos This read-only file contains the starting and end-
ing byte offsets of the selection in the body, for-
matted as two textual numbers in 12-byte blank pad-
ded fields.
bodysel This read-only file contains the selected text in
the body.
tag This read-only file contains the text of the tag of
the window.
tagpos Like bodypos but for the tag.
tagsel Like bodysel but for the tag.
ctl A read of this file returns the textual numeric id
of the window. Messages written to ctl change the
contents of the window. Each message must be con-
tained in a single 9P write message (see read(5))
and must begin with an ASCII letter, possibly an
address, and a newline. An address is one or two
comma-separated positions in the file, either line
numbers or character positions. The address syntax
Page 1 Plan 9 (printed 10/30/25)
HELP(4) HELP(4)
is a subset of that in sam(1). If the message con-
tains text to be added to the window, the text fol-
lows the newline and need not be newline-
terminated. This description mentions only the
upper case versions. The symbol \n stands for a
literal newline:
a\n<text> Append the text to the tag.
A\n<text> Append the text to the body.
d<address>\n Delete the addressed text from the tag.
D<address>\n Delete the addressed text from the body.
i<address>\n<text> Insert the text in the tag at the
addressed location. If the address has
two components, the second is ignored.
I<address>\n<text> Like i, but insert in the body.
u\n Mark the window `not dirty', that is,
remove the Put! string from the tag.
A single directory /mnt/help/new, when accessed, creates a
new window. The easiest way to manage a new window is to
open /mnt/help/new/ctl, which will create it automatically,
and then read the file to retrieve the numeric id. The
other files in the window may then be opened as usual.
EXAMPLE
Create a new window and run date(1) in it.
id = `{cat /mnt/help/new/ctl}
echo 'a
Current time Close!' > /mnt/help/$id/ctl
date > /mnt/help/$id/bodyapp
SEE ALSO
help(1), 8½(4)
Page 2 Plan 9 (printed 10/30/25)