           SUMMARY OF CHANGES MADE TO RUNOFF (version M3.0X)
	   -------------------------------------------------


This document highlights the changes which have been made to DECUS RUNOFF
(version M02) at Unimation West.  

The RUNOFF manual has been revised to reflect these changes.  Thus, you
can refer to it for further details on most of the changes listed here.


NEW FEATURES

 1.  Added ability to have task expand itself to increase the index/
     footnote buffer.  No longer have to install or run RNO with a /INC
     value.

 2.  Added  ALTERNATE [<shift>]  to have odd-numbered pages shifted to
     the right <shift> spaces.  The initial setting is  NO ALTERNATE .
     If <shift> is omitted, it defaults to zero.  Added  /AL  switch
     to enable/disable ALTERNATE.  When ALTERNATE is active, the page
     numbers and titles appear on alternate sides of the pages.

 3.  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 ALTERNATE is in effect (e.g., the effect is disabled by the
     /-AL switch).

 4.  Added  BLOCK  command to make segments of the input appear
     contiguous in the output even if that requires waiting until a
     later page in the output document.  If deferral is necessary, the
     current output page continues to fill normally.

 5.  Added EVEN and ODD commands to force output to an even-numbered or
     odd-numbered page, respectively.

 6.  Added ability to specify multiple input files.  All parameters are
     unchanged between consecutive input files.  The processing of any
     input file after the first one will effectively begin with a BREAK.

 7.  Command-line switches are now processed from left to right, and
     they are now "sticky." That is, once a switch is applied, its
     effect continues until explicitly changed.

 8.  New /AP switch added to allow output to be appended to an existing
     file.  This switch is processed only on the output specification.
     The appended material will start a new page.

 9.  Added LAYOUT command to set top margin, page length, base left
     margin, and default right margin.  This command has the following
     syntax:

     LAYOUT <top>,<page length>,<base left margin>,<def. right margin>

     The initial values are 0, 56., 0, and 60., respectively.  If any
     argument is omitted (all are optional), its value is unchanged.

SUMMARY OF CHANGES TO RUNOFF					    Page 2
New Features



10.  The left and right margins are now defined relative to the base
     left margin.

11.  Added  /DO , /LO , /LE , /WI  switches to allow LAYOUT parameters
     to be set via the command line.  If any of these switches are used,
     and the corresponding argument is present in a LAYOUT command in
     the input, a warning message is output and the value is not changed.

12.  Added  ENTRY  command.  This command is similar to the  INDEX
     command except that it does not cause the page number to be stored.

13.  Added ability to specify subindexing.  Added optional indent
     parameter to  PRINT INDEX  command.  Added  [NO] FLAGS SUBINDEX 
     commands (initial setting is "enable").  As an example, use the
     following commands

			.entry Main
			.index Main>minor1
			.index Main>minor1>minor2

     to produce these index entries (using default indentation)

                 Main                                      
                   minor 1 . . . . . . . . . . . . . <page>
                     minor 2 . . . . . . . . . . . . <page>

14.  Added  AUTOSUBTITLE [<level>]  (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).

15.  Added ability to selectively include or exclude segments of input
     file based on setting of a "switch".  Related commands are:

	INCLUDE <n>	(IN)   -- Turns on switch <n>,
	EXCLUDE <n>	(EX)   -- Turns off switch <n>,
	OPTION <n>	(OPT)  -- Marks start of optional segment <n>,
	ELSE <n>	       -- Inverts logic of active option <n>,
	END OPTION <n>	(ENDO) -- Marks end of optional segment <n>.

     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.

     Added  /IN  and  /EX  switches to permit setting of up to 5 options
     each from command line.  Any options which are set this way cannot be
     changed within the input file.

16.  Added  RIGHT JUSTIFY [<number>][;<text>]  (RJ) command to force
     <text> (or the next line) against requested column (defaults to right
     margin).  <Number> can be a signed value to indicate an offset
     relative to the right margin.

SUMMARY OF CHANGES TO RUNOFF					    Page 3
New Features



