MKCTYPE(1)

NAME
mkctype - create character classification file

SYNOPSIS
mkctype [ -o output_file_name ] [ -c ctype_file ] [ filename ]

DESCRIPTION
mkctype is used to create binary file, describing character classification for setlocale(3). filename is the name of input file. If none given, stdin used.

OPTIONS

-o output_file_name
    Write the output on output_file_name; otherwise, write the output on a file named LC_CTYPE.

-c ctype_file
    Write C language source of the tables on ctype_file.

INPUT FILE FORMAT
Empty lines and lines beginning with # are ignored. The backslash character, \, is used for continuation. No characters are permitted after it. The following statements are recognized:

codeset codename

    Codename is the name of codeset. This statement is required.

iscntrl character_codes
isspace character_codes
isblank character_codes
isnograph character_codes
ispunct character_codes
isdigit character_codes
isxdigit character_codes
isupper character_codes
islower character_codes

    Character_codes for iscntrl, isspace, isblank, isnograph, ispunct, isdigit, isxdigit, isupper, islower shell be represented as list of the hexadecimal or octal constants separated by white space. For example, letter A can be represented as 0101 or 0x41.

    The dash character (-) with optional white space around it may be used to indicate a range of codes.

ul code_pairs

    The relationship between upper and lower case letters is expressed as list of pairs of octal or hexadecimal constants:

    	<upper-case lower-case>

EXAMPLE
codeset koi8-r
# Lower half of table: ASCII
iscntrl		0x00-0x1f 0x7f
isspace		0x09-0x0d 0x20
isblank		0x09 0x20
isnograph	0x20
ispunct		0x21-0x2f 0x3a-0x40 0x5b-0x60 0x7b-0x7e
isdigit		0x30-0x39
isxdigit	0x30-0x39 0x41-0x46 0x61-0x66
isupper		0x41-0x5a
islower		0x61-0x7a
ul		<0x41 0x61> <0x42 0x62> <0x43 0x63> <0x44 0x64> \
		<0x45 0x65> <0x46 0x66> <0x47 0x67> <0x48 0x68> \
		<0x49 0x69> <0x4a 0x6a> <0x4b 0x6b> <0x4c 0x6c> \
		<0x4d 0x6d> <0x4e 0x6e> <0x4f 0x6f> <0x50 0x70> \
		<0x51 0x71> <0x52 0x72> <0x53 0x73> <0x54 0x74> \
		<0x55 0x75> <0x56 0x76> <0x57 0x77> <0x58 0x78> \
		<0x59 0x79> <0x5a 0x7a>
# Upper half of table: KOI8-R
ispunct		0x80-0xa2 0xa4-0xb2 0xb4-0xbf
isupper		0xb3 0xe0-0xff
islower		0xa3 0xc0-0xdf
ul		<0xe0 0xc0> <0xe1 0xc1> <0xe2 0xc2> <0xe3 0xc3> \
		<0xe4 0xc4> <0xe5 0xc5> <0xe6 0xc6> <0xe7 0xc7> \
		<0xe8 0xc8> <0xe9 0xc9> <0xea 0xca> <0xeb 0xcb> \
		<0xec 0xcc> <0xed 0xcd> <0xee 0xce> <0xef 0xcf> \
		<0xf0 0xd0> <0xf1 0xd1> <0xf2 0xd2> <0xf3 0xd3> \
		<0xf4 0xd4> <0xf5 0xd5> <0xf6 0xd6> <0xf7 0xd7> \
		<0xf8 0xd8> <0xf9 0xd9> <0xfa 0xda> <0xfb 0xdb> \
		<0xfc 0xdc> <0xfd 0xdd> <0xfe 0xde> <0xff 0xdf> \
		<0xb3 0xa3>

LIMITATIONS
No support for multibytes.

BUGS
None are know at the moment. If you find any, feel free to fix.

AUTHOR
Nickolay Saukh - <nms@ussr.EU.net>

ACKNOWLEDGEMENTS
Input language of mkctype is based on manual pages of SVR4.0.

FILES
/usr/lib/locale/locale/LC_CTYPE - LC_CTYPE database for locale

SEE ALSO
setlocale(3), ctype(3), mkcollate(1), mkmonetary(1), mknumeric(1), mkresponse(1), mktime(1)