• Bug#1007576: psgml: please consider upgrading to 3.0 source format (3/6

    From Bastian Germann@21:1/5 to All on Sat Mar 23 16:00:01 2024
    [continued from previous message]

    +archive. This is done with the `gunzip' and `tar' commands.

    gunzip psgml-1.2.0.tar.gz; tar xf psgml-1.2.0.tar

    This should create a subdirectory to the current directory with the
    -source code. This directory contains a 'configure' command (see the
    +source code. This directory contains a `configure' command (see the
    file INSTALL for more information about configure). You can use the -'configure' command to configure the package or you can load the file -'psgml-maint' and execute the 'psgml-compile-files' command.
    +`configure' command to configure the package or you can load the file +`psgml-maint' and execute the `psgml-compile-files' command.

    - Place the '*.el' and the '*.elc' files in a directory where Emacs can
    -find it (i.e. one of the directories in the 'load-path' variable, you
    -can add a directory to this variable in your '.emacs'.)
    -
    - If you use the 'configure' approach, compile psgml with 'make' and
    -the you can run 'make install' to install it in the system library -'site-lisp'. The location of 'site-lisp' is figured out by 'configure',
    -but you can change it in the 'Makefile'.
    + Place the `*.el' and the `*.elc' files in a directory where Emacs
    +can find it (i.e. one of the directories in the `load-path' variable,
    +you can add a directory to this variable in your `.emacs'.)
    +
    + If you use the `configure' approach, compile psgml with `make' and
    +the you can run `make install' to install it in the system library +`site-lisp'. The location of `site-lisp' is figured out by
    +`configure', but you can change it in the `Makefile'.

    Put the following line in your .emacs:

    (autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t)
    (autoload 'xml-mode "psgml" "Major mode to edit XML files." t)

    - You may also want to set up search paths for external entities, *Note -Entity manager::.
    + You may also want to set up search paths for external entities,
    +*Note Entity manager::.

    - The 'psgml.info' is the documentation for PSGML in the info format.
    -You can read this with the Emacs command 'C-u C-h i'. You can also
    -install the file in your systems info directory and edit the 'dir' file
    -to include 'psgml.info' in the menu.
    -
    - The info file 'psgml.info' is created from the texinfo file
    -'psgml.texi'. The texinfo file can also be used to create a hard copy
    -of the documentation. To do this you need the TeX program and a copy of -'texinfo.tex'.
    + The `psgml.info' is the documentation for PSGML in the info format.
    +You can read this with the Emacs command `C-u C-h i'. You can also
    +install the file in your systems info directory and edit the `dir'
    +file to include `psgml.info' in the menu.
    +
    + The info file `psgml.info' is created from the texinfo file
    +`psgml.texi'. The texinfo file can also be used to create a hard
    +copy of the documentation. To do this you need the TeX program and a
    +copy of `texinfo.tex'.

    
    File: psgml.info, Node: Invoke, Next: Entity manager, Prev: Install, Up: Top

    -3 How to invoke PSGML
    -*********************
    +How to invoke PSGML
    +*******************

    -PSGML defines major modes called 'sgml-mode' and 'xml-mode'. Files with -extensions '.sgml', '.sgm' or '.dtd' will automatically be edited in
    -SGML mode. To edit some other file in SGML mode, type 'M-x sgml-mode
    -<RET>' after finding the file. To edit XML files, type 'M-x xml-mode
    -<RET>'.
    + PSGML defines major modes called `sgml-mode' and `xml-mode'.
    +Files with extensions `.sgml', `.sgm' or `.dtd' will automatically be
    +edited in SGML mode. To edit some other file in SGML mode, type `M-x +sgml-mode <RET>' after finding the file. To edit XML files, type
    +`M-x xml-mode <RET>'.

    If you can modify the file you can add a "Local Variables" list
    -(*note Local Variables in Files: (emacs)file variables.) to the end of
    -the file. This can make Emacs automatically set sgml mode and user
    -options when the file is loaded. The simplest Local Variables list
    -would look like:
    +(*note Local Variables in Files: (emacs)file variables.) to the end
    +of the file. This can make Emacs automatically set sgml mode and
    +user options when the file is loaded. The simplest Local Variables
    +list would look like:

    <!--
    Local Variables:
    @@ -177,24 +178,24 @@
    End:
    -->

    - You can also put a line at the top of the file to tell emacs to use
    -sgml mode:
    + You can also put a line at the top of the file to tell emacs to
    +use sgml mode:

    <!-- -*- sgml -*- -->

    - For XML replace 'sgml' with 'xml' in the above examples. But
    -remember that you can't have a comment before the _SGML declaration_ or
    -the _XML declaration_.
    + For XML replace `sgml' with `xml' in the above examples. But
    +remember that you can't have a comment before the _SGML declaration_
    +or the _XML declaration_.

    
    File: psgml.info, Node: Entity manager, Next: Validate, Prev: Invoke, Up: Top

    -4 The Entity Manager
    -********************
    +The Entity Manager
    +******************

    -SGML can refer to an external file (really entity) with an _external -identifier_, this is a _public identifier_ or a _system identifier_, or
    -both.
    + SGML can refer to an external file (really entity) with an
    +_external identifier_, this is a _public identifier_ or a _system +identifier_, or both.

    A typical public identifier looks like

    @@ -210,389 +211,398 @@
    where "htmlplus.dtd" is a system-specific identifier.

    To map external identifiers to file names, PSGML first searches
    -entity catalog files and then search the list of file name templates in
    -the variable 'sgml-public-map'.
    +entity catalog files and then search the list of file name templates
    +in the variable `sgml-public-map'.

    The catalog format is according to SGML/Opens resolution on entity -management. The catalog consists of a series of entries and comments.
    -A comment is delimited by '--' like in a markup declaration. The entry
    -types recognized are described in the following table.
    +management. The catalog consists of a series of entries and
    +comments. A comment is delimited by `--' like in a markup
    +declaration. The entry types recognized are described in the
    +following table.

    -'public PUBID FILE'
    +`public PUBID FILE'
    The FILE will be used for the entity text of an entity with the
    public identifier PUBID.

    -'entity NAME FILE'
    +`entity NAME FILE'
    The FILE will be used for the entity text of an entity with the
    - name NAME. If the NAME starts with a '%' the rest of the name will
    - be matched against parameter entities.
    + name NAME. If the NAME starts with a `%' the rest of the name
    + will be matched against parameter entities.

    -'doctype NAME FILE'
    +`doctype NAME FILE'
    The FILE will be used for the entity text of an entity used as
    external subset of a document declaration with NAME as document
    type name.

    -'sgmldecl FILE'
    +`sgmldecl FILE'
    Used to specify a default SGML declaration. Recognized but not
    - used by PSGML other than to pass to an external validation command
    - ('sgml-validate-command').
    + used by PSGML other than to pass to an external validation
    + command (`sgml-validate-command').

    - When PSGML is looking for the file containing an external entity, the -following things will be tried in order:
    + When PSGML is looking for the file containing an external entity,
    +the following things will be tried in order:

    1. Try the system identifier, as a file name, if there is a system
    - identifier and the variable 'sgml-system-identifiers-are-preferred'
    - is non-'nil' and there is no elements containing '%s' in
    - 'sgml-public-map'. If the system identifier is a relative file
    - name it will be relative to the directory containing the defining
    - entity.
    + identifier and the variable
    + `sgml-system-identifiers-are-preferred' is non-`nil' and there
    + is no elements containing `%s' in `sgml-public-map'. If the
    + system identifier is a relative file name it will be relative to
    + the directory containing the defining entity.

    - 2. Look thru each catalog in 'sgml-local-catalogs' and
    - 'sgml-catalog-files' in order. For each catalog look first for
    + 2. Look thru each catalog in `sgml-local-catalogs' and
    + `sgml-catalog-files' in order. For each catalog look first for
    entries matching the public identifier, if any. Then look for
    other matching entries in the order they appear in the catalog.

    - Currently an entry will be ignored if it is matching but its file
    - is non-existent or unreadable. (This is under reconsideration,
    - perhaps it should signal error instead).
    + Currently an entry will be ignored if it is matching but its
    + file is non-existent or unreadable. (This is under
    + reconsideration, perhaps it should signal error instead).

    3. Try the system identifier, if any, as a file name. If
    - 'sgml-system-identifiers-are-preferred' is 'nil' and there is no
    - elements containing '%s' in 'sgml-public-map'.
    + `sgml-system-identifiers-are-preferred' is `nil' and there is no
    + elements containing `%s' in `sgml-public-map'.

    - 4. Try the entries in 'sgml-public-map'. Using the catalogs are
    - preferred. The 'sgml-public-map' may disappear in a future version
    - of PSGML (not soon though).
    -
    - The 'sgml-public-map' variable can contain a list of file name
    -templates where '%P' will be substituted with the whole public
    -identifier, owner is substituted for '%O', public text class for '%C',
    -and public text description for '%D'. The text class will be converted
    -to lower case and the owner and description will be transliterated
    -according to the variable 'sgml-public-transliterations'. The templates
    -in the list is tried in order until an existing file is found. The -'sgml-public-map' is modeled after 'sgmls' environment variable
    -'SGML_PATH' and psgml understand the following substitution characters:
    -%%, %N, %P, %S, %Y, %C, %L, %O, %T, and %V. The default value of -'sgml-public-map' is taken from the environment variable 'SGML_PATH'.
    + 4. Try the entries in `sgml-public-map'. Using the catalogs are
    + preferred. The `sgml-public-map' may disappear in a future
    + version of PSGML (not soon though).
    +
    +
    + The `sgml-public-map' variable can contain a list of file name
    +templates where `%P' will be substituted with the whole public
    +identifier, owner is substituted for `%O', public text class for
    +`%C', and public text description for `%D'. The text class will be
    +converted to lower case and the owner and description will be
    +transliterated according to the variable
    +`sgml-public-transliterations'. The templates in the list is tried
    +in order until an existing file is found. The `sgml-public-map' is
    +modeled after `sgmls' environment variable `SGML_PATH' and psgml
    +understand the following substitution characters: %%, %N, %P, %S, %Y,
    +%C, %L, %O, %T, and %V. The default value of `sgml-public-map' is
    +taken from the environment variable `SGML_PATH'.

    Given the public identifier above and the file name template -'/usr/local/lib/sgml/%o/%c/%d', the resulting file name is +`/usr/local/lib/sgml/%o/%c/%d', the resulting file name is

    /usr/local/lib/sgml/ISO_8879:1986/entities/Added_Latin_1

    - Note: blanks are transliterated to '_' (and also '/' to '%') and the
    -text class is down cased.
    + Note: blanks are transliterated to `_' (and also `/' to `%') and
    +the text class is down cased.

    - -- User Option: sgml-catalog-files
    - This is a list of catalog entry files. The files are in the format
    - defined in the SGML Open Draft Technical Resolution on Entity
    - Management. The Emacs variable is initialized from the environment
    - variable 'SGML_CATALOG_FILES' or if this variable is undefined the
    - default is
    + - User Option: sgml-catalog-files
    + This is a list of catalog entry files. The files are in the
    + format defined in the SGML Open Draft Technical Resolution on
    + Entity Management. The Emacs variable is initialized from the
    + environment variable `SGML_CATALOG_FILES' or if this variable is
    + undefined the default is

    ("CATALOG" "/usr/local/lib/sgml/CATALOG")

    - -- User Option: sgml-local-catalogs
    + - User Option: sgml-local-catalogs
    A list of SGML entity catalogs to be searched first when parsing
    - the buffer. This is used in addition to 'sgml-catalog-files', and
    - 'sgml-public-map'. This variable is automatically local to the
    - buffer.
    -
    - -- User Option: sgml-system-identifiers-are-preferred
    - If 'nil', PSGML will look up external entities by searching the
    - catalogs in 'sgml-local-catalogs' and 'sgml-catalog-files' and only
    - if the entity is not found in the catalogs will a given system
    - identifier be used. If the variable is non-nil and a system
    - identifier is given, the system identifier will be used for the
    - entity. If no system identifier is given the catalogs will
    - searched.
    + the buffer. This is used in addition to `sgml-catalog-files',
    + and `sgml-public-map'. This variable is automatically local to
    + the buffer.
    +
    + - User Option: sgml-system-identifiers-are-preferred
    + If `nil', PSGML will look up external entities by searching the
    + catalogs in `sgml-local-catalogs' and `sgml-catalog-files' and
    + only if the entity is not found in the catalogs will a given
    + system identifier be used. If the variable is non-nil and a
    + system identifier is given, the system identifier will be used
    + for the entity. If no system identifier is given the catalogs
    + will searched.

    - -- User Option: sgml-public-map
    + - User Option: sgml-public-map
    This should be a list of file name templates. This variable is
    - initialized from the environment variable 'SGML_PATH'. This is the
    - same environment variable that 'sgmls' uses. If the environment
    - variable is undefined the default is
    + initialized from the environment variable `SGML_PATH'. This is
    + the same environment variable that `sgmls' uses. If the
    + environment variable is undefined the default is

    ("%S" "/usr/local/lib/sgml/%o/%c/%d")

    
    File: psgml.info, Node: Validate, Next: SGML declaration, Prev: Entity manager, Up: Top

    -5 Running an external SGML parser
    -*********************************
    +Running an external SGML parser
    +*******************************

    -PSGML can not validate an SGML document (see below what it can and can't
    -do). If you have a validating SGML parser, like 'sgmls', you can run
    -the parser on your file with the command 'C-c C-v' ('sgml-validate').
    + PSGML can not validate an SGML document (see below what it can and
    +can't do). If you have a validating SGML parser, like `sgmls', you
    +can run the parser on your file with the command `C-c C-v'
    +(`sgml-validate').

    Some variables control this function:

    - -- User Option: sgml-validate-command
    + - User Option: sgml-validate-command
    The shell command to validate an SGML document.

    - This is a 'format' control string that by default should contain
    - two '%s' conversion specifications: the first will be replaced by
    - the value of 'sgml-declaration' (or the empty string, if nil); the
    - second will be replaced by the current buffer's file name (or the
    - empty string, if nil).
    -
    - If 'sgml-validate-files' is non-nil, the format string should
    - contain one '%s' conversion specification for each element of its
    - result.
    -
    - If sgml-validate-command is a list, then every element should be a
    - string. The strings will be tried in order and '%'-sequences in
    - the string will be replaced according to the list below, if the
    - string contains '%'-sequences with no replacement value the next
    - string will be tried.
    + This is a `format' control string that by default should contain
    + two `%s' conversion specifications: the first will be replaced
    + by the value of `sgml-declaration' (or the empty string, if
    + nil); the second will be replaced by the current buffer's file
    + name (or the empty string, if nil).
    +
    + If `sgml-validate-files' is non-nil, the format string should
    + contain one `%s' conversion specification for each element of
    + its result.
    +
    + If sgml-validate-command is a list, then every element should be
    + a string. The strings will be tried in order and `%'-sequences
    + in the string will be replaced according to the list below, if
    + the string contains `%'-sequences with no replacement value the
    + next string will be tried.

    - '%b'
    + `%b'
    means the visited file of the current buffer

    - '%s'
    - means the SGML declaration specified in the sgml-declaration
    - variable
    -
    - '%d'
    - means the file containing the DOCTYPE declaration, if not in
    - the buffer
    -
    - The default value is 'nsgmls -s %s %s'.
    -
    - -- User Option: sgml-validate-files
    - If non-nil, a function of no arguments that returns a list of file
    - names. These file names will serve as the arguments to the
    - 'sgml-validate-command' format control string instead of the
    + `%s'
    + means the SGML declaration specified in the
    + sgml-declaration variable
    +
    + `%d'
    + means the file containing the DOCTYPE declaration, if not
    + in the buffer
    +
    + The default value is `nsgmls -s %s %s'.
    +
    + - User Option: sgml-validate-files
    + If non-nil, a function of no arguments that returns a list of
    + file names. These file names will serve as the arguments to the
    + `sgml-validate-command' format control string instead of the
    defaults.

    - -- User Option: sgml-declaration
    + - User Option: sgml-declaration
    The name of the SGML declaration file.

    - -- User Option: sgml-offer-save
    - If non-nil, 'C-c C-v' ('sgml-validate') will ask about saving
    - modified buffers before running the validate command. The default
    - value is 't'.
    + - User Option: sgml-offer-save
    + If non-nil, `C-c C-v' (`sgml-validate') will ask about saving
    + modified buffers before running the validate command. The
    + default value is `t'.

    - The built-in parser can find some markup errors. The command 'C-c
    -C-o' ('sgml-next-trouble-spot') is the best way to use the built-in
    + The built-in parser can find some markup errors. The command `C-c
    +C-o' (`sgml-next-trouble-spot') is the best way to use the built-in
    parser for this. To check the whole file go to the beginning of the
    -buffer and use 'C-c C-o'.
    +buffer and use `C-c C-o'.

    Some of the markup errors not found are:

    * Errors in the SGML declaration.
    +
    * Errors in attribute specifications.
    +
    * Omitted start-tags for empty elements.

    
    File: psgml.info, Node: SGML declaration, Next: Managing the DTD, Prev: Validate, Up: Top

    -6 SGML Declaration
    -******************
    +SGML Declaration
    +****************

    -PSGML does not understand the SGML declaration, it accepts one in the
    -file but it is ignored. If you have the SGML declaration in another
    -file you can make 'sgmls' use it when you use the 'C-c C-v'
    -('sgml-validate') command (*note Validate::).
    + PSGML does not understand the SGML declaration, it accepts one in
    +the file but it is ignored. If you have the SGML declaration in
    +another file you can make `sgmls' use it when you use the `C-c C-v' +(`sgml-validate') command (*note Validate::).

    PSGML has some options in what features it uses and what markup it
    creates. You have to set these options to make PSGML's behavior
    consistent with your SGML declaration and personal preferences.

    - -- User Option: sgml-omittag
    - Set this to 't' if the SGML declaration has 'OMITTAG YES' and to
    - 'nil' otherwise.
    -
    - -- User Option: sgml-shorttag
    - Set this to 't' if the SGML declaration has 'SHORTTAG YES' and to
    - 'nil' otherwise.
    -
    - -- User Option: sgml-namecase-general
    - Set this to 't' if the SGML declaration has 'NAMECASE GENERAL YES'
    - and to 'nil' otherwise. I.e., this controls whether names, except
    - entity names, will be case insensitive (translated to upper case).
    + - User Option: sgml-omittag
    + Set this to `t' if the SGML declaration has `OMITTAG YES' and to
    + `nil' otherwise.
    +
    + - User Option: sgml-shorttag
    + Set this to `t' if the SGML declaration has `SHORTTAG YES' and
    + to `nil' otherwise.
    +
    + - User Option: sgml-namecase-general
    + Set this to `t' if the SGML declaration has `NAMECASE GENERAL
    + YES' and to `nil' otherwise. I.e., this controls whether names,
    + except entity names, will be case insensitive (translated to
    + upper case).

    - -- User Option: sgml-always-quote-attributes
    + - User Option: sgml-always-quote-attributes
    If non-nil, quote all attribute values inserted after finishing
    - edit attributes. If this variable is 'nil' and 'sgml-shorttag' is
    - non-'nil', attribute values that consists of only name characters
    - will not be quoted.
    -
    - -- User Option: sgml-minimize-attributes
    - Determines minimization of attributes inserted by edit-attributes.
    - If non-nil, omit attribute name if the attribute value is from a
    - token group. If 'max', omit attributes with default value.
    - Minimization will only be done if they produce legal SGML (assuming
    - 'sgml-omittag' and 'sgml-shorttag' are set correctly).
    + edit attributes. If this variable is `nil' and `sgml-shorttag'
    + is non-`nil', attribute values that consists of only name
    + characters will not be quoted.
    +
    + - User Option: sgml-minimize-attributes
    + Determines minimization of attributes inserted by
    + edit-attributes. If non-nil, omit attribute name if the
    + attribute value is from a token group. If `max', omit
    + attributes with default value. Minimization will only be done
    + if they produce legal SGML (assuming `sgml-omittag' and
    + `sgml-shorttag' are set correctly).

    
    File: psgml.info, Node: Managing the DTD, Next: Edit, Prev: SGML declaration, Up: Top

    -7 Document Type Declaration
    -***************************
    +Document Type Declaration
    +*************************

    -PSGML needs to know about the DTD you are using for many of its
    -commands. If you do not have a 'DOCTYPE' declaration in your file,
    + PSGML needs to know about the DTD you are using for many of its
    +commands. If you do not have a `DOCTYPE' declaration in your file,
    PSGML will try assume that there is one of the form

    <!DOCTYPE NAME SYSTEM>

    - where NAME is the value of 'sgml-default-doctype-name', if the value
    -is non-'nil', else the GI of the first tag will be used.
    + where NAME is the value of `sgml-default-doctype-name', if the
    +value is non-`nil', else the GI of the first tag will be used.

    - PSGML will try to parse the document type declaration the first time
    -you do something that needs to parse the document or immediately if the -variable 'sgml-auto-activate-dtd' is 't'. You can also initiate the
    -parsing of the document type declaration with the command -'sgml-parse-prolog'. Big DTDs take some time to parse.
    + PSGML will try to parse the document type declaration the first
    +time you do something that needs to parse the document or immediately
    +if the variable `sgml-auto-activate-dtd' is `t'. You can also
    +initiate the parsing of the document type declaration with the command +`sgml-parse-prolog'. Big DTDs take some time to parse.

    When the DTD has been parsed or loaded the name of the document
    element will be displayed in the mode line inside brackets. If there
    was an error parsing the DTD or there is no DTD, the mode line will
    -display '[ANY]' (*** this is not really correct! a DTD will be
    +display `[ANY]' (*** this is not really correct! a DTD will be
    established even if there are missing entities, it may even be empty).

    * Menu:

    -* Precompiled DTD Subsets::
    -* Using a Split Document::
    -* Inserting a DOCTYPE::
    -* Information from the DTD::
    -* Customizing DTD::
    +* Precompiled DTD Subsets::
    +* Using a Split Document::
    +* Inserting a DOCTYPE::
    +* Information from the DTD::
    +* Customizing DTD::

    
    File: psgml.info, Node: Precompiled DTD Subsets, Next: Using a Split Document, Prev: Managing the DTD, Up: Managing the DTD

    -7.1 Precompiled DTD Subsets
    -===========================
    +Precompiled DTD Subsets
    +=======================

    -If parsing the DTD takes too long time you can arrange to have PSGML
    -cache an internal complied version of the DTD. Caching can be done of
    -DTD fragments in favourable situations. It is possible to have an
    -external DTD subset cached but still have an internal DTD subset as long
    -as the internal subset does not define parameter entities that affect
    -the parsing of the external subset (*** what is the exact conditions?, -probably you can't use the cached external subset if the internal subset -defines parameter entities that are also defined in the external subset
    -with another value).
    -
    - To enable caching you have to create special catalog files, hereafter -called ECAT files due to (temporary) lack of imagination. These
    -catalogs have similar syntax to the entity catalogs and there are two -variables containing lists of catalogs to search: 'sgml-ecat-files' and -'sgml-local-ecat-files'. The ECAT files can contain the following types
    -of entries:
    + If parsing the DTD takes too long time you can arrange to have
    +PSGML cache an internal complied version of the DTD. Caching can be
    +done of DTD fragments in favourable situations. It is possible to
    +have an external DTD subset cached but still have an internal DTD
    +subset as long as the internal subset does not define parameter
    +entities that affect the parsing of the external subset (*** what is
    +the exact conditions?, probably you can't use the cached external
    +subset if the internal subset defines parameter entities that are
    +also defined in the external subset with another value).
    +
    + To enable caching you have to create special catalog files,
    +hereafter called ECAT files due to (temporary) lack of imagination.
    +These catalogs have similar syntax to the entity catalogs and there
    +are two variables containing lists of catalogs to search:
    +`sgml-ecat-files' and `sgml-local-ecat-files'. The ECAT files can
    +contain the following types of entries:

    -'file DTDFILE ENTITYDEF CFILE'
    +`file DTDFILE ENTITYDEF CFILE'
    The DTDFILE is the name of a file containing a DTD subset that
    - should be cached in CFILE. The ENTITYDEF is optional and if given
    - have the following syntax:
    + should be cached in CFILE. The ENTITYDEF is optional and if
    + given have the following syntax:
    [ NAME1 LITERAL1 NAME2 LITERAL2 ... ]
    Using ENTITYDEF will modify the DTD subset by defining the
    - parameter entity with name NAME1 to be LITERAL1, .... The cached
    - version of the subset will be created with those entity
    + parameter entity with name NAME1 to be LITERAL1, .... The
    + cached version of the subset will be created with those entity
    definitions, and when PSGML search for a matching cached subset
    will check that the parameter entities in ENTITYDEF has been
    - defined with those values before trying to use 'cfile'.
    + defined with those values before trying to use `cfile'.

    -'public PUBID ENTITYDEF CFILE'
    +`public PUBID ENTITYDEF CFILE'
    Cache the DTD subset with public identifier PUBID in file CFILE.

    - -- User Option: sgml-recompile-out-of-date-cdtd
    - If non-'nil', out of date compiled DTDs will be automatically
    - recompiled. If the value is 'ask', PSGML will ask before
    - recompiling. A 'nil' value will cause PSGML to silently load an
    - out of date compiled DTD. A DTD that refers to undefined external
    - entities is always out of date, thus in such case it can be useful
    - to set this variable to 'nil'.
    + - User Option: sgml-recompile-out-of-date-cdtd
    + If non-`nil', out of date compiled DTDs will be automatically
    + recompiled. If the value is `ask', PSGML will ask before
    + recompiling. A `nil' value will cause PSGML to silently load an
    + out of date compiled DTD. A DTD that refers to undefined
    + external entities is always out of date, thus in such case it
    + can be useful to set this variable to `nil'.

    Previous versions of PSGML have had another way of speeding up DTD
    parsing. This code remains in this version of PSGML, but is not
    actively maintained and may disappear in the future.

    - You can save the parsed DTD in a file using the command 'M-x
    + You can save the parsed DTD in a file using the command `M-x
    sgml-save-dtd'. Next time PSGML can load that file instead of parsing
    -the DTD. For PSGML to find the saved DTD you must either save the DTD
    -using the default name or do a 'M-x sgml-save-options' after saving the
    -DTD. To directly use an already parsed and saved DTD, load the file -containing the saved DTD with the command 'M-x sgml-load-dtd'.
    -
    - -- User Option: sgml-default-dtd-file
    - This is the default file name for saved DTD. This is set by
    - 'sgml-mode' to the buffer file name less extension plus the
    - extension '.ced', if that file exists. Can be changed in the Local
    - variables section of the file.
    +the DTD. For PSGML to find the saved DTD you must either save the DTD
    +using the default name or do a `M-x sgml-save-options' after saving
    +the DTD. To directly use an already parsed and saved DTD, load the
    +file containing the saved DTD with the command `M-x sgml-load-dtd'.
    +
    + - User Option: sgml-default-dtd-file
    + This is the default file name for saved DTD. This is set by
    + `sgml-mode' to the buffer file name less extension plus the
    + extension `.ced', if that file exists. Can be changed in the
    + Local variables section of the file.

    
    File: psgml.info, Node: Using a Split Document, Next: Inserting a DOCTYPE, Prev: Precompiled DTD Subsets, Up: Managing the DTD

    -7.2 Using a Split Document
    -==========================
    +Using a Split Document
    +======================

    -You can have the 'DOCTYPE' declaration in another file by setting -'sgml-doctype' to the other file.
    + You can have the `DOCTYPE' declaration in another file by setting +`sgml-doctype' to the other file.

    - -- User Option: sgml-parent-document
    + - User Option: sgml-parent-document
    Used when the current file is part of a bigger document.

    - The variable describes how the current file's content fit into the
    - element hierarchy. The variable should have the form
    + The variable describes how the current file's content fit into
    + the element hierarchy. The variable should have the form

    (PARENT-FILE CONTEXT-ELEMENT* TOP-ELEMENT (HAS-SEEN-ELEMENT*)?)

    - PARENT-FILE
    + PARENT-FILE
    is a string, the name of the file containing the document
    entity.

    - CONTEXT-ELEMENT
    + CONTEXT-ELEMENT
    is a string, that is the name of an element type. It can
    occur 0 or more times and is used to set up exceptions and
    - short reference map. Good candidates for these elements are
    - the elements open when the entity pointing to the current file
    - is used.
    + short reference map. Good candidates for these elements
    + are the elements open when the entity pointing to the
    + current file is used.

    - TOP-ELEMENT
    + TOP-ELEMENT
    is a string that is the name of the element type of the top
    level element in the current file. The file should contain
    - one instance of this element, unless the last (lisp) element
    - of sgml-parent-document is a list. If it is a list, the top

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)