|
|
1.1 root 1: .th FORM I 6/15/72
2: .sh NAME
3: form \*- form letter generator
4: .sh SYNOPSIS
5: .bd form
6: proto arg ...
7: .sh DESCRIPTION
8: .it Form
9: generates a form letter from a prototype
10: letter, an associative memory, arguments and in a special case, the
11: current date.
12: .s3
13: If
14: .it form
15: is invoked with the
16: .it proto
17: argument \fIx\fR, the associative memory is
18: searched for an entry with name \fIx\fR and the contents filed under that name are
19: used as the prototype. If the search fails, the message `[\fIx\fR]:' is typed on
20: the console and whatever text is typed in from the console, terminated by
21: two new lines, is used as the prototype.
22: If the prototype argument is missing, `{letter}' is assumed.
23: .s3
24: Basically,
25: .it form
26: is a copy process from the prototype to the output file.
27: If an element of the form [\fIn\fR] (where \fIn\fR is a digit from 1 to 9) is encountered,
28: the \fIn\fR-th argument is inserted in its place, and that argument is then
29: rescanned. If [0] is encountered, the current date is inserted. If
30: the desired argument has not been given, a message of the form `[\fIn\fR]:' is
31: typed. The response typed in then is used for that argument.
32: .s3
33: If an element of the form [\fIname\fR] or {\fIname\fR} is encountered, the \fIname\fR is looked up in the
34: associative memory. If it is found, the contents of the memory under this
35: \fIname\fR replaces the original element (again rescanned). If
36: the \fIname\fR is not found, a message of the form `[\fIname\fR]:' is typed.
37: The response typed in is used for that element. The response is
38: entered in the memory under the name if the name is enclosed in [ ].
39: The response is not entered in the memory but is remembered for the
40: duration of the letter if the name is enclosed in {}.
41: .s3
42: In both of the above cases, the response is typed in by entering
43: arbitrary text terminated by two new lines. Only the first of the
44: two new lines is passed with the text.
45: .s3
46: If one of the special characters [{]}\\ is preceded by
47: a \\, it loses its special character.
48: .s3
49: If a file named `forma' already exists in the user's directory, `formb' is
50: used as the output file and so forth to `formz'.
51: .s3
52: The file `form.m' is created if none exists. Because form.m is
53: operated on by the disc allocator, it should only be changed by using
54: .it fed,
55: the form letter editor, or
56: .it form.
57: .s3
58: .sh FILES
59: form.m associative memory
60: .br
61: form? output file (read only)
62: .sh "SEE ALSO"
63: fed(I), type(I), roff(I)
64: .sh BUGS
65: An unbalanced ] or } acts as an end of file but
66: may add a few strange entries to the associative memory.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.