1/* 2 * Copyright 2010-2012 Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _LANGINFO_H_ 6#define _LANGINFO_H_ 7 8 9#include <locale.h> 10#include <nl_types.h> 11#include <sys/cdefs.h> 12 13 14enum { 15 CODESET, /* codeset name */ 16 D_T_FMT, /* string for formatting date and time */ 17 D_FMT, /* date format string */ 18 T_FMT, /* time format string */ 19 T_FMT_AMPM, /* a.m. or p.m. time formatting string */ 20 AM_STR, /* Ante Meridian affix */ 21 PM_STR, /* Post Meridian affix */ 22 23 /* week day names */ 24 DAY_1, 25 DAY_2, 26 DAY_3, 27 DAY_4, 28 DAY_5, 29 DAY_6, 30 DAY_7, 31 32 /* abbreviated week day names */ 33 ABDAY_1, 34 ABDAY_2, 35 ABDAY_3, 36 ABDAY_4, 37 ABDAY_5, 38 ABDAY_6, 39 ABDAY_7, 40 41 /* month names */ 42 MON_1, 43 MON_2, 44 MON_3, 45 MON_4, 46 MON_5, 47 MON_6, 48 MON_7, 49 MON_8, 50 MON_9, 51 MON_10, 52 MON_11, 53 MON_12, 54 55 /* abbreviated month names */ 56 ABMON_1, 57 ABMON_2, 58 ABMON_3, 59 ABMON_4, 60 ABMON_5, 61 ABMON_6, 62 ABMON_7, 63 ABMON_8, 64 ABMON_9, 65 ABMON_10, 66 ABMON_11, 67 ABMON_12, 68 69 ERA, /* era description segments */ 70 ERA_D_FMT, /* era date format string */ 71 ERA_D_T_FMT, /* era date and time format string */ 72 ERA_T_FMT, /* era time format string */ 73 ALT_DIGITS, /* alternative symbols for digits */ 74 75 RADIXCHAR, /* radix char */ 76 THOUSEP, /* separator for thousands */ 77 78 YESEXPR, /* affirmative response expression */ 79 NOEXPR, /* negative response expression */ 80 81 CRNCYSTR, /* currency symbol */ 82 83 _NL_LANGINFO_LAST 84}; 85 86/* According to the POSIX base specs v7, the above need to be available as 87 symbolic constants, so we define them individually to their respective 88 enumeration name. */ 89#define CODESET CODESET 90#define D_T_FMT D_T_FMT 91#define D_FMT D_FMT 92#define T_FMT T_FMT 93#define T_FMT_AMPM T_FMT_AMPM 94#define AM_STR AM_STR 95#define PM_STR PM_STR 96#define DAY_1 DAY_1 97#define DAY_2 DAY_2 98#define DAY_3 DAY_3 99#define DAY_4 DAY_4 100#define DAY_5 DAY_5 101#define DAY_6 DAY_6 102#define DAY_7 DAY_7 103#define ABDAY_1 ABDAY_1 104#define ABDAY_2 ABDAY_2 105#define ABDAY_3 ABDAY_3 106#define ABDAY_4 ABDAY_4 107#define ABDAY_5 ABDAY_5 108#define ABDAY_6 ABDAY_6 109#define ABDAY_7 ABDAY_7 110#define MON_1 MON_1 111#define MON_2 MON_2 112#define MON_3 MON_3 113#define MON_4 MON_4 114#define MON_5 MON_5 115#define MON_6 MON_6 116#define MON_7 MON_7 117#define MON_8 MON_8 118#define MON_9 MON_9 119#define MON_10 MON_10 120#define MON_11 MON_11 121#define MON_12 MON_12 122#define ABMON_1 ABMON_1 123#define ABMON_2 ABMON_2 124#define ABMON_3 ABMON_3 125#define ABMON_4 ABMON_4 126#define ABMON_5 ABMON_5 127#define ABMON_6 ABMON_6 128#define ABMON_7 ABMON_7 129#define ABMON_8 ABMON_8 130#define ABMON_9 ABMON_9 131#define ABMON_10 ABMON_10 132#define ABMON_11 ABMON_11 133#define ABMON_12 ABMON_12 134#define ERA ERA 135#define ERA_D_FMT ERA_D_FMT 136#define ERA_D_T_FMT ERA_D_T_FMT 137#define ERA_T_FMT ERA_T_FMT 138#define ALT_DIGITS ALT_DIGITS 139#define RADIXCHAR RADIXCHAR 140#define THOUSEP THOUSEP 141#define YESEXPR YESEXPR 142#define NOEXPR NOEXPR 143#define CRNCYSTR CRNCYSTR 144 145__BEGIN_DECLS 146 147extern char* nl_langinfo(nl_item item); 148extern char* nl_langinfo_l(nl_item item, locale_t locale); 149 150__END_DECLS 151 152 153#endif /* _LANGINFO_H_ */ 154