MKLOCALE(1)                OpenBSD Reference Manual                MKLOCALE(1)

NAME
     mklocale - make LC_CTYPE locale files

SYNOPSIS
     mklocale [-d] [src-file] language/LC_CTYPE
     mklocale [-d] -o language/LC_CTYPE src-file

DESCRIPTION
     The mklocale utility reads an LC_CTYPE source file from standard input
     and produces an LC_CTYPE binary file on standard output suitable for
     placement in /usr/share/locale/<language>/LC_CTYPE.

     The format of src-file is quite simple: it consists of a series of lines
     which start with a keyword and have associated data following.  C-style
     comments are used to place comments in the file.

     The following options are available:

     -d      Turns on debugging messages.

     -o      Specify an output file.

     Besides the keywords which will be listed below, the following are valid
     tokens in src-file:

     RUNE     A RUNE may be any of the following:

              'x'          The ASCII character x.

              '\x'         The ANSI C character \x where \x is one of \a, \b,
                           \f, \n, \r, \t, or \v.

              0x[0-9a-z]*  A hexadecimal number representing a rune code.

              0[0-7]*      An octal number representing a rune code.

              [1-9][0-9]*  A decimal number representing a rune code.

     STRING   A string enclosed in double quotes (").

     THRU     Either `...' or `-'.  Used to indicate ranges.

     literal  The follow characters are taken literally:

              < | ( | [   Used to start a mapping.  All are equivalent.
              > | ) | ]   Used to end a mapping.  All are equivalent.
              :           Used as a delimiter in mappings.

     Key words which should only appear once are:

     ENCODING   Followed by a STRING which indicates the encoding mechanism to
                be used for this locale.  The current encodings are:

                NONE  No translation and the default.

                UTF2  Universal character set Transformation Format adopted
                      from Plan 9 from Bell Labs.

                EUC   EUC encoding as used by several vendors of UNIX systems.

     VARIABLE   This keyword must be followed by a single tab or space charac-
                ter, after which encoding specific data is placed.  Currently
                only the EUC encoding requires variable data.

     INVALID    A single RUNE follows and is used as the invalid rune for this
                locale.

     The following keywords may appear multiple times and have the following
     format for data:

           <RUNE1 RUNE2>                 RUNE1 is mapped to RUNE2.

           <RUNE1 THRU RUNEn: RUNE2>     Runes RUNE1 through RUNEn are mapped
                                         to RUNE2 through RUNE2

     MAPLOWER   Defines the tolower mappings.  RUNE2 is the lower case repre-
                sentation of RUNE1.

     MAPUPPER   Defines the toupper mappings.  RUNE2 is the upper case repre-
                sentation of RUNE1.

     TODIGIT    Defines a map from runes to their digit value.  RUNE2 is the
                integer value represented by RUNE1.  For example, the ASCII
                character `0' would map to the decimal value 0.  Only values
                up to 255 are allowed.

     The following keywords may appear multiple times and have the following
     format for data:

     RUNE              This rune has the property defined by the keyword.

     RUNE1 THRU RUNEn  All the runes between and including RUNE1 and RUNEn
                       have the property defined by the keyword.

     ALPHA      Defines runes which are alphabetic, printable, and graphic.

     CONTROL    Defines runes which are control characters.

     DIGIT      Defines runes which are decimal digits, printable, and graph-
                ic.

     GRAPH      Defines runes which are graphic and printable.

     LOWER      Defines runes which are lower case, printable, and graphic.

     PUNCT      Defines runes which are punctuation, printable, and graphic.

     SPACE      Defines runes which are spaces.

     UPPER      Defines runes which are upper case, printable, and graphic.

     XDIGIT     Defines runes which are hexadecimal digits, printable, and
                graphic.

     BLANK      Defines runes which are blank.

     PRINT      Defines runes which are printable.

     IDEOGRAM   Defines runes which are ideograms, printable, and graphic.

     SPECIAL    Defines runes which are special characters, printable, and
                graphic.

     PHONOGRAM  Defines runes which are phonograms, printable, and graphic.

     SWIDTHn    Defines runes with specific glyph width.  n takes 0 to 3.

     CHARSET    Controls character set for subsequent runes.

SEE ALSO
     setlocale(3)

HISTORY
     The mklocale utility first appeared in 4.4BSD.

BUGS
     The mklocale utility is overly simplistic.

     We should switch to localedef and its file format, which is more stan-
     dard.

OpenBSD 4.7                      May 31, 2007                                3
