man mchar_define_charset () - Define a charset.

NAME

mchar_define_charset - Define a charset.

SYNOPSIS

MSymbol mchar_define_charset (const char * name, MPlist * plist)

DESCRIPTION

The mchar_define_charset() function defines a new charset and makes it accessible via a symbol whose name is name. plist specifies parameters of the charset as below:

•
Key is Mmethod, value is a symbol.

The value specifies the method for decoding/encoding code-points in the charset. It must be Moffset, Mmap (default), Munify, Msubset, or Msuperset.

•
Key is Mdimension, value is an integer

The value specifies the dimension of code-points of the charset. It must be 1 (default), 2, 3, or 4.

•
Key is Mmin_range, value is an unsigned integer

The value specifies the minimum range of a code-point, which means that the Nth byte of the value is the minimum Nth byte of code-points of the charset. The default value is 0.

•
Key is Mmax_range, value is an unsigned integer

The value specifies the maximum range of a code-point, which means that the Nth byte of the value is the maximum Nth byte of code-points of the charset. The default value is 0xFF, 0xFFFF, 0xFFFFFF, or 0xFFFFFFFF if the dimension is 1, 2, 3, or 4 respectively.

•
Key is Mmin_code, value is an unsigned integer

The value specifies the minimum code-point of the charset. The default value is the minimum range.

•
Key is Mmax_code, value is an unsigned integer

The value specifies the maximum code-point of the charset. The default value is the maximum range.

•
Key is Mascii_compatible, value is a symbol

The value specifies whether the charset is ASCII compatible or not. If the value is Mnil (default), it is not ASCII compatible, else compatible.

•
Key is Mfinal_byte, value is an integer

The value specifies the final byte of the charset registered in The International Registry. It must be 0 (default) or 32..127. The value 0 means that the charset is not in the registry.

•
Key is Mrevision, value is an integer

The value specifies the revision number of the charset registered in The International Registry. It must be 0..127. If the charset is not in The International Registry, the value is ignored. The value 0 means that the charset has no revision number.

•
Key is Mmin_char, value is an integer

The value specifies the minimum character code of the charset. The default value is 0.

•
Key is Mmapfile, value is an M-text

If the method is Mmap or Munify, a data that contains mapping information is added to the m17n database by calling mdatabase_define() with the value as an argument extra_info, i.e. the value is used as a file name of the data.

Otherwise, this parameter is ignored.

•
Key is Mparents, value is a plist

If the method is Msubset, the value must is a plist of length 1, and the value of the plist must be a symbol representing a parent charset.

If the method is Msuperset, the value must be a plist of length less than 9, and the values of the plist must be symbols representing subset charsets.

Otherwise, this parameter is ignored.

•
Key is Mdefine_coding, value is a symbol

If the dimension of the charset is 1, the value specifies whether or not to define a coding system of the same name whose type is Mcharset. A coding system is defined if the value is not Mnil.

Otherwise, this parameter is ignored.

RETURN VALUE

If the operation was successful, mchar_define_charset() returns a symbol whose name is name. Otherwise it returns Mnil and assigns an error code to the external variable merror_code.

ERRORS

MERROR_CHARSET