-Description of interbase.msg, msg.gdb and codes.e- 
msgs-overview.txt version 1.0.3 last revised Dec 27, 2000

The latest version of this file is available at
http://sourceforge.net/docman/display_doc.php?docid=347&group_id=9028

Please send comments and corrections to
rfm@cruzers.com or the ib-build mailing list at mers.com
the ib-build mailing list is also available as a newsgroup at
news.mers.com:mers.interbase.build

As most of you are probably aware, interbase error and warning
messages are shipped to the user in the file interbase.msg.

interbase.msg is the product of a flexable and powerful
system for storing unique messages, based on an RDBMS system
called InterBase ;-)

This system is built around a database known as msg.gdb, and
occasionally by the alias master_msg_db and maybe even msgs.gdb.
There are several tools that query and manipulate this database.
Some of them are used in the build process and others are
invoked directly by the developer to modify the messages database.

Message files are normally backwards compatible (that is a 
6.x message file could be used by a 5.x client or server)
Of course, if a 6.x server were to use a 5.x message file,
some messages would be missing. 
The message system also contains some support for localization,
but it has not been used for a while.

The messages tools:
jrd/codes.e:
        generates header files which map identifiers to
numerical values well as some boilerplate constants.
These header files are generated for several languages.
Thus, codes.e needs to be run whenever messages have been
added to the database, before building interbase again.
msgs/build_file.e
        generate the interbase.msg file
msgs/check_msgs.e
        decide whether the file needs to be built.
msgs/enter_msgs.e
        add new message(s) to the database
msgs/modify_msgs.e
        modify the text of existing messages
msgs/change_msgs.e
        change text and addtional attributes of the message

One important thing to remember about the messages tools
is that when built on windows, the database name is hardcoded
in (it is constructed by expand_dbs.bat) and thus a message tool
compiled on one machine can only be used on another
if the database is available through the same path.
