1/*- 2 * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD: src/include/langinfo.h,v 1.5 2002/03/23 17:24:53 imp Exp $ 27 */ 28 29#ifndef _LANGINFO_H_ 30#define _LANGINFO_H_ 31 32#include <newlib.h> 33#include <sys/config.h> 34#include <sys/cdefs.h> 35 36typedef int nl_item; 37 38enum __nl_item 39{ 40 /* POSIX and BSD defined items have to stick to the original values 41 to maintain backward compatibility. */ 42 _NL_CTYPE_CODESET_NAME = 0, /* codeset name */ 43#define CODESET _NL_CTYPE_CODESET_NAME 44 D_T_FMT, /* string for formatting date and time */ 45#define D_T_FMT D_T_FMT 46 D_FMT, /* date format string */ 47#define D_FMT D_FMT 48 T_FMT, /* time format string */ 49#define T_FMT T_FMT 50 T_FMT_AMPM, /* a.m. or p.m. time formatting string */ 51#define T_FMT_AMPM T_FMT_AMPM 52 AM_STR, /* Ante Meridian affix */ 53#define AM_STR AM_STR 54 PM_STR, /* Post Meridian affix */ 55#define PM_STR PM_STR 56 57/* week day names */ 58 DAY_1, 59#define DAY_1 DAY_1 60 DAY_2, 61#define DAY_2 DAY_2 62 DAY_3, 63#define DAY_3 DAY_3 64 DAY_4, 65#define DAY_4 DAY_4 66 DAY_5, 67#define DAY_5 DAY_5 68 DAY_6, 69#define DAY_6 DAY_6 70 DAY_7, 71#define DAY_7 DAY_7 72 73/* abbreviated week day names */ 74 ABDAY_1, 75#define ABDAY_1 ABDAY_1 76 ABDAY_2, 77#define ABDAY_2 ABDAY_2 78 ABDAY_3, 79#define ABDAY_3 ABDAY_3 80 ABDAY_4, 81#define ABDAY_4 ABDAY_4 82 ABDAY_5, 83#define ABDAY_5 ABDAY_5 84 ABDAY_6, 85#define ABDAY_6 ABDAY_6 86 ABDAY_7, 87#define ABDAY_7 ABDAY_7 88 89/* month names */ 90 MON_1, 91#define MON_1 MON_1 92 MON_2, 93#define MON_2 MON_2 94 MON_3, 95#define MON_3 MON_3 96 MON_4, 97#define MON_4 MON_4 98 MON_5, 99#define MON_5 MON_5 100 MON_6, 101#define MON_6 MON_6 102 MON_7, 103#define MON_7 MON_7 104 MON_8, 105#define MON_8 MON_8 106 MON_9, 107#define MON_9 MON_9 108 MON_10, 109#define MON_10 MON_10 110 MON_11, 111#define MON_11 MON_11 112 MON_12, 113#define MON_12 MON_12 114 115/* abbreviated month names */ 116 ABMON_1, 117#define ABMON_1 ABMON_1 118 ABMON_2, 119#define ABMON_2 ABMON_2 120 ABMON_3, 121#define ABMON_3 ABMON_3 122 ABMON_4, 123#define ABMON_4 ABMON_4 124 ABMON_5, 125#define ABMON_5 ABMON_5 126 ABMON_6, 127#define ABMON_6 ABMON_6 128 ABMON_7, 129#define ABMON_7 ABMON_7 130 ABMON_8, 131#define ABMON_8 ABMON_8 132 ABMON_9, 133#define ABMON_9 ABMON_9 134 ABMON_10, 135#define ABMON_10 ABMON_10 136 ABMON_11, 137#define ABMON_11 ABMON_11 138 ABMON_12, 139#define ABMON_12 ABMON_12 140 141 ERA, /* era description segments */ 142#define ERA ERA 143 ERA_D_FMT, /* era date format string */ 144#define ERA_D_FMT ERA_D_FMT 145 ERA_D_T_FMT, /* era date and time format string */ 146#define ERA_D_T_FMT ERA_D_T_FMT 147 ERA_T_FMT, /* era time format string */ 148#define ERA_T_FMT ERA_T_FMT 149 ALT_DIGITS, /* alternative symbols for digits */ 150#define ALT_DIGITS ALT_DIGITS 151 152 RADIXCHAR, /* radix char */ 153#define RADIXCHAR RADIXCHAR 154 THOUSEP, /* separator for thousands */ 155#define THOUSEP THOUSEP 156 157 YESEXPR, /* affirmative response expression */ 158#define YESEXPR YESEXPR 159 NOEXPR, /* negative response expression */ 160#define NOEXPR NOEXPR 161 YESSTR, /* affirmative response for yes/no queries */ 162#define YESSTR YESSTR 163 NOSTR, /* negative response for yes/no queries */ 164#define NOSTR NOSTR 165 166 CRNCYSTR, /* currency symbol */ 167#define CRNCYSTR CRNCYSTR 168 169 D_MD_ORDER, /* month/day order (BSD extension) */ 170#define D_MD_ORDER D_MD_ORDER 171 172 _NL_TIME_DATE_FMT = 84, /* date fmt used by date(1) (GNU extension) */ 173#define _DATE_FMT _NL_TIME_DATE_FMT 174 175#ifdef __HAVE_LOCALE_INFO__ 176 _NL_CTYPE_MB_CUR_MAX, 177 _NL_MESSAGES_CODESET, 178 179#ifdef __HAVE_LOCALE_INFO_EXTENDED__ 180 181 /* NOTE: 182 183 Always maintain the order and position of existing entries! 184 Always append new entry to the list, prior to the definition 185 of _NL_LOCALE_EXTENDED_LAST_ENTRY. */ 186 187 _NL_LOCALE_EXTENDED_FIRST_ENTRY, 188 189 _NL_CTYPE_OUTDIGITS0_MB, 190 _NL_CTYPE_OUTDIGITS1_MB, 191 _NL_CTYPE_OUTDIGITS2_MB, 192 _NL_CTYPE_OUTDIGITS3_MB, 193 _NL_CTYPE_OUTDIGITS4_MB, 194 _NL_CTYPE_OUTDIGITS5_MB, 195 _NL_CTYPE_OUTDIGITS6_MB, 196 _NL_CTYPE_OUTDIGITS7_MB, 197 _NL_CTYPE_OUTDIGITS8_MB, 198 _NL_CTYPE_OUTDIGITS9_MB, 199 _NL_CTYPE_OUTDIGITS0_WC, 200 _NL_CTYPE_OUTDIGITS1_WC, 201 _NL_CTYPE_OUTDIGITS2_WC, 202 _NL_CTYPE_OUTDIGITS3_WC, 203 _NL_CTYPE_OUTDIGITS4_WC, 204 _NL_CTYPE_OUTDIGITS5_WC, 205 _NL_CTYPE_OUTDIGITS6_WC, 206 _NL_CTYPE_OUTDIGITS7_WC, 207 _NL_CTYPE_OUTDIGITS8_WC, 208 _NL_CTYPE_OUTDIGITS9_WC, 209 210 _NL_TIME_CODESET, 211 _NL_TIME_WMON_1, 212 _NL_TIME_WMON_2, 213 _NL_TIME_WMON_3, 214 _NL_TIME_WMON_4, 215 _NL_TIME_WMON_5, 216 _NL_TIME_WMON_6, 217 _NL_TIME_WMON_7, 218 _NL_TIME_WMON_8, 219 _NL_TIME_WMON_9, 220 _NL_TIME_WMON_10, 221 _NL_TIME_WMON_11, 222 _NL_TIME_WMON_12, 223 _NL_TIME_WMONTH_1, 224 _NL_TIME_WMONTH_2, 225 _NL_TIME_WMONTH_3, 226 _NL_TIME_WMONTH_4, 227 _NL_TIME_WMONTH_5, 228 _NL_TIME_WMONTH_6, 229 _NL_TIME_WMONTH_7, 230 _NL_TIME_WMONTH_8, 231 _NL_TIME_WMONTH_9, 232 _NL_TIME_WMONTH_10, 233 _NL_TIME_WMONTH_11, 234 _NL_TIME_WMONTH_12, 235 _NL_TIME_WWDAY_1, 236 _NL_TIME_WWDAY_2, 237 _NL_TIME_WWDAY_3, 238 _NL_TIME_WWDAY_4, 239 _NL_TIME_WWDAY_5, 240 _NL_TIME_WWDAY_6, 241 _NL_TIME_WWDAY_7, 242 _NL_TIME_WWEEKDAY_1, 243 _NL_TIME_WWEEKDAY_2, 244 _NL_TIME_WWEEKDAY_3, 245 _NL_TIME_WWEEKDAY_4, 246 _NL_TIME_WWEEKDAY_5, 247 _NL_TIME_WWEEKDAY_6, 248 _NL_TIME_WWEEKDAY_7, 249 _NL_TIME_WT_FMT, 250 _NL_TIME_WD_FMT, 251 _NL_TIME_WD_T_FMT, 252 _NL_TIME_WAM_STR, 253 _NL_TIME_WPM_STR, 254 _NL_TIME_WDATE_FMT, 255 _NL_TIME_WT_FMT_AMPM, 256 _NL_TIME_WERA, 257 _NL_TIME_WERA_D_FMT, 258 _NL_TIME_WERA_D_T_FMT, 259 _NL_TIME_WERA_T_FMT, 260 _NL_TIME_WALT_DIGITS, 261 262 _NL_NUMERIC_CODESET, 263 _NL_NUMERIC_GROUPING, 264 _NL_NUMERIC_DECIMAL_POINT_WC, 265 _NL_NUMERIC_THOUSANDS_SEP_WC, 266 267 _NL_MONETARY_INT_CURR_SYMBOL, 268 _NL_MONETARY_CURRENCY_SYMBOL, 269 _NL_MONETARY_MON_DECIMAL_POINT, 270 _NL_MONETARY_MON_THOUSANDS_SEP, 271 _NL_MONETARY_MON_GROUPING, 272 _NL_MONETARY_POSITIVE_SIGN, 273 _NL_MONETARY_NEGATIVE_SIGN, 274 _NL_MONETARY_INT_FRAC_DIGITS, 275 _NL_MONETARY_FRAC_DIGITS, 276 _NL_MONETARY_P_CS_PRECEDES, 277 _NL_MONETARY_P_SEP_BY_SPACE, 278 _NL_MONETARY_N_CS_PRECEDES, 279 _NL_MONETARY_N_SEP_BY_SPACE, 280 _NL_MONETARY_P_SIGN_POSN, 281 _NL_MONETARY_N_SIGN_POSN, 282 _NL_MONETARY_INT_P_CS_PRECEDES, 283 _NL_MONETARY_INT_P_SEP_BY_SPACE, 284 _NL_MONETARY_INT_N_CS_PRECEDES, 285 _NL_MONETARY_INT_N_SEP_BY_SPACE, 286 _NL_MONETARY_INT_P_SIGN_POSN, 287 _NL_MONETARY_INT_N_SIGN_POSN, 288 _NL_MONETARY_CODESET, 289 _NL_MONETARY_WINT_CURR_SYMBOL, 290 _NL_MONETARY_WCURRENCY_SYMBOL, 291 _NL_MONETARY_WMON_DECIMAL_POINT, 292 _NL_MONETARY_WMON_THOUSANDS_SEP, 293 _NL_MONETARY_WPOSITIVE_SIGN, 294 _NL_MONETARY_WNEGATIVE_SIGN, 295 296 _NL_MESSAGES_WYESEXPR, 297 _NL_MESSAGES_WNOEXPR, 298 _NL_MESSAGES_WYESSTR, 299 _NL_MESSAGES_WNOSTR, 300 301 _NL_COLLATE_CODESET, 302 303 /* This MUST be the last entry since it's used to check for an array 304 index in nl_langinfo(). */ 305 _NL_LOCALE_EXTENDED_LAST_ENTRY 306 307#endif /* __HAVE_LOCALE_INFO_EXTENDED__ */ 308#endif /* __HAVE_LOCALE_INFO__ */ 309 310}; 311 312__BEGIN_DECLS 313char *nl_langinfo(nl_item); 314__END_DECLS 315 316#endif /* !_LANGINFO_H_ */ 317