This is an old revision of the document!
Table of Contents
text.dat file
Much of the text and color that the BBS Terminal Server displays (sends to a remote terminal) is stored as strings of text in the ctrl/text.dat
file. The syntax of the text.dat
file is very specific and extreme caution should be taken when editing the file.
Each line of the text.dat
is limited to 255 characters (including comments), while each text string defined in the text.dat
file has a maximum length of 2000 characters.
Syntax
Each text.dat
string value is defined with a string of ASCII characters between double-quote characters:
"this is an example text.dat string"
Any text after the terminating (ending) double-quote character is ignored when the text.dat
file is parsed by Synchronet. The stock text.dat
file contains helpful numbers and names (comments) after the terminating quotes, but these comments are not actually required.
The content between the double-quotes is mostly just printable ASCII characters, but may also include:
- Ctrl-A codes (e.g. to change the color of the text, if/when supported by the terminal)
- @-codes (e.g. used to perform terminal cursor control or include external content)
- Mmemonics (e.g. prompts with command keys denoted with a
~
character)
The syntax of the characters between the double quotations is identical to the C language printf() format string with one exception: \xxx where x are digits (0-9) represents a decimal number, not an octal number. The range is 0 to 255. If you wish to set a background color using \1 for the Ctrl-A code, you may need to pad the attribute number with zeroes. For example; to set the background to blue, you might try to use the sequence “\14” which won't work. You could either embed the actual Ctrl-A character or use “\0014”.
Escape Sequences
Sequences | Explanation |
---|---|
\\ | Backslash ('\') character |
\? | Question Mark (not normally necessary) |
\ ' | Single Quotation Mark |
\“ | Double Quotation Mark |
\xXX | Embedded character in hexadecimal notation (\x00 through \xFF ) |
\nnn | Embedded character in decimal notation (\000 through \255 ) |
\r | Carriage Return (ASCII 13) character |
\n | Line-feed (ASCII 10) character |
\t | Horizontal Tab (ASCII 9) character |
\b | Backspace (ASCII 8) character |
\a | Alarm/bell (ASCII 7) character |
\f | Form-feed (ASCII 12) character |
\v | Vertical Tab (ASCII 11) character |
See Also: Escape_sequences_in_C
To continue a text string onto the next line of the text.dat
file (e.g. to creating long text strings without using long lines), place a backslash ('\') character immediately after the terminating double-quote character of each line, except for the last.
The order of the % specifiers (if they exist) in a text.dat
line cannot be
altered. The display of %s specifiers can be suppressed by changing the %s
to
%.0s
. There are advanced Ctrl-A codes that may also be used for the suppression of text sent to users with an insufficient security level or lacking a security flag.
You can suppress the display of an entire text.dat
line by simply
setting the text to a blank string (”“
).
Mnemonics
Some of the text.dat
strings have characters preceded by a tilde ('~'). These strings
are referred to as mnemonics. The tilde precedes a character that is to be
highlighted for users supporting ANSI and enclosed in parenthesis for non-ANSI
users. Mnemonics are usually used for prompt strings that contain the valid key commands.
The colors to use for the highlighted characters, normal characters, and the
command character are specified in the ctrl/attr.cfg
file.
@-Codes
So-called @-codes may be used in many text.dat
lines. With the use of the MENU
, TYPE
, INCLUDE
, EXEC
, and EXEC_XTRN
@-codes, the text.dat may be enhanced with externally-loaded and potentially dynamically-changing content.
Exception: For security reasons, text.dat
lines that contain %-specifiers may not also include @-codes.
Customization
Knowledge of the C programming language may be very helpful in producing the desired results. If all you want to do is change colors of a certain text line, take care not to disturb the arrangement of the other characters on the line. Ctrl-A codes can be preceded by an embedded actual Ctrl-A (ASCII 0x01) character or by a '\1' (the C printf() escape sequence representing a Ctrl-A character).
Customization Methods
There are multiple ways to customize the contents of the text.dat
file:
- Edit the
text.dat
file directly (e.g. using a text editor, but do this with care, see above) - Use the Baja
REPLACE_TEXT
or JavaScriptbbs.replace_text
function to replace a single line, programmatically (e.g. in a login/logon script or command-shell) - Use the Baja
LOAD_TEXT
or JavaScriptbbs.load_text
function to load an alternativetext.dat
file (e.g. in a login/logon script or command-shell)
Note: The default (US-English) values of all text.dat
strings are hard-coded into Synchronet (e.g. sbbs.dll
or libsbbs.so
) so if any lines are missing from your text.dat
file or the file itself is missing, the default values will be automatically used.
WARNING
Make a backup of the text.dat
file before you edit it. If you damage the file
syntax when editing it, Synchronet may execute erroneously or even fail to
initialize.
Suppressing Questions
Most yes/no type prompts in the text.dat
have names/descriptions that end in a 'Q' (for “Question”). Examples:
- AnonymousQ
- DeleteMailQ
- DeletePostQ
- AreYouSureQ
- LogOffQ
These questions may be suppressed (never asked of the user) by changing the corresponding text value to a blank string (i.e. ”“
). When suppressed, the default answer to the question will be assumed. The default answer may be “Yes” or “No”, depending on the context of the question being asked of the user.
See Also
- CTRL Directory