**********************************************************************
FTSC                             FIDONET TECHNICAL STANDARDS COMMITTEE
**********************************************************************

Publication:    FTS-4000
Revision:       1
Title:          CONTROL PARAGRAPHS
Author(s):      FTSC

Revision Date:  1 October 2000
Expiry Date:    1 October 2002
----------------------------------------------------------------------
Contents:
                1. Credits
                2. General
                3. General format of control paragraphs
                4. Control tags
                5. Length of control paragraphs
----------------------------------------------------------------------

Status of this document
-----------------------

  This document is a Fidonet Standard (FTS).

  This document specifies a Fidonet standard for the Fidonet
  community.

  This document is released to the public domain, and may be used,
  copied or modified for any purpose whatever.


1. Credits
----------

  This document is based on the work of Randy Bush and many others.


2. General
----------

  The size and complexity of FidoNet has increased over the years.

  Although a number of attempts have been made, new packet file
  formats which may have accomodated those changes in the network have
  not gained common acceptance.

  To be able to add new addressing and other control information in
  the old packet formats, it has become common practice to use control
  paragraphs (also called kludges or kludge lines) embedded in the
  packed message text body.


3. Control paragraphs
---------------------

  A control paragraph shall be contained within a separate paragraph
  of text as defined in separate FTSC documents. A control paragraph
  may not contain any other message text.

  Each control paragraph shall start with a <SOH> character.
  Non-control paragraphs must not start with a <SOH> character.

  The general format of a control paragraph shall be:

    <SOH><control tag>": "<string><CR>

  where <string> is some sort of value related to the control
  paragraph in question.

  For historical reasons certain control tags use the following
  paragraph format:

    <SOH><control tag>":"<string><CR>

  This format shall however not be used for new control tags.

  If no data value is required for a certain control paragraph, the
  general format for such a paragraph shall be:

    <SOH><control tag>":"<CR>

  Developers may introduce new control tags on an experimental basis
  as they see fit. Control tags which are documented in FTSC documents
  must however not be used in any other way than according to those
  FTSC documents.

  Consequently each program processing FidoNet packet files should
  retain any control paragraph containing an unknown control tag
  verbatim and at as unchanged a position within the message body as
  possible. This is particularly essential for copies of messages
  which are to be sent to another system.

  The ASCII character set should be used in control paragraphs.

  It is known that certain programs use non-ASCII characters in
  control paragraphs.

  If a control paragraph contains non-ASCII characters and the message
  contains information about the character set used, it should be
  assumed that that character set is also used in the control
  paragraph in question.

  If a control paragraph contains non-ASCII characters and the message
  contains no information about the character set used, the character
  set used in the control paragraph in question may be considered
  undetermined.

  The <LF> and soft <CR> characters (character codes 10 and 141
  respectively) should not be used within a control pragraph. If they
  are, they should be disregarded by any program processing such a
  message or copies thereof.

  If a program processing packet files encounters non-ASCII or
  non-printable ASCII characters in control paragraphs in messages
  which will be passed on to other programs or systems, those
  characters should be passed along unchanged.


4. Control tags
---------------

  Control tags and the accompanying data values are specified in
  separate FTSC documents.


5. Length of control paragraphs
-------------------------------

  The contents of control paragraphs are generally intended for the
  programs processing the message (or the copies of the message) and
  not for presentation on the user interface level.

  Control paragraphs should therefore be kept as concise as possible.

  Traditionally most control paragraphs were limited to 80 characters
  or less. However, a control paragraph may in principle be of any
  length whenever required.

  For obvious reasons, each system has some maximum size for a message
  body and for a packet file. Furthermore the file transfer protocols
  for FidoNet sessions specified separately may also impose maximum
  sizes on files to be transferred from one FidoNet system to another.

  There may be specific limits to the length of certain control
  paragraphs as specified by other FTSC documents.



A. History
----------

   Rev.1, 20001001: Initial Release.
                    Principal author Goran Eriksson.

**********************************************************************