CHARCONV SNM files
The acronym “SNM” stands for “Standard Names and MIB enums”. SNM files provide the CCnvCharacterSetConverter class’ member functions ConvertStandardNameOfCharacterSetToIdentifierL, ConvertCharacterSetIdentifierToStandardNameL, ConvertMibEnumOfCharacterSetToIdentifierL and ConvertCharacterSetIdentifierToMibEnumL with the information they require.

The information in an SNM file is a mapping between MIB enums and standard internet names and aliases for character sets.
How to use SNM files
SNM files should be placed in the \system\charconv directory of any drive. This will allow CharConv to find them.

If there are multiple SNM files, the effect is the same as having one SNM file made out of all the original source files concatenated and converted as one. In other words, the rules that CharConv uses are the union of all the rules in all the SNM files.

Only BASIC.TXT in the CharConv/data/SNM directory is built by CharConv’s makefiles. One way to get another SNM file built automatically would be to update BASIC_SNM.MK in the CharConv/group directory.
Creating SNM files
SNM files are binary files generated by SNMTOOL from a text file called the source file.

SNMTOOL is called from the command-line as follows:

SNMTOOL <source-file> <output-binary-file>
Testing SNM files
Code to test the generated SNM file can be based on some of CHARCONV’s own test code, e.g. \charconv\test\source\main\TBIG5.*.
The format of the source file
This text files is case insensitive and permits comments beginning with a “#” character and extending to the end of the line. It also permits blank lines and leading and trailing white-space on non-blank lines.

The source file consists of zero, one or more blocks where each block contains the necessary information about a particular character set. The first line of each block is as follows:

CharacterSet 0x<UID-in-hexadecimal>

The remainder of the block consists of zero, one or more lines, each of which is either in the format

StandardName "<standard-name>"

or in the format

MibEnum <MIB-enum-in-decimal>

There may be more than one MibEnum and more than one StandardName line in the file. All of the enums and names thus specified are considered equivalent.