langinfo.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674
  1. /* Access to locale-dependent parameters.
  2. Copyright (C) 1995-2020 Free Software Foundation, Inc.
  3. This file is part of the GNU C Library.
  4. The GNU C Library is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU Lesser General Public
  6. License as published by the Free Software Foundation; either
  7. version 2.1 of the License, or (at your option) any later version.
  8. The GNU C Library is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. Lesser General Public License for more details.
  12. You should have received a copy of the GNU Lesser General Public
  13. License along with the GNU C Library; if not, see
  14. <https://www.gnu.org/licenses/>. */
  15. #ifndef _LANGINFO_H
  16. #define _LANGINFO_H 1
  17. /* Get the type definition. */
  18. #include <nl_types.h>
  19. #include <bits/locale.h> /* Define the __LC_* category names. */
  20. __BEGIN_DECLS
  21. /* Construct an `nl_item' value for `nl_langinfo' from a locale category
  22. (LC_*) and an item index within the category. Some code may depend on
  23. the item values within a category increasing monotonically with the
  24. indices. */
  25. #define _NL_ITEM(category, index) (((category) << 16) | (index))
  26. /* Extract the category and item index from a constructed `nl_item' value. */
  27. #define _NL_ITEM_CATEGORY(item) ((int) (item) >> 16)
  28. #define _NL_ITEM_INDEX(item) ((int) (item) & 0xffff)
  29. /* Enumeration of locale items that can be queried with `nl_langinfo'. */
  30. enum
  31. {
  32. /* LC_TIME category: date and time formatting. */
  33. /* Abbreviated days of the week. */
  34. ABDAY_1 = _NL_ITEM (__LC_TIME, 0), /* Sun */
  35. #define ABDAY_1 ABDAY_1
  36. ABDAY_2,
  37. #define ABDAY_2 ABDAY_2
  38. ABDAY_3,
  39. #define ABDAY_3 ABDAY_3
  40. ABDAY_4,
  41. #define ABDAY_4 ABDAY_4
  42. ABDAY_5,
  43. #define ABDAY_5 ABDAY_5
  44. ABDAY_6,
  45. #define ABDAY_6 ABDAY_6
  46. ABDAY_7,
  47. #define ABDAY_7 ABDAY_7
  48. /* Long-named days of the week. */
  49. DAY_1, /* Sunday */
  50. #define DAY_1 DAY_1
  51. DAY_2, /* Monday */
  52. #define DAY_2 DAY_2
  53. DAY_3, /* Tuesday */
  54. #define DAY_3 DAY_3
  55. DAY_4, /* Wednesday */
  56. #define DAY_4 DAY_4
  57. DAY_5, /* Thursday */
  58. #define DAY_5 DAY_5
  59. DAY_6, /* Friday */
  60. #define DAY_6 DAY_6
  61. DAY_7, /* Saturday */
  62. #define DAY_7 DAY_7
  63. /* Abbreviated month names, in the grammatical form used when the month
  64. is a part of a complete date. */
  65. ABMON_1, /* Jan */
  66. #define ABMON_1 ABMON_1
  67. ABMON_2,
  68. #define ABMON_2 ABMON_2
  69. ABMON_3,
  70. #define ABMON_3 ABMON_3
  71. ABMON_4,
  72. #define ABMON_4 ABMON_4
  73. ABMON_5,
  74. #define ABMON_5 ABMON_5
  75. ABMON_6,
  76. #define ABMON_6 ABMON_6
  77. ABMON_7,
  78. #define ABMON_7 ABMON_7
  79. ABMON_8,
  80. #define ABMON_8 ABMON_8
  81. ABMON_9,
  82. #define ABMON_9 ABMON_9
  83. ABMON_10,
  84. #define ABMON_10 ABMON_10
  85. ABMON_11,
  86. #define ABMON_11 ABMON_11
  87. ABMON_12,
  88. #define ABMON_12 ABMON_12
  89. /* Long month names, in the grammatical form used when the month
  90. is a part of a complete date. */
  91. MON_1, /* January */
  92. #define MON_1 MON_1
  93. MON_2,
  94. #define MON_2 MON_2
  95. MON_3,
  96. #define MON_3 MON_3
  97. MON_4,
  98. #define MON_4 MON_4
  99. MON_5,
  100. #define MON_5 MON_5
  101. MON_6,
  102. #define MON_6 MON_6
  103. MON_7,
  104. #define MON_7 MON_7
  105. MON_8,
  106. #define MON_8 MON_8
  107. MON_9,
  108. #define MON_9 MON_9
  109. MON_10,
  110. #define MON_10 MON_10
  111. MON_11,
  112. #define MON_11 MON_11
  113. MON_12,
  114. #define MON_12 MON_12
  115. AM_STR, /* Ante meridiem string. */
  116. #define AM_STR AM_STR
  117. PM_STR, /* Post meridiem string. */
  118. #define PM_STR PM_STR
  119. D_T_FMT, /* Date and time format for strftime. */
  120. #define D_T_FMT D_T_FMT
  121. D_FMT, /* Date format for strftime. */
  122. #define D_FMT D_FMT
  123. T_FMT, /* Time format for strftime. */
  124. #define T_FMT T_FMT
  125. T_FMT_AMPM, /* 12-hour time format for strftime. */
  126. #define T_FMT_AMPM T_FMT_AMPM
  127. ERA, /* Alternate era. */
  128. #define ERA ERA
  129. __ERA_YEAR, /* Year in alternate era format. */
  130. #ifdef __USE_GNU
  131. # define ERA_YEAR __ERA_YEAR
  132. #endif
  133. ERA_D_FMT, /* Date in alternate era format. */
  134. #define ERA_D_FMT ERA_D_FMT
  135. ALT_DIGITS, /* Alternate symbols for digits. */
  136. #define ALT_DIGITS ALT_DIGITS
  137. ERA_D_T_FMT, /* Date and time in alternate era format. */
  138. #define ERA_D_T_FMT ERA_D_T_FMT
  139. ERA_T_FMT, /* Time in alternate era format. */
  140. #define ERA_T_FMT ERA_T_FMT
  141. _NL_TIME_ERA_NUM_ENTRIES, /* Number entries in the era arrays. */
  142. _NL_TIME_ERA_ENTRIES, /* Structure with era entries in usable form.*/
  143. _NL_WABDAY_1, /* Sun */
  144. _NL_WABDAY_2,
  145. _NL_WABDAY_3,
  146. _NL_WABDAY_4,
  147. _NL_WABDAY_5,
  148. _NL_WABDAY_6,
  149. _NL_WABDAY_7,
  150. /* Long-named days of the week. */
  151. _NL_WDAY_1, /* Sunday */
  152. _NL_WDAY_2, /* Monday */
  153. _NL_WDAY_3, /* Tuesday */
  154. _NL_WDAY_4, /* Wednesday */
  155. _NL_WDAY_5, /* Thursday */
  156. _NL_WDAY_6, /* Friday */
  157. _NL_WDAY_7, /* Saturday */
  158. /* Abbreviated month names, in the grammatical form used when the month
  159. is a part of a complete date. */
  160. _NL_WABMON_1, /* Jan */
  161. _NL_WABMON_2,
  162. _NL_WABMON_3,
  163. _NL_WABMON_4,
  164. _NL_WABMON_5,
  165. _NL_WABMON_6,
  166. _NL_WABMON_7,
  167. _NL_WABMON_8,
  168. _NL_WABMON_9,
  169. _NL_WABMON_10,
  170. _NL_WABMON_11,
  171. _NL_WABMON_12,
  172. /* Long month names, in the grammatical form used when the month
  173. is a part of a complete date. */
  174. _NL_WMON_1, /* January */
  175. _NL_WMON_2,
  176. _NL_WMON_3,
  177. _NL_WMON_4,
  178. _NL_WMON_5,
  179. _NL_WMON_6,
  180. _NL_WMON_7,
  181. _NL_WMON_8,
  182. _NL_WMON_9,
  183. _NL_WMON_10,
  184. _NL_WMON_11,
  185. _NL_WMON_12,
  186. _NL_WAM_STR, /* Ante meridiem string. */
  187. _NL_WPM_STR, /* Post meridiem string. */
  188. _NL_WD_T_FMT, /* Date and time format for strftime. */
  189. _NL_WD_FMT, /* Date format for strftime. */
  190. _NL_WT_FMT, /* Time format for strftime. */
  191. _NL_WT_FMT_AMPM, /* 12-hour time format for strftime. */
  192. _NL_WERA_YEAR, /* Year in alternate era format. */
  193. _NL_WERA_D_FMT, /* Date in alternate era format. */
  194. _NL_WALT_DIGITS, /* Alternate symbols for digits. */
  195. _NL_WERA_D_T_FMT, /* Date and time in alternate era format. */
  196. _NL_WERA_T_FMT, /* Time in alternate era format. */
  197. _NL_TIME_WEEK_NDAYS,
  198. _NL_TIME_WEEK_1STDAY,
  199. _NL_TIME_WEEK_1STWEEK,
  200. _NL_TIME_FIRST_WEEKDAY,
  201. _NL_TIME_FIRST_WORKDAY,
  202. _NL_TIME_CAL_DIRECTION,
  203. _NL_TIME_TIMEZONE,
  204. _DATE_FMT, /* strftime format for date. */
  205. #define _DATE_FMT _DATE_FMT
  206. _NL_W_DATE_FMT,
  207. _NL_TIME_CODESET,
  208. /* Long month names, in the grammatical form used when the month
  209. is named by itself. */
  210. __ALTMON_1, /* January */
  211. __ALTMON_2,
  212. __ALTMON_3,
  213. __ALTMON_4,
  214. __ALTMON_5,
  215. __ALTMON_6,
  216. __ALTMON_7,
  217. __ALTMON_8,
  218. __ALTMON_9,
  219. __ALTMON_10,
  220. __ALTMON_11,
  221. __ALTMON_12,
  222. #ifdef __USE_GNU
  223. # define ALTMON_1 __ALTMON_1
  224. # define ALTMON_2 __ALTMON_2
  225. # define ALTMON_3 __ALTMON_3
  226. # define ALTMON_4 __ALTMON_4
  227. # define ALTMON_5 __ALTMON_5
  228. # define ALTMON_6 __ALTMON_6
  229. # define ALTMON_7 __ALTMON_7
  230. # define ALTMON_8 __ALTMON_8
  231. # define ALTMON_9 __ALTMON_9
  232. # define ALTMON_10 __ALTMON_10
  233. # define ALTMON_11 __ALTMON_11
  234. # define ALTMON_12 __ALTMON_12
  235. #endif
  236. /* Long month names, in the grammatical form used when the month
  237. is named by itself. */
  238. _NL_WALTMON_1, /* January */
  239. _NL_WALTMON_2,
  240. _NL_WALTMON_3,
  241. _NL_WALTMON_4,
  242. _NL_WALTMON_5,
  243. _NL_WALTMON_6,
  244. _NL_WALTMON_7,
  245. _NL_WALTMON_8,
  246. _NL_WALTMON_9,
  247. _NL_WALTMON_10,
  248. _NL_WALTMON_11,
  249. _NL_WALTMON_12,
  250. /* Abbreviated month names, in the grammatical form used when the month
  251. is named by itself. */
  252. _NL_ABALTMON_1, /* Jan */
  253. _NL_ABALTMON_2,
  254. _NL_ABALTMON_3,
  255. _NL_ABALTMON_4,
  256. _NL_ABALTMON_5,
  257. _NL_ABALTMON_6,
  258. _NL_ABALTMON_7,
  259. _NL_ABALTMON_8,
  260. _NL_ABALTMON_9,
  261. _NL_ABALTMON_10,
  262. _NL_ABALTMON_11,
  263. _NL_ABALTMON_12,
  264. /* Abbreviated month names, in the grammatical form used when the month
  265. is named by itself. */
  266. _NL_WABALTMON_1, /* Jan */
  267. _NL_WABALTMON_2,
  268. _NL_WABALTMON_3,
  269. _NL_WABALTMON_4,
  270. _NL_WABALTMON_5,
  271. _NL_WABALTMON_6,
  272. _NL_WABALTMON_7,
  273. _NL_WABALTMON_8,
  274. _NL_WABALTMON_9,
  275. _NL_WABALTMON_10,
  276. _NL_WABALTMON_11,
  277. _NL_WABALTMON_12,
  278. _NL_NUM_LC_TIME, /* Number of indices in LC_TIME category. */
  279. /* LC_COLLATE category: text sorting.
  280. This information is accessed by the strcoll and strxfrm functions.
  281. These `nl_langinfo' names are used only internally. */
  282. _NL_COLLATE_NRULES = _NL_ITEM (__LC_COLLATE, 0),
  283. _NL_COLLATE_RULESETS,
  284. _NL_COLLATE_TABLEMB,
  285. _NL_COLLATE_WEIGHTMB,
  286. _NL_COLLATE_EXTRAMB,
  287. _NL_COLLATE_INDIRECTMB,
  288. _NL_COLLATE_GAP1,
  289. _NL_COLLATE_GAP2,
  290. _NL_COLLATE_GAP3,
  291. _NL_COLLATE_TABLEWC,
  292. _NL_COLLATE_WEIGHTWC,
  293. _NL_COLLATE_EXTRAWC,
  294. _NL_COLLATE_INDIRECTWC,
  295. _NL_COLLATE_SYMB_HASH_SIZEMB,
  296. _NL_COLLATE_SYMB_TABLEMB,
  297. _NL_COLLATE_SYMB_EXTRAMB,
  298. _NL_COLLATE_COLLSEQMB,
  299. _NL_COLLATE_COLLSEQWC,
  300. _NL_COLLATE_CODESET,
  301. _NL_NUM_LC_COLLATE,
  302. /* LC_CTYPE category: character classification.
  303. This information is accessed by the functions in <ctype.h>.
  304. These `nl_langinfo' names are used only internally. */
  305. _NL_CTYPE_CLASS = _NL_ITEM (__LC_CTYPE, 0),
  306. _NL_CTYPE_TOUPPER,
  307. _NL_CTYPE_GAP1,
  308. _NL_CTYPE_TOLOWER,
  309. _NL_CTYPE_GAP2,
  310. _NL_CTYPE_CLASS32,
  311. _NL_CTYPE_GAP3,
  312. _NL_CTYPE_GAP4,
  313. _NL_CTYPE_GAP5,
  314. _NL_CTYPE_GAP6,
  315. _NL_CTYPE_CLASS_NAMES,
  316. _NL_CTYPE_MAP_NAMES,
  317. _NL_CTYPE_WIDTH,
  318. _NL_CTYPE_MB_CUR_MAX,
  319. _NL_CTYPE_CODESET_NAME,
  320. CODESET = _NL_CTYPE_CODESET_NAME,
  321. #define CODESET CODESET
  322. _NL_CTYPE_TOUPPER32,
  323. _NL_CTYPE_TOLOWER32,
  324. _NL_CTYPE_CLASS_OFFSET,
  325. _NL_CTYPE_MAP_OFFSET,
  326. _NL_CTYPE_INDIGITS_MB_LEN,
  327. _NL_CTYPE_INDIGITS0_MB,
  328. _NL_CTYPE_INDIGITS1_MB,
  329. _NL_CTYPE_INDIGITS2_MB,
  330. _NL_CTYPE_INDIGITS3_MB,
  331. _NL_CTYPE_INDIGITS4_MB,
  332. _NL_CTYPE_INDIGITS5_MB,
  333. _NL_CTYPE_INDIGITS6_MB,
  334. _NL_CTYPE_INDIGITS7_MB,
  335. _NL_CTYPE_INDIGITS8_MB,
  336. _NL_CTYPE_INDIGITS9_MB,
  337. _NL_CTYPE_INDIGITS_WC_LEN,
  338. _NL_CTYPE_INDIGITS0_WC,
  339. _NL_CTYPE_INDIGITS1_WC,
  340. _NL_CTYPE_INDIGITS2_WC,
  341. _NL_CTYPE_INDIGITS3_WC,
  342. _NL_CTYPE_INDIGITS4_WC,
  343. _NL_CTYPE_INDIGITS5_WC,
  344. _NL_CTYPE_INDIGITS6_WC,
  345. _NL_CTYPE_INDIGITS7_WC,
  346. _NL_CTYPE_INDIGITS8_WC,
  347. _NL_CTYPE_INDIGITS9_WC,
  348. _NL_CTYPE_OUTDIGIT0_MB,
  349. _NL_CTYPE_OUTDIGIT1_MB,
  350. _NL_CTYPE_OUTDIGIT2_MB,
  351. _NL_CTYPE_OUTDIGIT3_MB,
  352. _NL_CTYPE_OUTDIGIT4_MB,
  353. _NL_CTYPE_OUTDIGIT5_MB,
  354. _NL_CTYPE_OUTDIGIT6_MB,
  355. _NL_CTYPE_OUTDIGIT7_MB,
  356. _NL_CTYPE_OUTDIGIT8_MB,
  357. _NL_CTYPE_OUTDIGIT9_MB,
  358. _NL_CTYPE_OUTDIGIT0_WC,
  359. _NL_CTYPE_OUTDIGIT1_WC,
  360. _NL_CTYPE_OUTDIGIT2_WC,
  361. _NL_CTYPE_OUTDIGIT3_WC,
  362. _NL_CTYPE_OUTDIGIT4_WC,
  363. _NL_CTYPE_OUTDIGIT5_WC,
  364. _NL_CTYPE_OUTDIGIT6_WC,
  365. _NL_CTYPE_OUTDIGIT7_WC,
  366. _NL_CTYPE_OUTDIGIT8_WC,
  367. _NL_CTYPE_OUTDIGIT9_WC,
  368. _NL_CTYPE_TRANSLIT_TAB_SIZE,
  369. _NL_CTYPE_TRANSLIT_FROM_IDX,
  370. _NL_CTYPE_TRANSLIT_FROM_TBL,
  371. _NL_CTYPE_TRANSLIT_TO_IDX,
  372. _NL_CTYPE_TRANSLIT_TO_TBL,
  373. _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
  374. _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
  375. _NL_CTYPE_TRANSLIT_IGNORE_LEN,
  376. _NL_CTYPE_TRANSLIT_IGNORE,
  377. _NL_CTYPE_MAP_TO_NONASCII,
  378. _NL_CTYPE_NONASCII_CASE,
  379. _NL_CTYPE_EXTRA_MAP_1,
  380. _NL_CTYPE_EXTRA_MAP_2,
  381. _NL_CTYPE_EXTRA_MAP_3,
  382. _NL_CTYPE_EXTRA_MAP_4,
  383. _NL_CTYPE_EXTRA_MAP_5,
  384. _NL_CTYPE_EXTRA_MAP_6,
  385. _NL_CTYPE_EXTRA_MAP_7,
  386. _NL_CTYPE_EXTRA_MAP_8,
  387. _NL_CTYPE_EXTRA_MAP_9,
  388. _NL_CTYPE_EXTRA_MAP_10,
  389. _NL_CTYPE_EXTRA_MAP_11,
  390. _NL_CTYPE_EXTRA_MAP_12,
  391. _NL_CTYPE_EXTRA_MAP_13,
  392. _NL_CTYPE_EXTRA_MAP_14,
  393. _NL_NUM_LC_CTYPE,
  394. /* LC_MONETARY category: formatting of monetary quantities.
  395. These items each correspond to a member of `struct lconv',
  396. defined in <locale.h>. */
  397. __INT_CURR_SYMBOL = _NL_ITEM (__LC_MONETARY, 0),
  398. #ifdef __USE_GNU
  399. # define INT_CURR_SYMBOL __INT_CURR_SYMBOL
  400. #endif
  401. __CURRENCY_SYMBOL,
  402. #ifdef __USE_GNU
  403. # define CURRENCY_SYMBOL __CURRENCY_SYMBOL
  404. #endif
  405. __MON_DECIMAL_POINT,
  406. #ifdef __USE_GNU
  407. # define MON_DECIMAL_POINT __MON_DECIMAL_POINT
  408. #endif
  409. __MON_THOUSANDS_SEP,
  410. #ifdef __USE_GNU
  411. # define MON_THOUSANDS_SEP __MON_THOUSANDS_SEP
  412. #endif
  413. __MON_GROUPING,
  414. #ifdef __USE_GNU
  415. # define MON_GROUPING __MON_GROUPING
  416. #endif
  417. __POSITIVE_SIGN,
  418. #ifdef __USE_GNU
  419. # define POSITIVE_SIGN __POSITIVE_SIGN
  420. #endif
  421. __NEGATIVE_SIGN,
  422. #ifdef __USE_GNU
  423. # define NEGATIVE_SIGN __NEGATIVE_SIGN
  424. #endif
  425. __INT_FRAC_DIGITS,
  426. #ifdef __USE_GNU
  427. # define INT_FRAC_DIGITS __INT_FRAC_DIGITS
  428. #endif
  429. __FRAC_DIGITS,
  430. #ifdef __USE_GNU
  431. # define FRAC_DIGITS __FRAC_DIGITS
  432. #endif
  433. __P_CS_PRECEDES,
  434. #ifdef __USE_GNU
  435. # define P_CS_PRECEDES __P_CS_PRECEDES
  436. #endif
  437. __P_SEP_BY_SPACE,
  438. #ifdef __USE_GNU
  439. # define P_SEP_BY_SPACE __P_SEP_BY_SPACE
  440. #endif
  441. __N_CS_PRECEDES,
  442. #ifdef __USE_GNU
  443. # define N_CS_PRECEDES __N_CS_PRECEDES
  444. #endif
  445. __N_SEP_BY_SPACE,
  446. #ifdef __USE_GNU
  447. # define N_SEP_BY_SPACE __N_SEP_BY_SPACE
  448. #endif
  449. __P_SIGN_POSN,
  450. #ifdef __USE_GNU
  451. # define P_SIGN_POSN __P_SIGN_POSN
  452. #endif
  453. __N_SIGN_POSN,
  454. #ifdef __USE_GNU
  455. # define N_SIGN_POSN __N_SIGN_POSN
  456. #endif
  457. _NL_MONETARY_CRNCYSTR,
  458. #define CRNCYSTR _NL_MONETARY_CRNCYSTR
  459. __INT_P_CS_PRECEDES,
  460. #ifdef __USE_GNU
  461. # define INT_P_CS_PRECEDES __INT_P_CS_PRECEDES
  462. #endif
  463. __INT_P_SEP_BY_SPACE,
  464. #ifdef __USE_GNU
  465. # define INT_P_SEP_BY_SPACE __INT_P_SEP_BY_SPACE
  466. #endif
  467. __INT_N_CS_PRECEDES,
  468. #ifdef __USE_GNU
  469. # define INT_N_CS_PRECEDES __INT_N_CS_PRECEDES
  470. #endif
  471. __INT_N_SEP_BY_SPACE,
  472. #ifdef __USE_GNU
  473. # define INT_N_SEP_BY_SPACE __INT_N_SEP_BY_SPACE
  474. #endif
  475. __INT_P_SIGN_POSN,
  476. #ifdef __USE_GNU
  477. # define INT_P_SIGN_POSN __INT_P_SIGN_POSN
  478. #endif
  479. __INT_N_SIGN_POSN,
  480. #ifdef __USE_GNU
  481. # define INT_N_SIGN_POSN __INT_N_SIGN_POSN
  482. #endif
  483. _NL_MONETARY_DUO_INT_CURR_SYMBOL,
  484. _NL_MONETARY_DUO_CURRENCY_SYMBOL,
  485. _NL_MONETARY_DUO_INT_FRAC_DIGITS,
  486. _NL_MONETARY_DUO_FRAC_DIGITS,
  487. _NL_MONETARY_DUO_P_CS_PRECEDES,
  488. _NL_MONETARY_DUO_P_SEP_BY_SPACE,
  489. _NL_MONETARY_DUO_N_CS_PRECEDES,
  490. _NL_MONETARY_DUO_N_SEP_BY_SPACE,
  491. _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
  492. _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
  493. _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
  494. _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
  495. _NL_MONETARY_DUO_P_SIGN_POSN,
  496. _NL_MONETARY_DUO_N_SIGN_POSN,
  497. _NL_MONETARY_DUO_INT_P_SIGN_POSN,
  498. _NL_MONETARY_DUO_INT_N_SIGN_POSN,
  499. _NL_MONETARY_UNO_VALID_FROM,
  500. _NL_MONETARY_UNO_VALID_TO,
  501. _NL_MONETARY_DUO_VALID_FROM,
  502. _NL_MONETARY_DUO_VALID_TO,
  503. _NL_MONETARY_CONVERSION_RATE,
  504. _NL_MONETARY_DECIMAL_POINT_WC,
  505. _NL_MONETARY_THOUSANDS_SEP_WC,
  506. _NL_MONETARY_CODESET,
  507. _NL_NUM_LC_MONETARY,
  508. /* LC_NUMERIC category: formatting of numbers.
  509. These also correspond to members of `struct lconv'; see <locale.h>. */
  510. __DECIMAL_POINT = _NL_ITEM (__LC_NUMERIC, 0),
  511. #ifdef __USE_GNU
  512. # define DECIMAL_POINT __DECIMAL_POINT
  513. #endif
  514. RADIXCHAR = __DECIMAL_POINT,
  515. #define RADIXCHAR RADIXCHAR
  516. __THOUSANDS_SEP,
  517. #ifdef __USE_GNU
  518. # define THOUSANDS_SEP __THOUSANDS_SEP
  519. #endif
  520. THOUSEP = __THOUSANDS_SEP,
  521. #define THOUSEP THOUSEP
  522. __GROUPING,
  523. #ifdef __USE_GNU
  524. # define GROUPING __GROUPING
  525. #endif
  526. _NL_NUMERIC_DECIMAL_POINT_WC,
  527. _NL_NUMERIC_THOUSANDS_SEP_WC,
  528. _NL_NUMERIC_CODESET,
  529. _NL_NUM_LC_NUMERIC,
  530. __YESEXPR = _NL_ITEM (__LC_MESSAGES, 0), /* Regex matching ``yes'' input. */
  531. #define YESEXPR __YESEXPR
  532. __NOEXPR, /* Regex matching ``no'' input. */
  533. #define NOEXPR __NOEXPR
  534. __YESSTR, /* Output string for ``yes''. */
  535. #if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
  536. # define YESSTR __YESSTR
  537. #endif
  538. __NOSTR, /* Output string for ``no''. */
  539. #if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
  540. # define NOSTR __NOSTR
  541. #endif
  542. _NL_MESSAGES_CODESET,
  543. _NL_NUM_LC_MESSAGES,
  544. _NL_PAPER_HEIGHT = _NL_ITEM (__LC_PAPER, 0),
  545. _NL_PAPER_WIDTH,
  546. _NL_PAPER_CODESET,
  547. _NL_NUM_LC_PAPER,
  548. _NL_NAME_NAME_FMT = _NL_ITEM (__LC_NAME, 0),
  549. _NL_NAME_NAME_GEN,
  550. _NL_NAME_NAME_MR,
  551. _NL_NAME_NAME_MRS,
  552. _NL_NAME_NAME_MISS,
  553. _NL_NAME_NAME_MS,
  554. _NL_NAME_CODESET,
  555. _NL_NUM_LC_NAME,
  556. _NL_ADDRESS_POSTAL_FMT = _NL_ITEM (__LC_ADDRESS, 0),
  557. _NL_ADDRESS_COUNTRY_NAME,
  558. _NL_ADDRESS_COUNTRY_POST,
  559. _NL_ADDRESS_COUNTRY_AB2,
  560. _NL_ADDRESS_COUNTRY_AB3,
  561. _NL_ADDRESS_COUNTRY_CAR,
  562. _NL_ADDRESS_COUNTRY_NUM,
  563. _NL_ADDRESS_COUNTRY_ISBN,
  564. _NL_ADDRESS_LANG_NAME,
  565. _NL_ADDRESS_LANG_AB,
  566. _NL_ADDRESS_LANG_TERM,
  567. _NL_ADDRESS_LANG_LIB,
  568. _NL_ADDRESS_CODESET,
  569. _NL_NUM_LC_ADDRESS,
  570. _NL_TELEPHONE_TEL_INT_FMT = _NL_ITEM (__LC_TELEPHONE, 0),
  571. _NL_TELEPHONE_TEL_DOM_FMT,
  572. _NL_TELEPHONE_INT_SELECT,
  573. _NL_TELEPHONE_INT_PREFIX,
  574. _NL_TELEPHONE_CODESET,
  575. _NL_NUM_LC_TELEPHONE,
  576. _NL_MEASUREMENT_MEASUREMENT = _NL_ITEM (__LC_MEASUREMENT, 0),
  577. _NL_MEASUREMENT_CODESET,
  578. _NL_NUM_LC_MEASUREMENT,
  579. _NL_IDENTIFICATION_TITLE = _NL_ITEM (__LC_IDENTIFICATION, 0),
  580. _NL_IDENTIFICATION_SOURCE,
  581. _NL_IDENTIFICATION_ADDRESS,
  582. _NL_IDENTIFICATION_CONTACT,
  583. _NL_IDENTIFICATION_EMAIL,
  584. _NL_IDENTIFICATION_TEL,
  585. _NL_IDENTIFICATION_FAX,
  586. _NL_IDENTIFICATION_LANGUAGE,
  587. _NL_IDENTIFICATION_TERRITORY,
  588. _NL_IDENTIFICATION_AUDIENCE,
  589. _NL_IDENTIFICATION_APPLICATION,
  590. _NL_IDENTIFICATION_ABBREVIATION,
  591. _NL_IDENTIFICATION_REVISION,
  592. _NL_IDENTIFICATION_DATE,
  593. _NL_IDENTIFICATION_CATEGORY,
  594. _NL_IDENTIFICATION_CODESET,
  595. _NL_NUM_LC_IDENTIFICATION,
  596. /* This marks the highest value used. */
  597. _NL_NUM
  598. };
  599. /* This macro produces an item you can pass to `nl_langinfo' or
  600. `nl_langinfo_l' to get the name of the locale in use for CATEGORY. */
  601. #define _NL_LOCALE_NAME(category) _NL_ITEM ((category), \
  602. _NL_ITEM_INDEX (-1))
  603. #ifdef __USE_GNU
  604. # define NL_LOCALE_NAME(category) _NL_LOCALE_NAME (category)
  605. #endif
  606. /* Return the current locale's value for ITEM.
  607. If ITEM is invalid, an empty string is returned.
  608. The string returned will not change until `setlocale' is called;
  609. it is usually in read-only memory and cannot be modified. */
  610. extern char *nl_langinfo (nl_item __item) __THROW;
  611. #ifdef __USE_XOPEN2K8
  612. /* POSIX.1-2008 extended locale interface (see locale.h). */
  613. # include <bits/types/locale_t.h>
  614. /* Just like nl_langinfo but get the information from the locale object L. */
  615. extern char *nl_langinfo_l (nl_item __item, locale_t __l);
  616. #endif
  617. __END_DECLS
  618. #endif /* langinfo.h */