17.  Added  FOOTNOTE LINE [<number>][,][<char>]  (FNL) to provide for
     having footnotes automatically set off from the body of the text by a
     blank line and a line with <number> characters <char>.  (The initial
     condition is equivalent to "FOOTNOTE LINE 15,_".)

18.  Added  PAGE NAME <text>  command to enable setting a name to be used
     as the prefix for page numbers (in place of chapter number or
     appendix letter if there is one).  Maximum length for <text> is 40.
     characters.

19.  Added  /CH:m:n  switch to limit output to chapters  m  through  n ,
     inclusive.

20.  Added  TEST LINES  (TL) command; has the same syntax and function as
     TEST PAGE but does not consider the current SPACING.

21.  Added  QUOTE CHARACTER [<char>]  command to allow the user to set the
     special character to be used as the quote character.  If no character
     is provided, the default ("_") is selected.

22.  Added "!" as comment flag.  Appearance of exclamation mark on command
     line terminates command and causes remainder of line to be ignored.
     Also, any line beginning with a "!" is now ignored.

23.  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:<n>).  The default is
     currently 7 lines (it was 12).



FEATURE ENHANCEMENTS

 1.  Added arguments to  TEST PAGE  command to control number of lines
     output together at the end of a group of lines.  The new command
     format is

		TEST PAGE <start>,[<block>],[<end>]

     where "start" is the number of lines to be kept together at the
     beginning of a group of lines; "block" is the total number of lines
     in the group in the output (default is infinity); "end" is the number
     of lines to be kept together at the end of the group of lines
     (default is <start>).

 2.  Changed  TEST PAGE  and related functions of  LIST ELEMENT  and
     PARAGRAPH  to consider the current SPACING.  That is, these commands
     now check whether there is space for lines of text rather than simply
     lines in the output.

SUMMARY OF CHANGES TO RUNOFF					    Page 4
Feature Enhancements



 3.  Added arguments to  PARAGRAPH  command to control number of lines
     output together at the _e_n_d of a group of lines.  The new command
     format is

	PARAGRAPH [<indent>],[<spacing>],[<start>],[<block>],[<end>]

     where the first three parameters have the old meanings, and the last
     two parameters have the same meaning as the last two parameters for
     the current  TEST PAGE  command.

 4.  Made  PARAGRAPH  permissible in footnotes (default arguments are
     saved/restored).

 5.  Added text argument to  FIGURE  command to make it possible to
     have a caption output with the figure space even if it is deferred.

 6.  Made level parameter to  HEADER LEVEL  optional--defaults to current
     level (initially 1).  Argument can also now be relative (i.e., a
     signed number).  By making all level specifications relative (e.g.,
     default or "+0" for the current level or "+1" for the next level) the
     insertion and removal of levels is simplified.

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

 8.  Made "=" work even if "word" begins with non-alphabetic character.

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

10.  Allow negative arguments to  SKIP  and  BLANK  to mean move down to
     that many lines from the bottom of the page.

11.  Added warning message if footnotes over fill page, or if more than
     two blank lines are at bottom of page after footnotes are output.
     (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.)

12.  Added "BLANK" HEADER type in which the word "Page" is not output.

13.  Added size parameters to the  HEADER  command.  The syntax now is:

	HEADER <style>,<header length>,<left margin>,<right margin>

     The initial defaults are "MIXED", 5, 0, and 60., respectively.
     Subsequent HEADER commands take the current values as the defaults
     for the numeric arguments (all arguments are optional).

SUMMARY OF CHANGES TO RUNOFF					    Page 5
Feature Enhancements



14.  Added  /HL  switch to allow header length to be set via command line.
     If this switch is used, and the corresponding argument is present in
     a HEADER command in the input, a warning message is output and the
     value is not changed.

15.  The header right margin is set by the  PAGE SIZE  and  LAYOUT
     commands (the latter only when its width parameter is provided).

16.  Put two spaces after "<punct><paren>", where <punct> is ".", "!", or
     "?" and <paren> is ")", "]", "}", or double quote.

