Merge from vendor branch OPENSSH:
[dragonfly.git] / usr.bin / mklocale / mklocale.1
1 .\" Copyright (c) 1993, 1994
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" This code is derived from software contributed to Berkeley by
5 .\" Paul Borman at Krystal Technologies.
6 .\"
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
9 .\" are met:
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\"    notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\"    notice, this list of conditions and the following disclaimer in the
14 .\"    documentation and/or other materials provided with the distribution.
15 .\" 3. All advertising materials mentioning features or use of this software
16 .\"    must display the following acknowledgement:
17 .\"     This product includes software developed by the University of
18 .\"     California, Berkeley and its contributors.
19 .\" 4. Neither the name of the University nor the names of its contributors
20 .\"    may be used to endorse or promote products derived from this software
21 .\"    without specific prior written permission.
22 .\"
23 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 .\" SUCH DAMAGE.
34 .\"
35 .\"     @(#)mklocale.1  8.2 (Berkeley) 4/18/94
36 .\" $FreeBSD: src/usr.bin/mklocale/mklocale.1,v 1.7.2.5 2003/02/24 23:04:39 trhodes Exp $
37 .\" $DragonFly: src/usr.bin/mklocale/mklocale.1,v 1.2 2003/06/17 04:29:29 dillon Exp $
38 .\"
39 .Dd April 18, 1994
40 .Dt MKLOCALE 1
41 .Os
42 .Sh NAME
43 .Nm mklocale
44 .Nd make LC_CTYPE locale files
45 .Sh SYNOPSIS
46 .Nm
47 .Op Fl d
48 .Ar "< src-file"
49 .Ar "> language/LC_CTYPE"
50 .Nm
51 .Op Fl d
52 .Fl o
53 .Ar language/LC_CTYPE
54 .Ar src-file
55 .Sh DESCRIPTION
56 The
57 .Nm
58 utility reads a
59 .Dv LC_CTYPE
60 source file from standard input and produces a
61 .Dv LC_CTYPE
62 binary file on standard output suitable for placement in
63 .Pa /usr/share/locale/ Ns Ar language Ns Pa /LC_CTYPE .
64 .Pp
65 The format of
66 .Ar src-file
67 is quite simple.
68 It consists of a series of lines which start with a keyword and have
69 associated data following.  C style comments are used
70 to place comments in the file.
71 .Pp
72 Following options are available:
73 .Bl -tag -width indent
74 .It Fl d
75 Turns on debugging messages.
76 .It Fl o
77 Specify output file.
78 .El
79 .Pp
80 Besides the keywords which will be listed below,
81 the following are valid tokens in
82 .Ar src-file :
83 .Bl -tag -width ".Ar literal"
84 .It Dv RUNE
85 A
86 .Dv RUNE
87 may be any of the following:
88 .Bl -tag -width ".Ar 0x[0-9a-z]*"
89 .It Ar 'x'
90 The ASCII character
91 .Ar x .
92 .It Ar '\ex'
93 The ANSI C character
94 .Ar \ex
95 where
96 .Ar \ex
97 is one of
98 .Dv \ea ,
99 .Dv \eb ,
100 .Dv \ef ,
101 .Dv \en ,
102 .Dv \er ,
103 .Dv \et ,
104 or
105 .Dv \ev .
106 .It Ar 0x[0-9a-z]*
107 A hexadecimal number representing a rune code.
108 .It Ar 0[0-7]*
109 An octal number representing a rune code.
110 .It Ar [1-9][0-9]*
111 A decimal number representing a rune code.
112 .El
113 .It Dv STRING
114 A string enclosed in double quotes (").
115 .It Dv THRU
116 Either
117 .Dv ...
118 or
119 .Dv - .
120 Used to indicate ranges.
121 .It Ar literal
122 The follow characters are taken literally:
123 .Bl -tag -width ".Dv <\|\|(\|\|["
124 .It Dv "<\|(\|["
125 Used to start a mapping.  All are equivalent.
126 .It Dv ">\|\^)\|]"
127 Used to end a mapping.  All are equivalent.
128 .It Dv :
129 Used as a delimiter in mappings.
130 .El
131 .El
132 .Pp
133 Key words which should only appear once are:
134 .Bl -tag -width PHONOGRAM
135 .It Dv ENCODING
136 Followed by a
137 .Dv STRING
138 which indicates the encoding mechanism to be used for this locale.
139 The current encodings are:
140 .Bl -tag -width NONE
141 .It Dv NONE
142 No translation and the default.
143 .It Dv UTF2
144 .Dv "Universal character set Transformation Format"
145 adopted from
146 .Tn "Plan 9 from Bell Labs" .
147 This is the preferred encoding.
148 .It Dv EUC
149 .Dv EUC
150 encoding as used by several
151 vendors of
152 .Ux
153 systems.
154 .El
155 .It Dv VARIABLE
156 This keyword must be followed by a single tab or space character,
157 after which encoding specific data is placed.
158 Currently only the
159 .Dv "EUC"
160 encoding requires variable data.
161 See
162 .Xr euc 4
163 for further details.
164 .It Dv INVALID
165 A single
166 .Dv RUNE
167 follows and is used as the invalid rune for this locale.
168 .El
169 .Pp
170 The following keywords may appear multiple times and have the following
171 format for data:
172 .Bl -tag -width ".Dv <RUNE1 THRU RUNEn : RUNE2>" -offset indent
173 .It Dv <RUNE1 RUNE2>
174 .Dv RUNE1
175 is mapped to
176 .Dv RUNE2 .
177 .It Dv <RUNE1 THRU RUNEn : RUNE2>
178 Runes
179 .Dv RUNE1
180 through
181 .Dv RUNEn
182 are mapped to
183 .Dv RUNE2
184 through
185 .Dv RUNE2
186 + n-1.
187 .El
188 .Bl -tag -width ".Dv PHONOGRAM"
189 .It Dv MAPLOWER
190 Defines the tolower mappings.
191 .Dv RUNE2
192 is the lower case representation of
193 .Dv RUNE1 .
194 .It Dv MAPUPPER
195 Defines the toupper mappings.
196 .Dv RUNE2
197 is the upper case representation of
198 .Dv RUNE1 .
199 .It Dv TODIGIT
200 Defines a map from runes to their digit value.
201 .Dv RUNE2
202 is the integer value represented  by
203 .Dv RUNE1 .
204 For example, the ASCII character
205 .Ql 0
206 would map to the decimal value 0.
207 Only values up to 255
208 are allowed.
209 .El
210 .Pp
211 The following keywords may appear multiple times and have the following
212 format for data:
213 .Bl -tag -width ".Dv RUNE1 THRU RUNEn" -offset indent
214 .It Dv RUNE
215 This rune has the property defined by the keyword.
216 .It Dv "RUNE1 THRU RUNEn"
217 All the runes between and including
218 .Dv RUNE1
219 and
220 .Dv RUNEn
221 have the property defined by the keyword.
222 .El
223 .Bl -tag -width ".Dv PHONOGRAM"
224 .It Dv ALPHA
225 Defines runes which are alphabetic, printable and graphic.
226 .It Dv CONTROL
227 Defines runes which are control characters.
228 .It Dv DIGIT
229 Defines runes which are decimal digits, printable and graphic.
230 .It Dv GRAPH
231 Defines runes which are graphic and printable.
232 .It Dv LOWER
233 Defines runes which are lower case, printable and graphic.
234 .It Dv PUNCT
235 Defines runes which are punctuation, printable and graphic.
236 .It Dv SPACE
237 Defines runes which are spaces.
238 .It Dv UPPER
239 Defines runes which are upper case, printable and graphic.
240 .It Dv XDIGIT
241 Defines runes which are hexadecimal digits, printable and graphic.
242 .It Dv BLANK
243 Defines runes which are blank.
244 .It Dv PRINT
245 Defines runes which are printable.
246 .It Dv IDEOGRAM
247 Defines runes which are ideograms, printable and graphic.
248 .It Dv SPECIAL
249 Defines runes which are special characters, printable and graphic.
250 .It Dv PHONOGRAM
251 Defines runes which are phonograms, printable and graphic.
252 .El
253 .Sh SEE ALSO
254 .Xr colldef 1 ,
255 .Xr mbrune 3 ,
256 .Xr rune 3 ,
257 .Xr setlocale 3 ,
258 .Xr euc 4 ,
259 .Xr utf2 4
260 .Sh BUGS
261 The
262 .Nm
263 utility is overly simplistic.
264 .Sh HISTORY
265 The
266 .Nm
267 utility first appeared in
268 .Bx 4.4 .