1 /* Replaces <langinfo.h>, and allows our code to work on systems that don't 2 * have that. */ 3 4 #ifndef PERL_LANGINFO_H 5 #define PERL_LANGINFO_H 1 6 7 #include "config.h" 8 9 #if defined(I_LANGINFO) 10 # include <langinfo.h> 11 #else 12 13 typedef int nl_item; /* Substitute 'int' for emulated nl_langinfo() */ 14 15 #endif 16 17 /* NOTE that this file is parsed by ext/XS-APItest/t/locale.t, so be careful 18 * with changes */ 19 20 /* If foo doesn't exist define it to a negative number. */ 21 22 #ifndef CODESET 23 # define CODESET -1 24 # define HAS_MISSING_LANGINFO_ITEM_ 25 #endif 26 #ifndef D_T_FMT 27 # define D_T_FMT -2 28 # define HAS_MISSING_LANGINFO_ITEM_ 29 #endif 30 #ifndef D_FMT 31 # define D_FMT -3 32 # define HAS_MISSING_LANGINFO_ITEM_ 33 #endif 34 #ifndef T_FMT 35 # define T_FMT -4 36 # define HAS_MISSING_LANGINFO_ITEM_ 37 #endif 38 #ifndef T_FMT_AMPM 39 # define T_FMT_AMPM -5 40 # define HAS_MISSING_LANGINFO_ITEM_ 41 #endif 42 #ifndef AM_STR 43 # define AM_STR -6 44 # define HAS_MISSING_LANGINFO_ITEM_ 45 #endif 46 #ifndef PM_STR 47 # define PM_STR -7 48 # define HAS_MISSING_LANGINFO_ITEM_ 49 #endif 50 #ifndef DAY_1 51 # define DAY_1 -8 52 # define HAS_MISSING_LANGINFO_ITEM_ 53 #endif 54 #ifndef DAY_2 55 # define DAY_2 -9 56 # define HAS_MISSING_LANGINFO_ITEM_ 57 #endif 58 #ifndef DAY_3 59 # define DAY_3 -10 60 # define HAS_MISSING_LANGINFO_ITEM_ 61 #endif 62 #ifndef DAY_4 63 # define DAY_4 -11 64 # define HAS_MISSING_LANGINFO_ITEM_ 65 #endif 66 #ifndef DAY_5 67 # define DAY_5 -12 68 # define HAS_MISSING_LANGINFO_ITEM_ 69 #endif 70 #ifndef DAY_6 71 # define DAY_6 -13 72 # define HAS_MISSING_LANGINFO_ITEM_ 73 #endif 74 #ifndef DAY_7 75 # define DAY_7 -14 76 # define HAS_MISSING_LANGINFO_ITEM_ 77 #endif 78 #ifndef ABDAY_1 79 # define ABDAY_1 -15 80 # define HAS_MISSING_LANGINFO_ITEM_ 81 #endif 82 #ifndef ABDAY_2 83 # define ABDAY_2 -16 84 # define HAS_MISSING_LANGINFO_ITEM_ 85 #endif 86 #ifndef ABDAY_3 87 # define ABDAY_3 -17 88 # define HAS_MISSING_LANGINFO_ITEM_ 89 #endif 90 #ifndef ABDAY_4 91 # define ABDAY_4 -18 92 # define HAS_MISSING_LANGINFO_ITEM_ 93 #endif 94 #ifndef ABDAY_5 95 # define ABDAY_5 -19 96 # define HAS_MISSING_LANGINFO_ITEM_ 97 #endif 98 #ifndef ABDAY_6 99 # define ABDAY_6 -20 100 # define HAS_MISSING_LANGINFO_ITEM_ 101 #endif 102 #ifndef ABDAY_7 103 # define ABDAY_7 -21 104 # define HAS_MISSING_LANGINFO_ITEM_ 105 #endif 106 #ifndef MON_1 107 # define MON_1 -22 108 # define HAS_MISSING_LANGINFO_ITEM_ 109 #endif 110 #ifndef MON_2 111 # define MON_2 -23 112 # define HAS_MISSING_LANGINFO_ITEM_ 113 #endif 114 #ifndef MON_3 115 # define MON_3 -24 116 # define HAS_MISSING_LANGINFO_ITEM_ 117 #endif 118 #ifndef MON_4 119 # define MON_4 -25 120 # define HAS_MISSING_LANGINFO_ITEM_ 121 #endif 122 #ifndef MON_5 123 # define MON_5 -26 124 # define HAS_MISSING_LANGINFO_ITEM_ 125 #endif 126 #ifndef MON_6 127 # define MON_6 -27 128 # define HAS_MISSING_LANGINFO_ITEM_ 129 #endif 130 #ifndef MON_7 131 # define MON_7 -28 132 # define HAS_MISSING_LANGINFO_ITEM_ 133 #endif 134 #ifndef MON_8 135 # define MON_8 -29 136 # define HAS_MISSING_LANGINFO_ITEM_ 137 #endif 138 #ifndef MON_9 139 # define MON_9 -30 140 # define HAS_MISSING_LANGINFO_ITEM_ 141 #endif 142 #ifndef MON_10 143 # define MON_10 -31 144 # define HAS_MISSING_LANGINFO_ITEM_ 145 #endif 146 #ifndef MON_11 147 # define MON_11 -32 148 # define HAS_MISSING_LANGINFO_ITEM_ 149 #endif 150 #ifndef MON_12 151 # define MON_12 -33 152 # define HAS_MISSING_LANGINFO_ITEM_ 153 #endif 154 #ifndef ABMON_1 155 # define ABMON_1 -34 156 # define HAS_MISSING_LANGINFO_ITEM_ 157 #endif 158 #ifndef ABMON_2 159 # define ABMON_2 -35 160 # define HAS_MISSING_LANGINFO_ITEM_ 161 #endif 162 #ifndef ABMON_3 163 # define ABMON_3 -36 164 # define HAS_MISSING_LANGINFO_ITEM_ 165 #endif 166 #ifndef ABMON_4 167 # define ABMON_4 -37 168 # define HAS_MISSING_LANGINFO_ITEM_ 169 #endif 170 #ifndef ABMON_5 171 # define ABMON_5 -38 172 # define HAS_MISSING_LANGINFO_ITEM_ 173 #endif 174 #ifndef ABMON_6 175 # define ABMON_6 -39 176 # define HAS_MISSING_LANGINFO_ITEM_ 177 #endif 178 #ifndef ABMON_7 179 # define ABMON_7 -40 180 # define HAS_MISSING_LANGINFO_ITEM_ 181 #endif 182 #ifndef ABMON_8 183 # define ABMON_8 -41 184 # define HAS_MISSING_LANGINFO_ITEM_ 185 #endif 186 #ifndef ABMON_9 187 # define ABMON_9 -42 188 # define HAS_MISSING_LANGINFO_ITEM_ 189 #endif 190 #ifndef ABMON_10 191 # define ABMON_10 -43 192 # define HAS_MISSING_LANGINFO_ITEM_ 193 #endif 194 #ifndef ABMON_11 195 # define ABMON_11 -44 196 # define HAS_MISSING_LANGINFO_ITEM_ 197 #endif 198 #ifndef ABMON_12 199 # define ABMON_12 -45 200 # define HAS_MISSING_LANGINFO_ITEM_ 201 #endif 202 #ifndef ERA 203 # define ERA -46 204 # define HAS_MISSING_LANGINFO_ITEM_ 205 #endif 206 #ifndef ERA_D_FMT 207 # define ERA_D_FMT -47 208 # define HAS_MISSING_LANGINFO_ITEM_ 209 #endif 210 #ifndef ERA_D_T_FMT 211 # define ERA_D_T_FMT -48 212 # define HAS_MISSING_LANGINFO_ITEM_ 213 #endif 214 #ifndef ERA_T_FMT 215 # define ERA_T_FMT -49 216 # define HAS_MISSING_LANGINFO_ITEM_ 217 #endif 218 #ifndef ALT_DIGITS 219 # define ALT_DIGITS -50 220 # define HAS_MISSING_LANGINFO_ITEM_ 221 #endif 222 #ifndef RADIXCHAR 223 # define RADIXCHAR -51 224 # define HAS_MISSING_LANGINFO_ITEM_ 225 #endif 226 #ifndef THOUSEP 227 # define THOUSEP -52 228 # define HAS_MISSING_LANGINFO_ITEM_ 229 #endif 230 #ifndef YESEXPR 231 # define YESEXPR -53 232 # define HAS_MISSING_LANGINFO_ITEM_ 233 #endif 234 #ifndef YESSTR 235 # define YESSTR -54 236 # define HAS_MISSING_LANGINFO_ITEM_ 237 #endif 238 #ifndef NOEXPR 239 # define NOEXPR -55 240 # define HAS_MISSING_LANGINFO_ITEM_ 241 #endif 242 #ifndef NOSTR 243 # define NOSTR -56 244 # define HAS_MISSING_LANGINFO_ITEM_ 245 #endif 246 #ifndef CRNCYSTR 247 # define CRNCYSTR -57 248 # define HAS_MISSING_LANGINFO_ITEM_ 249 #endif 250 251 /* The rest of the items are gnu extensions, and are not #defined by its 252 * langinfo.h. There is a slight possibility that one of these numbers could 253 * conflict with some other value, in which case after much gnashing of teeth 254 * you will find this comment, and end up having to adjust the numbers. But 255 * glibc values are not (so far) negative */ 256 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_ADDRESS) 257 # define _NL_ADDRESS_POSTAL_FMT -58 258 # define _NL_ADDRESS_COUNTRY_NAME -59 259 # define _NL_ADDRESS_COUNTRY_POST -60 260 # define _NL_ADDRESS_COUNTRY_AB2 -61 261 # define _NL_ADDRESS_COUNTRY_AB3 -62 262 # define _NL_ADDRESS_COUNTRY_CAR -63 263 # define _NL_ADDRESS_COUNTRY_NUM -64 264 # define _NL_ADDRESS_COUNTRY_ISBN -65 265 # define _NL_ADDRESS_LANG_NAME -66 266 # define _NL_ADDRESS_LANG_AB -67 267 # define _NL_ADDRESS_LANG_TERM -68 268 # define _NL_ADDRESS_LANG_LIB -69 269 270 # define HAS_MISSING_LANGINFO_ITEM_ 271 #endif 272 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_IDENTIFICATION) 273 # define _NL_IDENTIFICATION_TITLE -70 274 # define _NL_IDENTIFICATION_SOURCE -71 275 # define _NL_IDENTIFICATION_ADDRESS -72 276 # define _NL_IDENTIFICATION_CONTACT -73 277 # define _NL_IDENTIFICATION_EMAIL -74 278 # define _NL_IDENTIFICATION_TEL -75 279 # define _NL_IDENTIFICATION_FAX -76 280 # define _NL_IDENTIFICATION_LANGUAGE -77 281 # define _NL_IDENTIFICATION_TERRITORY -78 282 # define _NL_IDENTIFICATION_AUDIENCE -79 283 # define _NL_IDENTIFICATION_APPLICATION -80 284 # define _NL_IDENTIFICATION_ABBREVIATION -81 285 # define _NL_IDENTIFICATION_REVISION -82 286 # define _NL_IDENTIFICATION_DATE -83 287 # define _NL_IDENTIFICATION_CATEGORY -84 288 289 # define HAS_MISSING_LANGINFO_ITEM_ 290 #endif 291 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_MEASUREMENT) 292 # define _NL_MEASUREMENT_MEASUREMENT -85 293 294 # define HAS_MISSING_LANGINFO_ITEM_ 295 #endif 296 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_NAME) 297 # define _NL_NAME_NAME_FMT -86 298 # define _NL_NAME_NAME_GEN -87 299 # define _NL_NAME_NAME_MR -88 300 # define _NL_NAME_NAME_MRS -89 301 # define _NL_NAME_NAME_MISS -90 302 # define _NL_NAME_NAME_MS -91 303 304 # define HAS_MISSING_LANGINFO_ITEM_ 305 #endif 306 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_PAPER) 307 # define _NL_PAPER_HEIGHT -92 308 # define _NL_PAPER_WIDTH -93 309 310 # define HAS_MISSING_LANGINFO_ITEM_ 311 #endif 312 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_TELEPHONE) 313 # define _NL_TELEPHONE_TEL_INT_FMT -94 314 # define _NL_TELEPHONE_TEL_DOM_FMT -95 315 # define _NL_TELEPHONE_INT_SELECT -96 316 # define _NL_TELEPHONE_INT_PREFIX -97 317 318 # define HAS_MISSING_LANGINFO_ITEM_ 319 #endif 320 321 /* All these categories have to be emulated if not available on the platform */ 322 #if ! LC_CTYPE_AVAIL_ \ 323 || ! LC_MESSAGES_AVAIL_ \ 324 || ! LC_MONETARY_AVAIL_ \ 325 || ! LC_NUMERIC_AVAIL_ \ 326 || ! LC_TIME_AVAIL_ \ 327 || ! LC_ADDRESS_AVAIL_ \ 328 || ! LC_IDENTIFICATION_AVAIL_ \ 329 || ! LC_MEASUREMENT_AVAIL_ \ 330 || ! LC_NAME_AVAIL_ \ 331 || ! LC_PAPER_AVAIL_ \ 332 || ! LC_TELEPHONE_AVAIL_ 333 334 # define HAS_MISSING_LANGINFO_ITEM_ 335 #endif 336 337 #endif /* PERL_LANGINFO_H */ 338