On text, newlines and paragraphs
--------------------------------
The SGF specification doesn't mention anything on the syntax of
the contents of "Comment[]" blocks (or "C[]" in short notation).
The only obvious restriction made is that any occurence of the
character ']' in the text is escaped by a preceeding '\' (to avoid
that the ']' is interpreted as the end of the list).

On the issue of newlines, and paragraphs there are no rules or even
conventions specified. For example, what about the difference between:

	Comment[Hello Go world!], and

	Comment[
	Hello Go World!
	]

Where are the newlines? Is there a trailing newline in the first
example? Is there a leading newline in the second example?
(sgf2misc inserts the trailing newline in the first example and
ignores the leading newline in the second example).

To clear up this kind of ambiguities I would like to propose some
conventions for text blocks:

    1.	A newline continues the current paragraph
	(thus is actually interpreted as a space character)

    2.	An empty line (two consequetive newlines) denotes the
	start of a new paragraph

    3.	A newline preceeded by '\\' is a real newline
	(except when followed by another <newline>, see below)

    4.  Multiple spaces are replaced by a single space.

    5.  The sequence "\ " is a hard space and not eaten.
 
So, what these rules basically propose is to follow TeX's way to
deal with text.

To abbreviate the above rules:

	    Rule   Input                  Output
	    ---------------------------------------
	    1.	   <newline>              <space>
	    2.     <newline><newline>     <paragraph>
	    3a.    \\<newline><!newline>  <newline>
	    3b.    \\<newline><newline>   <paragraph>
	    4.     <space><space>...      <space>
	    5.     \<space>               <space>

In contrast to the current conventions there are two advantages:

    a.	Text lines can be broken whenever you like.
	This will avoid extremely long lines (making it impossible
	to load the SGF file in an editor like vi for example).
    b.	Newlines and paragraphs can be distinguished.

Note:
Instead of the above approach, paragraphs could be distinguished
by putting them in seperate "Comment[]" blocks.
Within a "Comment[]" block <newline>'s would then be ignored except
when preceeded by '\'.

Jan van der Steen
(11-jul-1993)
