1. NAME

spam - an SGML markup stream editor

An \*S System Conforming to International Standard ISO 8879
Standard Generalized Markup Language

2. SYNOPSIS

spam [

-ehilprvx ] [ -c catalog_file ] [ -D directory ] [ -f file ] [ -m markup_option ] [ -o entity_name ] [ -w warning_type ] sysid . . .

3. DESCRIPTION

This manual page may be out of date. Consult the HTML documentation for the most up-to-date information concerning this program.

Spam(SP Add Markup) is an SGML markup stream editor implemented using the SP parser. Spamparses the SGML document contained in sysid . . .and copies to the standard output the portion of the document entity containing the document instance, adding or changing markup as specified by the

-m options. The

-p option can be used to include the SGML declaration and prolog in the output. The

-o option can be used to output other entities. The

-x option can be used to expand entity references.

For more information about the underlying SGML parser and entity manager, see

R nsgmls (1).

The following options are available:

  • -c file
        Use the catalog entry file file .
  • -D directory
        Search directoryfor files specified in system identifiers. Multiple

-D options are allowed. See

R nsgmls (1) for more information about file searching.

-e

    Describe open entities in error messages.

  • -f file
        Redirect errors to file . This is useful mainly with shells that do not support redirection of stderr.

-h

    Hoist omitted tags out from the start of internal entities. If the text at the beginning of an internal entity causes a tag to be implied, the tag will usually be treated as being in that internal entity; this option will instead cause it to be treated as being in the entity that referenced the internal entity. This option makes a difference in conjunction with

-momittag or

R -x -x .

  • -i name
        Pretend that

<!ENTITY %  name  (tsINCLUDE(ts>

occurs at the start of the document type declaration subset in the \*S document entity.

  • -l
        Prefer lower-case. Added names that were subject to upper-case substitution will be converted to lower-case.
  • -m markup_option
        Change the markup in the output according to the value of markup_optionas follows:

omittag

    Add tags that were omitted using omitted tag minimization. End tags that were omitted because the element has a declared content of EMPTY or an explicit content reference will not be added.

shortref

    Replace short references by named entity references.

net

    Change null end-tags into unminimized end-tags, and change net-enabling start-tags into unminimized start-tags.

emptytag

    Change empty tags into unminimized tags.

unclosed

    Change unclosed tags into unminimized tags.

attname

    Add omitted attribute names and

R vi s.

attvalue

    Add literal delimiters omitted from attribute values.

attspec

    Add omitted attribute specifications.

current

    Add omitted attribute specifications for current attributes. This option is implied by the

attspec option.

shorttag

    Equivalent to combination of

R net ,

R emptytag ,

R unclosed ,

R attname ,

attvalue and

attspec options.

rank

    Add omitted rank suffixes.

reserved

    Put reserved names in upper-case.

ms

    Remove marked section declarations whose effective status is IGNORE, and replace each marked section declaration whose effective status is INCLUDE by its marked section. In the document instance, empty comments will be added before or after the marked section declaration to ensure that ignored record ends remain ignored.

Multiple

-m options are allowed.

  • -o name
        Output the general entity nameinstead of the document entity. The output will correspond to the first time that the entity is referenced in content.

-p

    Output the part of the document entity containing the SGML declaration (if it was explicitly present in the document entity) and the prolog before anything else. If this option is specified two or more times, then all entity references occurring between declarations in the prolog will be expanded; this includes the implicit reference to the entity containing the external subset of the DTD, if there is one. Note that the SGML declaration will not be included if it was specified by an SGMLDECL entry in a catalog.

-r

    Don't perform any conversion on RSs and REs when outputting the entity. The entity would typically have the storage manager attribute

R records=asis .

-v

    Print the version number.

  • -w type
        Control warnings and errors according to type . See

R nsgmls (1) for the allowed values of type .

-x

    Expand references to entities that are changed. If this option is specified two or more times, then all references to entities that contain tags will be expanded.

4. BUGS

Omitted tags are added at the point where they are implied by the SGML parser (except as modified by the

-h option); this is often not quite where they are wanted.

The case of general delimiters is not preserved.

Incorrect results may be produced if a variant concrete syntax is used which is such that there are delimiters in markup to be added that have a prefix that is a proper suffix of some other delimiter.

If an entity reference in a default value uses the default entity and an entity with that name is subsequently defined and that default value is added to the document instance, then the resulting document may not be equivalent to the original document. Spamwill give a warning when the first two conditions are met.

5. AUTHOR

James Clark ().

6. SEE ALSO

R nsgmls (1)