CHANGES MADE TO RUNOFF (version S1.4) ------------------------------------- The following list briefly describes all the changes which have been made to DECUS RUNOFF (version M02) to achieve version S1.4. Note that this list will most likely be of interest only to someone who wants to modify the program--the element numbers here correspond to the edit numbers used to mark changes in the code. The file SUMMARY.DOC contains a more organized list of the changes. That list will be more useful to the interested ^&user\& or RUNOFF. The RUNOFF manual has been updated to reflect these changes. Thus, you can refer to it for further details on most of the changes listed here. If you have an older copy of this RUNOFF (M03X, M3.0X, M3.0), you should also read the LOG file. It contains a list of some later changes made to these changes. 1. Changed page header to start on line 1. Extra line put after header. (See also item 40.) 2. Page numbers are now justified against the page width (e.g., as set by a PAGE SIZE command) rather than the local right margin. (See also items 39 and 40.) 3. The number of blank lines output ahead of chapter and appendix headings has been made a variable which can be set at task build, and can be set with a command-line switch (/BL:). The default is currently 7 lines (it was 12). 4. Added ALTERNATING HEADER commands & switch. When enabled by a command-line switch (/AH, defaults to ON) and requested by an ALTERNATING HEADER command (abbreviated to "AH"; defaults to NAH), the page headers on even-numbered pages will be reversed to have the page number on the left and title(s) on the right. The feature is turned off by the command NO ALTERNATING HEADER or /-AH on the command line. [*** This change was superseded by change 46. ***] 5. Made PAGE SIZE defaults available at task build as claimed in the manual. 6. Fixed quoted space so that "# " has the same effect as " #". 7. Put two spaces after "", where is ".", "!", or "?" and is ")", "]", "}", or double quote. 8. Eliminated automatic double space after semicolon. 9. Expanded meaning of "=" character to include specification of hyphenation points to be used instead of those RUNOFF would pick. Then, when activated by the FLAGS HYPHENATE command, one can use "=" to indicate desired hyphenation points as well as to disable completely hyphenation for a word. (See also items 18 and 26.) Changes Made to RUNOFF Page 2 10. Default HEADER type changed to "MIXED". 11. Added "BLANK" header type in which the word "Page" is not output. 12. Added EVEN and ODD commands to force output to an even-numbered or odd-numbered page, respectively. 13. Added NO FLAGS to command table--it was missing. 14. Added ALTERNATING TITLE (AT) and NO ALTERNATING TITLE (NAT, the default) commands. Causes the title to be output right justified on even-numbered pages and the subtitle to be output left justified on odd-numbered pages. Even if invoked, this command has no effect unless ALTERNATING HEADER is in effect (e.g., the effect is disabled by the /-AH switch). [*** See change 46. ***] 15. (a) Fixed bug which caused too many blank lines to be output if a HEADER LEVEL command immediately followed a CHAPTER or APPENDIX command; (b) changed format of header levels 3 up from "... - " to "... -- ". 16. Replaced several constants with defined symbols (internal change only). 17. Changed command scanner to ignore white space between words of command names. Can now type command names with multiple (or no) spaces/tabs between words. (Size of command table significantly reduced.) 18. Modified hyphenation to have words which are already hyphenated (e.g., "even-numbered") broken at the hyphen (and only there or at any other user-specified points) if necessary. (a) No break will occur if there is underlining in the word(s). 19. Added AUTOSUBTITLE [] (AS) command to have HEADER LEVEL commands up to given level (default is 1) automatically set subtitle. Level value of zero disables automatic setting of subtitle (initial setting). 20. Added ability to selectively include or exclude segments of input file based on setting of a "switch". Related commands are: INCLUDE (IN) -- Turns on switch , EXCLUDE (EX) -- Turns off switch , OPTION (OPT) -- Marks start of optional segment , ELSE -- Inverts logic of active option , END OPTION (ENDO) -- Marks end of optional segment . Options can be nested to any depth, with "excluded" options overriding any inclosed "included" options. (Currently up to 32. switches are allowed.) Negative logic applies if a negative option number is supplied. 21. Fixed index creation: (1) entry longer than 52. characters used to overwrite code (now truncated to 50. characters); (2) entry longer Changes Made to RUNOFF Page 3 than 50. characters did not get a page reference; (3) occurrences of entries differing only by case were not handled correctly (".x a" ... ".x A" ... ".x a" used to result in three entries in the index); (4) multiple occurrences of an entry on the same page are only stored once. 22. Made multi-part error messages appear on one line (except for "CAN'T JUSTIFY LINE"). 23. Added RIGHT JUSTIFY [] [;] (RJ) command to force (or next line) against requested column (defaults to right margin). can be a signed value to indicate an offset relative to the right margin. 24. Changed line skipping routine to just set page-pending flag when a page is full, instead of actually starting a new page. This fixes the problem of having a new page started at the end of a chapter or appendix when there is no more text in that section (i.e., the last page is completely full). (a) Corrected page break when SPACING is greater than 1. Eliminated output of blank lines at bottom of pages. 25. Made hyphenation not be disabled when justification is turned off. 26. Made "=" work even if "word" begins with non-alphabetic character. 27. Made several changes to LIST commands: (a) Save vertical spacing and test-page count when nested list begins and restore when it ends; (b) do test page for LIST ELEMENT _a_f_t_e_r skipping lines; (c) [change eliminated by change #63]; (d) default test-page count changed from 2 to 1 [compensates somewhat for change (b)]; (e) fix incorrect indent of first line when text followed command on next line; (f) adjust negative indent for list element numbers greater than 9. 28. Fixed output of index so white space between letter groups is never output at the top of new page. A TEST PAGE is done before the start of each letter group (currently the test count is three). 29. Changed processing of command arguments so that a distinction is correctly made between no numeric argument provided (in which case a default is often used) and an explicit zero value provided. 30. Allow negative arguments to SKIP and BLANK to mean move down to that many lines from the bottom of the page. 31. Made the following commands not permitted when a NOTE is in process: FIRST TITLE, DO INDEX, PRINT INDEX. Made the following commands not permitted when a FOOTNOTE is in process: NUMBER, NO NUMBER, NUMBER APPENDIX, NUMBER CHAPTER. 32. Made PARAGRAPH permissible in footnotes (default arguments are saved/restored). Also, SPACING is now set to the default value (single spacing) within footnotes. Changes Made to RUNOFF Page 4 33. The FOOTNOTE command can now be followed by other commands on the same line. (The manual claimed that if there isn't room on the current page for the requested footnote space, it would be put on the next page. This is not true--the page just ends up being very long. [This is on the list of things to be fixed.]) (See also changes #54, 78 & 80.) 34. Changed the PARAGRAPH command to assume a previous test-page value if none is supplied. (The command used to ignore test page if no value was given.) Also changed the internal sequence so that lines are skipped before the test page is done. 35. Fixed bug in SET TABS which prevented the tab table from being completely filled. Added check of new stops to make sure they are in ascending order. Tabs can now be set relative to existing settings. A TAB STOPS command with no arguments causes the standard tab settings to be reset. 36. Expanded the scope of STANDARD to reset the tab stops, and the spacing and test-page parameters of LIST, LIST ELEMENT and PARAGRAPH commands. 37. Modified the FIGURE command so it works as claimed in the manual. That is, if there isn't room on the current page, it continues to be filled and the figure space is put on the next page. There can be up to 16 figure allocations pending at one time (they are kept in order)--more than that yields an error. If there are pending figure allocations when an APPENDIX, CHAPTER, DO INDEX, EVEN, or ODD command is encountered or the end of the input is reached, the figure allocations are all done. [Superceded by change #78; see also #80] 38. Eliminated the blank page which was output at the end of the DOC file. 39. (a) Added base left margin from which text left and right margins are measured. (b) Added PAGE FORMAT command to set top margin, page length, base left margin, and default right margin. This command has the following syntax: PAGE FORMAT ,,, The initial values are 0, 56., 0, and 60., respectively. If any argument is omitted (all are optional), its value is unchanged. The left and right margins are now defined relative to the base margin. (c) Added /DO , /LO , /LE , /WI switches to allow parameters to be set via the command line. If any of these switches are used, and the corresponding argument is present in a PAGE FORMAT command in the input, a warning message is output and the value is not changed. Changes Made to RUNOFF Page 5 40. Added size parameters to the HEADER command. The syntax now is: HEADER