
		 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:<n>).  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 "<punct><paren>", where <punct> is ".", "!", or
     "?" and <paren> 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 [<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).

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

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 [<number>] [;<text>]  (RJ) command to force
     <text> (or next line) against requested column (defaults to right
     margin).  <Number> 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 <top>,<page len.>,<base left margin>,<def. rt margin>

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

     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.

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

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

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

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

44.  Added "!" as comment flag.  Appearance of exclamation mark on command
     line terminates command and causes remainder of line to be ignored.
     Any line beginning with "!" is processed as a comment and not output.
     (Note:  Be careful because of meaning of "!" to FOOTNOTE command.)

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

46.  Changed  ALTERNATING HEADER  (see change #4) to  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.  Changed  /AH  switch to  /AL .

47.  Fixed subpage processing so multiple subpages can be output after
     SUBPAGE  command.  END SUBPAGE  correctly terminates subpages and
     returns to normal page numbering.  (Subpages after page 1 are now
     numbered.)

48.  Changed  NUMBER  to (a) take the actual new page number as its
     argument and (b) accept a relative argument.  Added an error check
     to  NUMBER CHAPTER  for argument less than or equal to zero, or

Changes Made to RUNOFF						    Page 6



     greater than 127 (option provided to allow chapter numbers up to
     255).  CHAPTER  now turns on page numbering.

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

     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.

     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.

50.  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.
     (a) Task expands itself during initialization so subsequent expansion
     can go up to the limit of the address space.  ** NOTE ** For this
     feature to work, the task must be checkpointable and running in a
     system-controlled partition.  (Use  SET /MAXEXT=32.K  to allow maximum
     task expansion.)

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

     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, the following commands

			.entry Main1
			.index Main2>minor1>minor2

     will produce these index entries (using default indentation)

			Main1
			Main2
			  minor1
			    minor2 . . . . . . . <page>

52.  Corrected spacing of index entries with underlining.  (Note, however,
     that such entries may not be put in the correct order.)  [Spacing
     tested okay with all 4 underlining modes.]

     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.

53.  Added arguments to  TEST PAGE  command to control number of lines
     output together at the _e_n_d of a group of lines.  The new
     command format is  TEST PAGE <start>,[<block>],[<end>]  where

Changes Made to RUNOFF						    Page 7



     "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 _o_u_t_p_u_t (default is infinity); "end" is the number of
     lines to be kept together at the end of the group of lines (default
     is <start>).  (53A fixed a bug which caused commands on the same line
     as the TEST PAGE to be ignored when the added arguments were used and
     they didn't cause a page break.)

54.  Reworked footnote processing, fixing variety of bugs.  Specified
     footnote length is no longer multiplied by the text line spacing.
     Added warning message if footnotes over fill page, or if more than
     two blank lines are at bottom of page after footnotes are output.
     (ALso see changes #78 & 80.)

     Added provision for having footnotes automatically set off from the
     body of the text by a blank line and a line with a user-specified
     number of user-specified characters.  Details for use are:

          Use  FOOTNOTE LINE [<number>][,][<char>]  (FNL) to specify the
          quantity and character to be used.  Use of the command with no
          character turns the feature off--then the first footnote on a
          page must explicitly contain whatever is to be used to set of
          footnotes from the text (i.e., as was always the case with the
          original RUNOFF).  If the number is omitted, the current value
          is retained.

          The initial condition is equivalent to "FOOTNOTE LINE 15,_".

55.  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.  Ignore extra blank lines and formfeeds in
     AUTOPARAGRAPH mode.  (Superceded by change 96.)

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

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

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

     Also changed internal sequence so that the TEST PAGE is done _a_f_t_e_r
     the initial blank lines are skipped.

58.  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>).

Changes Made to RUNOFF						    Page 8



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

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

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

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

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

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

     (d)  When END LITERAL is processed, <SPACING-1> blank lines are
	  output.  (This feature, which is controlled by an assembly
	  switch, is not currently selected.)

     (e)  Formfeed characters in the input cause a new page to be started.

62.  Changed error messages to mixed case.  Made internal changes to
     processing of error messages to save space (63 words in ERMSG).

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

64.  Never underline underbar characters from the input.

65.  Ignore special characters while ordering index entries.  The space
     character can be ignored also.  [This change is not yet "official."]

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

67.  Expand checks for valid values for the left margin (lm), indent (i),
     right margin (rm), and the paragraph indent parameter (p).  The
     current criteria are

Changes Made to RUNOFF						    Page 9



			for  lm, rm:	 0 <= lm < rm
			for  lm, rm, i:	 0 <= (lm + i) < rm
			for  p:		 0 <= (lm + p) < rm

     Although the last criterion is not checked when the left margin is
     changed (to do so could trigger unwarranted error messages), the
     check is made when each line is started.

68.  Internal changes to store appendix number in byte location rather than
     a word location.  (This was done in anticipation of processing a
     table of contents.)  (a) Clear appendix letter when CHAPTER processed
     in case an APPENDIX or NUMBER APPENDIX has been processed.

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

70.  Added  TEST LINES  (TL) command; has the same syntax and function as
     TEST PAGE  but does not consider the current SPACING.  That is, this
     command acts like the old version of TEST PAGE (see change 69 above).
     A typical use for this command is to check for space on the current
     page for a section of lines in a  LITERAL  section to follow, since
     LITERAL  temporarily sets single spacing, which may differ from the
     current SPACING.

71.  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 (see change 53).

72.  Made sure output file is not left around if first (e.g., only) input
     file specification contains an error.  (RSX11-M only)

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

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

75.  Automatically do a DO INDEX at the end of the file if there is
     anything in the index buffer.

Changes Made to RUNOFF						    Page 10



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

77.  Added assembly switch to eliminate FIRST TITLE from the code.
     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--see manual), (3) it costs 22 words of
     index buffer space.

78.  Added queue for segments of the input which must be deferred before
     placement in the output for some reason.  This applies to FOOTNOTEs,
     FIGUREs, and BLOCKs.

     The new BLOCK command can be used to ensure that lines which follow
     it are kept together (e.g., for a table).  That is, if there isn't
     room on the current page for the block, text continues to fill the
     page and the block is output at the top of the next page.

     Reworked FIGURE processing to use new queue.  FIGURE command expanded
     to include argument for blank-line setoff before and after the figure
     space as with the BLOCK command (this is in anticiption of a caption
     argument for the FIGURE command).  The default for the setoff is 0
     (i.e., revert to the old functionality).  [The default setoff can be
     the latest specified value if an assembly option is changed.]

     The length specified for figures and blocks is compared with the
     number of text lines on a page to make sure the figure/block can fit.

     (d) Added DUMP command to output all pending blocks and figures.

79.  Moved the code for several commands which are infrequently used to a
     new overlay.  The only effect of this is to possibly slow execution
     slightly.

80.  Added text argument to FIGURE command to make it possible to have a
     caption or title output with the figure space.

81.  Added /ID command switch to display current version identification.

82.  Added the ability to have up to three tables of contents output.

     CONTENTS [<index>],[<text]  (CON) creates an entry in table number
     "index", with the given text (absence of text causes a blank line to
     be inserted in the table).

     DO CONTENTS [<spacing>],[<spacing>],[<spacing>]  (DC) causes all
     three tables to be output to the document.  The spacing arguments
     specify the line spacing to be used for each table; the default for
     each is the current SPACING value.  The margins are set to their
     default values, and each table is placed on a separate page.  The
     tables are labeled:  "CONTENTS", "FIGURES" and "TABLES".

Changes Made to RUNOFF						    Page 11



     A  DO CONTENTS  command is automatically invoked at the end of the
     input file if there is anything in any of the tables.

     PRINT CONTENTS [<index>]  (PC) outputs the specified table on the
     current page, without changing the margins or spacing.

83.  Added  AUTOCONTENTS [<level>]  (AC) command.  Acts like AUTOSUBTITLE
     command, but controls whether APPENDIX, CHAPTER, HEADER LEVEL and
     DO INDEX commands cause entries in the table of contents.  Valid
     "level" values are:  <0 to disable the feature, 0 to have only
     CHAPTER, APPENDIX and DO INDEX commands cause contents entries;
     1-5 to have HEADER LEVEL commands up to the given level also cause
     entries.  The initial setting is "AC 5"--include all sections.

84.  Added exit status value set by any warning or error which occurs.
     The exit value represents the "worst" condition that occurred.
     The possible values are:  0 (warning), 1 (success), 2 (error) and
     4 (severe error [RUNOFF aborted]).

85.  Expanded list of punctuation characters known to the hyphenation
     algorithm.  The old list was:  / . , ( ) " \ @
     The added characters are:  ! # $ % & ' : ; < > ? [ ] { }
     Should these be added?  * + = ^ ` | ~

86.  Make command error cause only remainder of current command to be
     ignored, rather than remainder of current command line.

87.  Save the status of AUTOPARAGRAPH mode when footnotes and blocks
     are output and restore it when regular text is resumed.  (The mode
     is not changed.)  (A) Allow TAB STOPS in blocks and footnotes; save
     the current stops going in and restore them coming out.

88.  Added  ENABLE  (ENA) and  DISABLE  (DIS) commands.  Current keywords:

	Name		Function Controlled

	BLOCK  		Output of pending blocks and figures
	CONTENTS	Storing of entries for tables of contents
	INDEX		Storing of index items
	OUTPUT		Writing to output file
	SPECIAL		Effect of special characters (^ \ & # _ etc.)
	RUNNING		Running page numbers

89.  Cleaned up data structures for RSX file I/O, saving 256. words.
     Added  ACTFIL=3  and  UNITS=4  to TKB commands.

90.  Corrected centering of underlined titles for chapters, appendices and
     notes.

91.  Added  LEVEL STYLE (LS)  command to set (1) level at which section
     headers change to the run-in style, (2) the number of blank lines
     output before section headers, (3) the value to be used for the

Changes Made to RUNOFF						    Page 12



     automatic test page before outputting headers, and (4) the number
     of blank lines to output after the section header.  The syntax is

	   LEVEL STYLE <level>, [<skip 1>], [<test>], [<skip 2>]

     If <level> is negative, it sets that level to begin run-in headers.

92.  Add limit on number of consecutive lines which will be hyphenated.
     (Limit now set to 2 lines; can be changed during task build.)
     (B) Made internal criterion used by the hyphenation algorithm
     available for patching during task build.  (C)  Added control of the
     minimum fragment which will be left at the end of a line. (Set at 2
     characters; can be changed during task build.)  (See the task build
     command file for more information.)

93.  Added  EOF  command to force the logical end of the input file.  This
     is useful if only the first portion of a file is to be processed.

94.  Stopped justification of last line of paragraph when it is one
     character short.

95.  Fixed processing of index and tables of contents so that subpage
     letters are output when appropriate.

96.  Modified processing of blank lines automatically output by various
     commands (CHAPTER, HEADER LEVEL, NOTE, END NOTE, LIST ELEMENT, END
     LIST, etc.) so that excessive blank lines are not output when such
     commands follow one another.

97.  Eliminated trailing zero from chapter numbers in the Table of
     Contents, and from top-level section numbers when document is not
     organized by chapters.

98.  Added an optional argument to  HYPHENATION  to determine how RUNOFF
     should process hyphenations.  The possible values are:

	  0    Disable hyphenation completely (equal to NO HYPHENATION)
	  1    Disable RUNOFF's hyphenation algorithm and only process
		   explicit hyphens and user-specified breaks
	  2    Enable RUNOFF's algorithm and process user-specified
		   breaks (the default if the argument is omitted)

99.  Added  REQUIRE  command to allow another input file to be inserted
     within the current one.  The command syntax is

			REQUIRE <file specification>

     where the file specification has the same format as those on the
     RUNOFF command-line (with the same defaults), except that no switches
     can be specified.  The effect is to start taking input from the
     specified file.  When the end of the file is reached, RUNOFF returns
     to the original input file and resumes processing it.  Nesting is
     allowed--currently up to two files can be pending at the same time.

Changes Made to RUNOFF						    Page 13



     Added  CHAIN  command to link to another input file.  This command,
     which has the same syntax as REQUIRE, closes the current file and
     opens the specified file for input.  (This command is not assembled
     in the distribution system.)

     Added  PRINT  command to output a text string to the user's terminal.
     This can be used to report the status of the input processing, or to
     prompt the user for input for a  REQUIRE TI:  command.
