11/3/71                                                  FORM (I)





NAME            form -- form letter generator



SYNOPSIS        form proto arg  ...
                              1


DESCRIPTION     form generates a form letter from a prototype

                letter, an associative memory, arguments and in a

                special case, the current date.



                If form is invoked with the argument x, the fol-

                lowing files come into play:



                  x.f prototype input

                  x.r form letter output

                  x.am associative memory

                  form.am associative memory if x.am not found.



                Basically, form is a copy process from the file

                x.f to the file x.r.  If an element of the form

                \n (where n is a digit from 1 to 9) is encoun-

                tered, the nth argument is inserted in its place,

                and that argument is then rescanned.  If \0 is

                encountered, the current date is inserted.  If

                the desired argument has not been given, a mes-

                sage of the form "\n: " is typed.  The response

                typed in then is used for that argument.



                If an element of the form [name] is encountered,

                the name is looked up in the associative memory.

                If it is found, the contents of the memory under

                this name replaces the original element (again

                rescanned).  If the name is not found, a message

                of the form "name: " is typed.  The response

                typed in is used for that element.  If the asso-

                ciative memory is writable, the response is en-

                tered in the memory under the name.  Thus the

                next search for that name will succeed without

                interaction.



                In both of the above cases, the response is typed

                in by entering arbitrary text terminated by two

                new lines.  Only the first of the two new lines

                is passed with the text.  The process is in-

                stantly terminated if an end of file is encoun-

                tered anywhere except in the associative memory.



FILES           x.f     input file

                x.r     output file

                x.am    associative memory

                form.am associative memory



SEE ALSO        type



DIAGNOSTICS     "settup error" when the appropriate files cannot

                be located or created.



BUGS            "settup" is misspelled.



OWNER           rhm, ken