17.  Added control of the white space between index letter groups.  For
     the  DO INDEX  command the number of lines output between groups is
     set by the  SPACING  command.  For the  PRINT INDEX  command a new
     parameter specifies the additional lines to be output between groups
     and the index entries themselves are spaced per the SPACING command.

18.  Made index storage more efficient by ignoring duplicate entries on
     an output page.

19.  Fixed output of page references in index so right margin is not
     exceeded.  Now a new line is started if there are too many page
     references to fit on one line.

20.  Changed  NOTE  to accept margin change as an optional command
     argument.  If omitted, the margins are always reduced by five (5)
     spaces.  Current syntax is  NOTE [<indent>,][<text>]  (which is
     compatible with the old syntax).

21.  Added <skip> argument to  END NOTE  and  END LIST  commands to
     specify number of lines to skip.  Defaults are 2 and the value used
     by the latest LIST command, respectively.

22.  Added parameter to  LIST  command to provide ability to have list
     elements set off by a specified character (e.g., "-" or "o" [pseudo
     bullet]) instead of being numbered.  (Changed test for too many
     nested lists to give error message before overflowing internal
     buffer!)

23.  Added new error message to differentiate between different types of
     "ILLEGAL COMMAND" errors.  That is, between unknown command or one
     not accepted in the current context, and an invalid command
     parameter.

24.  Added tests to  CENTER ,  RIGHT JUSTIFY ,  EVEN  and  ODD  to make
     sure numeric argument is within reason (i.e., <maximum right margin>
     = 132.; <maximum line skip> = <permanent page length>).

25.  Added an error check to  NUMBER CHAPTER  for argument less than or
     equal to zero.  NUMBER CHAPTER  accepts argument up to 128.

26.  CHAPTER  now turns on page numbering.

SUMMARY OF CHANGES TO RUNOFF					    Page 6
Feature Enhancements



27.  Expanded the scope of  STANDARD  to reset the tab stops, and the
     spacing and test-page parameters of LIST, LIST ELEMENT and PARAGRAPH
     commands.



BUGS CORRECTED

 1.  Page numbers are now justified against the page width (e.g., as set
     by a  PAGE SIZE  command) rather than the local right margin.

 2.  Fixed quoted space so that "# " has the same effect as " #".

 3.  Added  NO FLAGS  to command table--it was missing.

 4.  Too many blank lines were output if a  HEADER LEVEL  command
     immediately followed a  CHAPTER  or  APPENDIX  command.

 5.  Changed format of header levels 3 up from "... -  " to "... -- ".

 6.  Fixed index creation:  (1) entry longer than 52.  characters used to
     overwrite code (now truncated to 50.  characters); (2) entry longer
     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 now only stored
     once.

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

 8.  Fixed 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).

 9.  Corrected page break when  SPACING  is greater than 1.  (Eliminated
     output of blank lines at bottom of pages.)

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

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

12.  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.  If there are
     pending figures when an  APPENDIX,  CHAPTER,  DO INDEX,  EVEN, or
     ODD  command is encountered or the end of the input is reached, the

SUMMARY OF CHANGES TO RUNOFF					    Page 7
Bugs Corrected



     figure allocations are all done.  (Figures are always output in the
     order of appearance in the input file.)

13.  Fixed subpage processing so multiple subpages can be output after
     SUBPAGE  command.  END SUBPAGE  correctly terminates subpages and
     returns to normal page numbering.

14.  Corrected spacing of index entries with underlining.  (Note, however,
     that such entries may not be put in the correct order.)

15.  Reworked footnote processing, fixing variety of bugs.

16.  Fixed problem with  AUTOPARAGRAPH  which caused paragraph separation
     to be output twice if  PARAGRAPH  command was followed by either
     blank line or a line starting with a space or tab while AUTOPARAGRAPH
     mode was in effect.

17.  Ignore extra blank lines and formfeeds in  AUTOPARAGRAPH  mode.

