|
|
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.