langinfo.h 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  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. #ifndef _LANGINFO_H_
  29. #define _LANGINFO_H_
  30. #include <newlib.h>
  31. #include <sys/config.h>
  32. #include <sys/cdefs.h>
  33. typedef int nl_item;
  34. enum __nl_item
  35. {
  36. /* POSIX and BSD defined items have to stick to the original values
  37. to maintain backward compatibility. */
  38. _NL_CTYPE_CODESET_NAME = 0, /* codeset name */
  39. #define CODESET _NL_CTYPE_CODESET_NAME
  40. D_T_FMT, /* string for formatting date and time */
  41. #define D_T_FMT D_T_FMT
  42. D_FMT, /* date format string */
  43. #define D_FMT D_FMT
  44. T_FMT, /* time format string */
  45. #define T_FMT T_FMT
  46. T_FMT_AMPM, /* a.m. or p.m. time formatting string */
  47. #define T_FMT_AMPM T_FMT_AMPM
  48. AM_STR, /* Ante Meridian affix */
  49. #define AM_STR AM_STR
  50. PM_STR, /* Post Meridian affix */
  51. #define PM_STR PM_STR
  52. /* week day names */
  53. DAY_1,
  54. #define DAY_1 DAY_1
  55. DAY_2,
  56. #define DAY_2 DAY_2
  57. DAY_3,
  58. #define DAY_3 DAY_3
  59. DAY_4,
  60. #define DAY_4 DAY_4
  61. DAY_5,
  62. #define DAY_5 DAY_5
  63. DAY_6,
  64. #define DAY_6 DAY_6
  65. DAY_7,
  66. #define DAY_7 DAY_7
  67. /* abbreviated week day names */
  68. ABDAY_1,
  69. #define ABDAY_1 ABDAY_1
  70. ABDAY_2,
  71. #define ABDAY_2 ABDAY_2
  72. ABDAY_3,
  73. #define ABDAY_3 ABDAY_3
  74. ABDAY_4,
  75. #define ABDAY_4 ABDAY_4
  76. ABDAY_5,
  77. #define ABDAY_5 ABDAY_5
  78. ABDAY_6,
  79. #define ABDAY_6 ABDAY_6
  80. ABDAY_7,
  81. #define ABDAY_7 ABDAY_7
  82. /* month names */
  83. MON_1,
  84. #define MON_1 MON_1
  85. MON_2,
  86. #define MON_2 MON_2
  87. MON_3,
  88. #define MON_3 MON_3
  89. MON_4,
  90. #define MON_4 MON_4
  91. MON_5,
  92. #define MON_5 MON_5
  93. MON_6,
  94. #define MON_6 MON_6
  95. MON_7,
  96. #define MON_7 MON_7
  97. MON_8,
  98. #define MON_8 MON_8
  99. MON_9,
  100. #define MON_9 MON_9
  101. MON_10,
  102. #define MON_10 MON_10
  103. MON_11,
  104. #define MON_11 MON_11
  105. MON_12,
  106. #define MON_12 MON_12
  107. /* abbreviated month names */
  108. ABMON_1,
  109. #define ABMON_1 ABMON_1
  110. ABMON_2,
  111. #define ABMON_2 ABMON_2
  112. ABMON_3,
  113. #define ABMON_3 ABMON_3
  114. ABMON_4,
  115. #define ABMON_4 ABMON_4
  116. ABMON_5,
  117. #define ABMON_5 ABMON_5
  118. ABMON_6,
  119. #define ABMON_6 ABMON_6
  120. ABMON_7,
  121. #define ABMON_7 ABMON_7
  122. ABMON_8,
  123. #define ABMON_8 ABMON_8
  124. ABMON_9,
  125. #define ABMON_9 ABMON_9
  126. ABMON_10,
  127. #define ABMON_10 ABMON_10
  128. ABMON_11,
  129. #define ABMON_11 ABMON_11
  130. ABMON_12,
  131. #define ABMON_12 ABMON_12
  132. ERA, /* era description segments */
  133. #define ERA ERA
  134. ERA_D_FMT, /* era date format string */
  135. #define ERA_D_FMT ERA_D_FMT
  136. ERA_D_T_FMT, /* era date and time format string */
  137. #define ERA_D_T_FMT ERA_D_T_FMT
  138. ERA_T_FMT, /* era time format string */
  139. #define ERA_T_FMT ERA_T_FMT
  140. ALT_DIGITS, /* alternative symbols for digits */
  141. #define ALT_DIGITS ALT_DIGITS
  142. RADIXCHAR, /* radix char */
  143. #define RADIXCHAR RADIXCHAR
  144. THOUSEP, /* separator for thousands */
  145. #define THOUSEP THOUSEP
  146. YESEXPR, /* affirmative response expression */
  147. #define YESEXPR YESEXPR
  148. NOEXPR, /* negative response expression */
  149. #define NOEXPR NOEXPR
  150. YESSTR, /* affirmative response for yes/no queries */
  151. #define YESSTR YESSTR
  152. NOSTR, /* negative response for yes/no queries */
  153. #define NOSTR NOSTR
  154. CRNCYSTR, /* currency symbol */
  155. #define CRNCYSTR CRNCYSTR
  156. D_MD_ORDER, /* month/day order (BSD extension) */
  157. #define D_MD_ORDER D_MD_ORDER
  158. _NL_TIME_DATE_FMT = 84, /* date fmt used by date(1) (GNU extension) */
  159. #define _DATE_FMT _NL_TIME_DATE_FMT
  160. #ifdef __HAVE_LOCALE_INFO__
  161. _NL_CTYPE_MB_CUR_MAX,
  162. _NL_MESSAGES_CODESET,
  163. #ifdef __HAVE_LOCALE_INFO_EXTENDED__
  164. /* NOTE:
  165. Always maintain the order and position of existing entries!
  166. Always append new entry to the list, prior to the definition
  167. of _NL_LOCALE_EXTENDED_LAST_ENTRY. */
  168. _NL_LOCALE_EXTENDED_FIRST_ENTRY,
  169. _NL_CTYPE_OUTDIGITS0_MB,
  170. _NL_CTYPE_OUTDIGITS1_MB,
  171. _NL_CTYPE_OUTDIGITS2_MB,
  172. _NL_CTYPE_OUTDIGITS3_MB,
  173. _NL_CTYPE_OUTDIGITS4_MB,
  174. _NL_CTYPE_OUTDIGITS5_MB,
  175. _NL_CTYPE_OUTDIGITS6_MB,
  176. _NL_CTYPE_OUTDIGITS7_MB,
  177. _NL_CTYPE_OUTDIGITS8_MB,
  178. _NL_CTYPE_OUTDIGITS9_MB,
  179. _NL_CTYPE_OUTDIGITS0_WC,
  180. _NL_CTYPE_OUTDIGITS1_WC,
  181. _NL_CTYPE_OUTDIGITS2_WC,
  182. _NL_CTYPE_OUTDIGITS3_WC,
  183. _NL_CTYPE_OUTDIGITS4_WC,
  184. _NL_CTYPE_OUTDIGITS5_WC,
  185. _NL_CTYPE_OUTDIGITS6_WC,
  186. _NL_CTYPE_OUTDIGITS7_WC,
  187. _NL_CTYPE_OUTDIGITS8_WC,
  188. _NL_CTYPE_OUTDIGITS9_WC,
  189. _NL_TIME_CODESET,
  190. _NL_TIME_WMON_1,
  191. _NL_TIME_WMON_2,
  192. _NL_TIME_WMON_3,
  193. _NL_TIME_WMON_4,
  194. _NL_TIME_WMON_5,
  195. _NL_TIME_WMON_6,
  196. _NL_TIME_WMON_7,
  197. _NL_TIME_WMON_8,
  198. _NL_TIME_WMON_9,
  199. _NL_TIME_WMON_10,
  200. _NL_TIME_WMON_11,
  201. _NL_TIME_WMON_12,
  202. _NL_TIME_WMONTH_1,
  203. _NL_TIME_WMONTH_2,
  204. _NL_TIME_WMONTH_3,
  205. _NL_TIME_WMONTH_4,
  206. _NL_TIME_WMONTH_5,
  207. _NL_TIME_WMONTH_6,
  208. _NL_TIME_WMONTH_7,
  209. _NL_TIME_WMONTH_8,
  210. _NL_TIME_WMONTH_9,
  211. _NL_TIME_WMONTH_10,
  212. _NL_TIME_WMONTH_11,
  213. _NL_TIME_WMONTH_12,
  214. _NL_TIME_WWDAY_1,
  215. _NL_TIME_WWDAY_2,
  216. _NL_TIME_WWDAY_3,
  217. _NL_TIME_WWDAY_4,
  218. _NL_TIME_WWDAY_5,
  219. _NL_TIME_WWDAY_6,
  220. _NL_TIME_WWDAY_7,
  221. _NL_TIME_WWEEKDAY_1,
  222. _NL_TIME_WWEEKDAY_2,
  223. _NL_TIME_WWEEKDAY_3,
  224. _NL_TIME_WWEEKDAY_4,
  225. _NL_TIME_WWEEKDAY_5,
  226. _NL_TIME_WWEEKDAY_6,
  227. _NL_TIME_WWEEKDAY_7,
  228. _NL_TIME_WT_FMT,
  229. _NL_TIME_WD_FMT,
  230. _NL_TIME_WD_T_FMT,
  231. _NL_TIME_WAM_STR,
  232. _NL_TIME_WPM_STR,
  233. _NL_TIME_WDATE_FMT,
  234. _NL_TIME_WT_FMT_AMPM,
  235. _NL_TIME_WERA,
  236. _NL_TIME_WERA_D_FMT,
  237. _NL_TIME_WERA_D_T_FMT,
  238. _NL_TIME_WERA_T_FMT,
  239. _NL_TIME_WALT_DIGITS,
  240. _NL_NUMERIC_CODESET,
  241. _NL_NUMERIC_GROUPING,
  242. _NL_NUMERIC_DECIMAL_POINT_WC,
  243. _NL_NUMERIC_THOUSANDS_SEP_WC,
  244. _NL_MONETARY_INT_CURR_SYMBOL,
  245. _NL_MONETARY_CURRENCY_SYMBOL,
  246. _NL_MONETARY_MON_DECIMAL_POINT,
  247. _NL_MONETARY_MON_THOUSANDS_SEP,
  248. _NL_MONETARY_MON_GROUPING,
  249. _NL_MONETARY_POSITIVE_SIGN,
  250. _NL_MONETARY_NEGATIVE_SIGN,
  251. _NL_MONETARY_INT_FRAC_DIGITS,
  252. _NL_MONETARY_FRAC_DIGITS,
  253. _NL_MONETARY_P_CS_PRECEDES,
  254. _NL_MONETARY_P_SEP_BY_SPACE,
  255. _NL_MONETARY_N_CS_PRECEDES,
  256. _NL_MONETARY_N_SEP_BY_SPACE,
  257. _NL_MONETARY_P_SIGN_POSN,
  258. _NL_MONETARY_N_SIGN_POSN,
  259. _NL_MONETARY_INT_P_CS_PRECEDES,
  260. _NL_MONETARY_INT_P_SEP_BY_SPACE,
  261. _NL_MONETARY_INT_N_CS_PRECEDES,
  262. _NL_MONETARY_INT_N_SEP_BY_SPACE,
  263. _NL_MONETARY_INT_P_SIGN_POSN,
  264. _NL_MONETARY_INT_N_SIGN_POSN,
  265. _NL_MONETARY_CODESET,
  266. _NL_MONETARY_WINT_CURR_SYMBOL,
  267. _NL_MONETARY_WCURRENCY_SYMBOL,
  268. _NL_MONETARY_WMON_DECIMAL_POINT,
  269. _NL_MONETARY_WMON_THOUSANDS_SEP,
  270. _NL_MONETARY_WPOSITIVE_SIGN,
  271. _NL_MONETARY_WNEGATIVE_SIGN,
  272. _NL_MESSAGES_WYESEXPR,
  273. _NL_MESSAGES_WNOEXPR,
  274. _NL_MESSAGES_WYESSTR,
  275. _NL_MESSAGES_WNOSTR,
  276. _NL_COLLATE_CODESET,
  277. /* This MUST be the last entry since it's used to check for an array
  278. index in nl_langinfo(). */
  279. _NL_LOCALE_EXTENDED_LAST_ENTRY
  280. #endif /* __HAVE_LOCALE_INFO_EXTENDED__ */
  281. #endif /* __HAVE_LOCALE_INFO__ */
  282. };
  283. __BEGIN_DECLS
  284. char *nl_langinfo(nl_item);
  285. __END_DECLS
  286. #endif /* !_LANGINFO_H_ */