18.  Check argument input with /UL switch.  Assume "N" if arg. is invalid.

19.  Clear appendix letter when  CHAPTER  processed in case an  APPENDIX
     or  NUMBER APPENDIX  has been processed.



FEATURES CHANGED

 1.  Have  JUSTIFY  always turn on  FILL.  Reasoning:  (1) it doesn't make
     much sense to justify without filling, (2) it was discouraged in the
     manual, and (3) it did not work correctly!

 2.  Made hyphenation not be disabled when justification is turned off.

 3.  Eliminated automatic double space after semicolon.

 4.  Default  HEADER  type changed to "MIXED".

 5.  SPACING  is now set to the default value (single spacing) within
     footnotes.  Specified footnote length is no longer multiplied by the
     text line spacing.

 6.  Made several changes to  LIST  commands:  (1) Save vertical spacing
     and test-page count when nested list begins and restore when it ends;
     (2) do test page for  LIST ELEMENT  after skipping lines; (3) default
     test-page count changed from 2 to 1 [to compensate for change (2)];
     (4) fix incorrect indent of first line when text followed command on
     next line; (5) adjust negative indent for list element numbers greater
     than 9.

 7.  Made the following commands not permitted when a  NOTE  is in
     process:  FIRST TITLE, DO INDEX, PRINT INDEX.

SUMMARY OF CHANGES TO RUNOFF					    Page 8
Features Changed



 8.  Made the following commands not permitted when a  FOOTNOTE  is in
     process:  NUMBER, NO NUMBER, NUMBER APPENDIX, NUMBER CHAPTER.

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

10.  Changed  NUMBER  to take the actual new page number as its argument.
     NUMBER  now accepts a relative argument.

11.  Changed maximum title and subtitle lengths to 80 characters (were
     each 132).

12.  Made changes to  LITERAL  processing to make it more "literal." In
     particular:

	LITERAL  now saves the current line spacing and temporarily
	sets it to one (1) so that the following text will in fact be
	processed literally.  The previous spacing is restored when
	the  END LITERAL  command is processed.

	Temporarily set the right margin to 132 to prevent RUNOFF from
	breaking lines which exceed the normal right margin during
	processing of  LITERAL  sections.  The right margin is restored
	when  END LITERAL  is processed.

	If an output line exceeds the normal right margin, a warning
	is output to the user's terminal.  (This error message costs
	32 words of code.)

	When END LITERAL is processed, <SPACING-1> blank lines are
	output.

13.  Automatically do a  DO INDEX  at the end of the file if there is
     anything in the index buffer.

14.  Eliminate  FIRST TITLE  command.  Reasoning:  (1) it has never worked
     correctly (it does now, if included), (2) it doesn't provide a vital
     function (its effect can be achieved easily by other means), (3) it
     costs 22 words of index buffer space.

15.  Eliminated the blank page which was output at the end of the DOC file.

SUMMARY OF CHANGES TO RUNOFF					    Page 9




MISCELLANEOUS CHANGES

 1.  Made command syntax the same for all commands with similar argument
     combinations.  E.g., commands with numeric arguments can have them
     separated by white space with or without a comma; commands with a
     numeric argument and a text argument can have any of the following
     for separators:  none, white space, comma, semicolon, carriage return
     (the text is assumed to start immediately after the separator when
     either a semicolon or carriage return is used).

 2.  Changed default page header to start on line 1.  Extra line put after
     header.

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

 4.  Made multi-part error messages appear on one line.

 5.  Changed error messages to mixed case.

 6.  The  FOOTNOTE  command can now be followed by other commands on the
     same line.

 7.  Expand checks for valid parameter values for the  LEFT MARGIN, INDENT
     and  RIGHT MARGIN  commands, and the indent parameter for the
     PARAGRAPH  command.  The current criteria are

		  0 <= lm < rm     and     0 <= (lm + i) < rm

 8.  Never underline underbar characters from the input.

 9.  Made  PAGE SIZE  parameters available at task build as claimed in the
     manual.
