All fields of a source line are separated by a single blank character. Any other blank characters are considered as being part of the subsequent field.
Comments begin with a $ followed by a space and the text of the comment. For example:
$ This is a comment
A $set directive is used to associate a message number with all subsequent messages, until the end of file or the next $set directive. The format is:
$set <number> <comment>
For example:
$set 1 this is the first set in the file
The set number must be in the range [1, {NL_SETMAX}]. Set numbers must be ascending within the file, but need not be contiguous. Any string following the set number is treated as a comment. If no $set directive is specified in a message text source file, all messages will be located in an implementation-defined default message set NL_SETD.
A $delset directive is used to delete a message set from an existing message file. The format is:
$delset <number> <comment>
For example:
$delset 1 this deletes any previous definition of set 1 from this file
A message consists of a message number followed by the message text. The message number must be in the range [1, {NL_MSGMAX}]. The message text is stored in the message catalog with the set identifier specified by the last $set directive, and with message the message number. If the message text is empty, and a blank character field separator is present, an empty string is stored in the message catalog. If a message source line has a message number, but neither a field separator nor message text, the existing message with that number (if any) is deleted from the set. Message numbers must be in ascending order with a single set, but need not be contiguous. The length of the message text must be in the range [0, {NL_TEXTMAX}].
For example:
1 "This is the first message" 2 "This is the second message"
A $quote directive specifies an optional quote character, which can be used to surround message text so that trailing spaces or null messages are visible in a message source line. By default, or if an empty $quote directive is supplied, no quoting of message text will be recognized. The format is:
$quote <character>
For example:
$quote "
Empty lines in the message file are ignored. The effects of lines starting with any character other than those defined above are implementation-defined.
Text strings can contain the special characters and escape sequences defined in the following table:
┌────────────────────────────────────────┬────────────────────┐ │Description │Sequence │ ├────────────────────────────────────────┼────────────────────┤ │newline │\n │ ├────────────────────────────────────────┼────────────────────┤ │horizontal tab │\t │ ├────────────────────────────────────────┼────────────────────┤ │vertical tab │\v │ ├────────────────────────────────────────┼────────────────────┤ │backspace │\b │ ├────────────────────────────────────────┼────────────────────┤ │carriage-return │\r │ ├────────────────────────────────────────┼────────────────────┤ │form-feed │\f │ ├────────────────────────────────────────┼────────────────────┤ │backslash │\\ │ ├────────────────────────────────────────┼────────────────────┤ │octal character encoding │\ddd (three or │ │ │fewer octal digits) │ └────────────────────────────────────────┴────────────────────┘
If the character following a backslash is not one of the above or the end of line, the backslash is ignored. A backslash at the end of a line is used to continue a string on the following line. For example:
1 This line continues \ to the next line