Print this page
Garrett's man page edits.
   1 '\" te
   2 .\"
   3 .\" This file and its contents are supplied under the terms of the
   4 .\" Common Development and Distribution License ("CDDL"), version 1.0.
   5 .\" You may only use this file in accordance with the terms of version
   6 .\" 1.0 of the CDDL.
   7 .\"
   8 .\" A full copy of the text of the CDDL should have accompanied this
   9 .\" source.  A copy of the CDDL is also available via the Internet at
  10 .\" http://www.illumos.org/license/CDDL.
  11 .\"
  12 .\"
  13 .\" Copyright (c) 2014 Joyent, Inc.  All rights reserved.

  14 .\"
  15 .TH NEWLOCALE 3C "Jun 11, 2014"
  16 
  17 .SH NAME
  18 
  19 duplocale, freelocale, newlocale \- create, duplicate, and destroy locale objects
  20 
  21 .SH SYNOPSIS
  22 
  23 .LP
  24 .nf
  25 #include <locale.h>
  26 
  27 .BI "locale_t newlocale(int " category_mask, " const char *" locale,
  28 .BI "    locale_t " base );

  29 .LP
  30 .BI "locale_t duplocale(locale_t " loc );


  31 .LP
  32 .BI "void freelocale(locale_t " loc );
  33 

  34 .SH DESCRIPTION
  35 .LP
  36 These functions manipulate locale objects that can be used
  37 .BR uselocale (3C)
  38 and functions that take arguments of type
  39 .BR locale_t .
  40 
  41 .LP
  42 The function
  43 .I newlocale
  44 can be used to create a new locale object. It can also be used to modify an
  45 existing locale object, the new locale object will be a replacement for the
  46 modified locale object. To create a new locale, the argument
  47 .I base
  48 should be passed the special argument
  49 .RB ( locale_t )0.
  50 This will use a copy of the current global locale as a starting point. To modify
  51 an existing locale object, it should be passed in as the argument
  52 .IR base .
  53 The new locale object is constructed by taking the categories specified in
  54 .I category_mask
  55 from the locale specified by the string
  56 .IR locale ,
  57 and filling in the remaining categories from the locale
  58 .IR base .
  59 When
  60 .B newlocale
  61 returns, callers must no longer use
  62 .IR base
  63 and assume that
  64 .BR freelocale (3C)
  65 has been called on it. In addition to locales defined on the system, the
  66 following three locales may always be passed in as the string
  67 .IR locale :
  68 
  69 .sp
  70 .ne 2
  71 .na
  72 "C"
  73 .ad
  74 .sp .6
  75 .RS 4n
  76 Specifies the traditional UNIX system behavior.
  77 .RE
  78 
  79 .sp
  80 .ne 2
  81 .na
  82 "POSIX"
  83 .ad
  84 .sp .6
  85 .RS 4n
  86 An alternate name fo the locale "C".
  87 .RE
  88 
  89 .sp
  90 .ne 2
  91 .na
  92 ""
  93 .ad
  94 .sp .6
  95 .RS 4n
  96 Indicates that the locale should be processed based in the values in the
  97 environment. See
  98 .BR setlocale "(3C) and " environ (5)


  99 for more information.
 100 .RE
 101 
 102 
 103 
 104 .LP
 105 The value of
 106 .I category_mask
 107 is a bitwise-inclusive or of the following macros which correspond to categories
 108 as defined in
 109 .BR locale "(5) and " environ" (5):
 110 
 111 .sp
 112 .ne 2
 113 .na
 114 LC_CTYPE_MASK
 115 .ad
 116 .sp .6
 117 .RS 4n
 118 Character classification and case conversion.
 119 .RE
 120 
 121 .sp
 122 .ne 2
 123 .na
 124 LC_NUMERIC_MASK
 125 .ad
 126 .sp .6
 127 .RS 4n
 128 Numeric formatting.
 129 .RE
 130 
 131 .sp
 132 .ne 2
 133 .na
 134 LC_TIME_MASK
 135 .ad
 136 .sp .6
 137 .RS 4n
 138 Date and time formatting.
 139 .RE
 140 
 141 .sp
 142 .ne 2
 143 .na
 144 LC_COLLATE_MASK
 145 .ad
 146 .sp .6
 147 .RS 4n
 148 Collation order.
 149 .RE
 150 
 151 .sp
 152 .ne 2
 153 .na
 154 LC_MONETARY_MASK
 155 .ad
 156 .sp .6
 157 .RS 4n
 158 Monetary formating.
 159 .RE
 160 
 161 .sp
 162 .ne 2
 163 .na
 164 LC_MESSAGES_MASK
 165 .ad
 166 .sp .6
 167 .RS 4n
 168 Formats of informative and diagnostic messages and interactive responses.
 169 .RE
 170 
 171 .sp
 172 .ne 2
 173 .na
 174 LC_ALL_MASK
 175 .ad
 176 .sp .6
 177 .RS 4n
 178 Instructs that all the categories defined above, be used.
 179 .RE
 180 
 181 .LP
 182 The function
 183 .B duplocale()
 184 duplicates the locale object specified by
 185 .IR loc .
 186 If the locale object passed is
 187 .BR LC_GLOBAL_LOCALE ,
 188 .B duplocale()
 189 creates a copy of the current global locale as defined through calls to
 190 .BR setlocale (3C).
 191 
 192 .LP
 193 The function
 194 .B freelocale()
 195 removes and releases all resources associated with the locale object
 196 .IR loc .
 197 Programs must not call
 198 .B freelocale()
 199 on
 200 .BR LC_GLOBAL_LOCALE .
 201 
 202 .SH RETURN VALUES
 203 
 204 On success, the functions
 205 .B newlocale()
 206 and
 207 .B duplocale()
 208 return a new locale object that can be used with functions that take a
 209 .BR locale_t .
 210 Locale objects created this way should be freed with
 211 .BR freelocale() .
 212 On error, the functions
 213 .B newlocale()
 214 and
 215 .B duplocale()
 216 return
 217 .BR (locale_t) 0
 218 and
 219 .B errno
 220 is set to indicate the error. The
 221 .B freelocale()
 222 function does not set
 223 .B errno.
 224 
 225 .SH ERRORS
 226 .LP
 227 The
 228 .B newlocale()
 229 and
 230 .B duplocale()
 231 functions will fail if:
 232 .sp
 233 .ne 2
 234 .na
 235 .B ENOMEM
 236 .ad
 237 .RS 10n
 238 Insufficient memory was available to create the locale object or to load the
 239 requested locale data.
 240 .RE
 241 
 242 .LP
 243 The
 244 .B newlocale()
 245 function will fail if:
 246 .sp
 247 .ne 2
 248 .na
 249 .B EINVAL
 250 .ad
 251 .RS 10n
 252 An unknown bit is specified in
 253 .IR category_mask .
 254 .RE
 255 .sp
 256 .ne 2
 257 .na
 258 .B ENOENT
 259 .ad
 260 .RS 10n
 261 Locale data was not found for a category specified in
 262 .IR category_mask .
 263 .RE
 264 
 265 .SH ATTRIBUTES
 266 .sp
 267 .TS
 268 box;
 269 c | c
 270 l | l .
 271 ATTRIBUTE TYPE  ATTRIBUTE VALUE
 272 _
 273 Interface Stability     Standard
 274 _
 275 MT-Level        Safe
 276 .TE
 277 
 278 .SH SEE ALSO
 279 .BR locale (1),
 280 .BR setlocale (3C),
 281 .BR uselocale (3C),
 282 .BR environ (5),
 283 .BR locale (5)
   1 '\" te
   2 .\"
   3 .\" This file and its contents are supplied under the terms of the
   4 .\" Common Development and Distribution License ("CDDL"), version 1.0.
   5 .\" You may only use this file in accordance with the terms of version
   6 .\" 1.0 of the CDDL.
   7 .\"
   8 .\" A full copy of the text of the CDDL should have accompanied this
   9 .\" source.  A copy of the CDDL is also available via the Internet at
  10 .\" http://www.illumos.org/license/CDDL.
  11 .\"
  12 .\"
  13 .\" Copyright (c) 2014 Joyent, Inc.  All rights reserved.
  14 .\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
  15 .\"
  16 .TH NEWLOCALE 3C "Jun 23, 2014"

  17 .SH NAME

  18 duplocale, freelocale, newlocale \- create, duplicate, and destroy locale objects

  19 .SH SYNOPSIS

  20 .LP
  21 .nf
  22 #include <locale.h>
  23 
  24 \fBlocale_t\fR \fBnewlocale\fR(\fBint\fR \fIcategory_mask\fR, \fBconst char *\fR \fIlocale\fR,
  25     \fBlocale_t\fR \fIbase\fR);
  26 .fi
  27 .LP
  28 .nf
  29 \fBlocale_t\fR \fBduplocale\fR(\fBlocale_t\fR \fIloc\fR);
  30 .fi
  31 .LP
  32 .nf
  33 \fBvoid\fR \fBfreelocale\fR(\fBlocale_t\fR \fIloc\fR);
  34 .fi
  35 .SH DESCRIPTION
  36 .LP
  37 These functions manipulate locale objects that can be used
  38 .BR uselocale (3C)
  39 and functions that take arguments of type
  40 .BR locale_t .

  41 .LP
  42 The function
  43 .B newlocale()
  44 can be used to create a new locale object. It can also be used to modify an
  45 existing locale object, the new locale object will be a replacement for the
  46 modified locale object. To create a new locale, the argument
  47 .I base
  48 should be passed the special argument
  49 .RB ( locale_t )0.
  50 This will use a copy of the current global locale as a starting point. To modify
  51 an existing locale object, it should be passed in as the argument
  52 .IR base .
  53 The new locale object is constructed by taking the categories specified in
  54 .I category_mask
  55 from the locale specified by the string
  56 .IR locale ,
  57 and filling in the remaining categories from the locale
  58 .IR base .
  59 When
  60 .B newlocale()
  61 returns, callers must no longer use
  62 .IR base
  63 and assume that
  64 .BR freelocale (3C)
  65 has been called on it. In addition to locales defined on the system, the
  66 following three locales may always be passed in as the string
  67 .IR locale :
  68 .TP



  69 "C"



  70 Specifies the traditional UNIX system behavior.
  71 .TP




  72 "POSIX"



  73 An alternate name fo the locale "C".
  74 .TP




  75 ""



  76 Indicates that the locale should be processed based in the values in the
  77 environment. See
  78 .BR setlocale (3C)
  79 and 
  80 .BR environ (5)
  81 for more information.




  82 .LP
  83 The value of
  84 .I category_mask
  85 is a bitwise-inclusive or of the following macros which correspond to categories
  86 as defined in
  87 .BR locale (5)
  88 and
  89 .BR environ (5):
  90 .TP
  91 .B LC_CTYPE_MASK




  92 Character classification and case conversion.
  93 .TP
  94 .B LC_NUMERIC_MASK







  95 Numeric formatting.
  96 .TP
  97 .B LC_TIME_MASK







  98 Date and time formatting.
  99 .TP
 100 .B LC_COLLATE_MASK







 101 Collation order.
 102 .TP
 103 .B LC_MONETARY_MASK
 104 Monetary formatting.
 105 .TP
 106 .B LC_MESSAGES_MASK














 107 Formats of informative and diagnostic messages and interactive responses.
 108 .TP
 109 .B LC_ALL_MASK
 110 Mask of all categories.









 111 .LP
 112 The function
 113 .B duplocale()
 114 duplicates the locale object specified by
 115 .IR loc .
 116 If the locale object passed is
 117 .BR LC_GLOBAL_LOCALE ,
 118 .B duplocale()
 119 creates a copy of the current global locale as defined through calls to
 120 .BR setlocale (3C).

 121 .LP
 122 The function
 123 .B freelocale()
 124 removes and releases all resources associated with the locale object
 125 .IR loc .
 126 Programs must not call
 127 .B freelocale()
 128 on
 129 .BR LC_GLOBAL_LOCALE .

 130 .SH RETURN VALUES
 131 .LP
 132 On success, the functions
 133 .B newlocale()
 134 and
 135 .B duplocale()
 136 return a new locale object that can be used with functions that take a
 137 .BR locale_t .
 138 Locale objects created this way should be freed with
 139 .BR freelocale() .
 140 On error, the functions
 141 .B newlocale()
 142 and
 143 .B duplocale()
 144 return
 145 .BR (locale_t) 0
 146 and
 147 .B errno
 148 is set to indicate the error. The
 149 .B freelocale()
 150 function does not set
 151 .B errno.

 152 .SH ERRORS
 153 .LP
 154 The
 155 .B newlocale()
 156 and
 157 .B duplocale()
 158 functions will fail if:
 159 .TP


 160 .B ENOMEM


 161 Insufficient memory was available to create the locale object or to load the
 162 requested locale data.


 163 .LP
 164 The
 165 .B newlocale()
 166 function will fail if:
 167 .TP


 168 .B EINVAL


 169 An unknown bit is specified in
 170 .IR category_mask .
 171 .TP



 172 .B ENOENT


 173 Locale data was not found for a category specified in



 174 .SH ATTRIBUTES

 175 .TS
 176 box;
 177 c | c
 178 l | l .
 179 ATTRIBUTE TYPE  ATTRIBUTE VALUE
 180 _
 181 Interface Stability     Standard
 182 _
 183 MT-Level        Safe
 184 .TE
 185 
 186 .SH SEE ALSO
 187 .BR locale (1),
 188 .BR setlocale (3C),
 189 .BR uselocale (3C),
 190 .BR environ (5),
 191 .BR locale (5)