mirror of
https://github.com/Perl/perl5.git
synced 2026-01-26 00:27:57 +00:00
NO_LOCALE is a Configure option used to override setting the internal option USE_LOCALE. Internal checks should use the internal version. Not doing this caused z/OS to think it should be using locales on threaded systems, whereas it shouldn't. FYI, the reason this is is that the OS refuses to change the locale at all once a second thread is started. Perl relies on the ability to change the locale at will to accommodate locales that have a comma be the radix (decimal point) character and the huge amount of code that has been written expecting that at all times a dot is the radix character. This includes core code (which we could change) and XS code (which would be overwhelming to change).
243 lines
6.1 KiB
C
243 lines
6.1 KiB
C
/* -*- mode: C; buffer-read-only: t -*-
|
|
*
|
|
* locale_table.h
|
|
*
|
|
* Copyright (C) 2023, 2024 by Larry Wall and others
|
|
*
|
|
* You may distribute under the terms of either the GNU General Public
|
|
* License or the Artistic License, as specified in the README file.
|
|
*
|
|
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
|
|
* This file is built by regen/locale.pl from data in regen/locale.pl.
|
|
* Any changes made here will be lost!
|
|
*/
|
|
|
|
/* This defines a macro for each individual locale category used on this
|
|
* system. (The conglomerate category LC_ALL is not included.) This file
|
|
* will be #included as the interior of various parallel arrays and in other
|
|
* constructs; each usage will re-#define the macro to generate its
|
|
* appropriate data.
|
|
*
|
|
* This guarantees the arrays will be parallel, and populated in the order
|
|
* given here. That order is mostly arbitrary. LC_CTYPE is first because when
|
|
* we are setting multiple categories, CTYPE often needs to match the other(s),
|
|
* and the way the code is constructed, if we set the other category first, we
|
|
* might otherwise have to set CTYPE twice.
|
|
*
|
|
* Each entry takes the token giving the category name, and either the name of
|
|
* a function to call that does specialized set up for this category when it is
|
|
* changed into, or NULL if no such set up is needed
|
|
*/
|
|
|
|
#ifdef LC_CTYPE
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_CTYPE)
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(CTYPE, NULL)
|
|
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_CTYPE_AVAIL_ 0
|
|
# else
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(CTYPE, S_new_ctype)
|
|
|
|
# define LC_CTYPE_AVAIL_ 1
|
|
# define USE_LOCALE_CTYPE
|
|
# endif
|
|
#else
|
|
# define LC_CTYPE_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_NUMERIC
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_NUMERIC)
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(NUMERIC, NULL)
|
|
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_NUMERIC_AVAIL_ 0
|
|
# else
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(NUMERIC, S_new_numeric)
|
|
|
|
# define LC_NUMERIC_AVAIL_ 1
|
|
# define USE_LOCALE_NUMERIC
|
|
# endif
|
|
#else
|
|
# define LC_NUMERIC_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_COLLATE
|
|
|
|
/* Perl outsources all its collation efforts to the libc strxfrm(), so
|
|
* if it isn't available on the system, default "C" locale collation
|
|
* gets used */
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_COLLATE) || ! defined(HAS_STRXFRM)
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(COLLATE, NULL)
|
|
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_COLLATE_AVAIL_ 0
|
|
# else
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(COLLATE, S_new_collate)
|
|
|
|
# define LC_COLLATE_AVAIL_ 1
|
|
# define USE_LOCALE_COLLATE
|
|
# endif
|
|
#else
|
|
# define LC_COLLATE_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_TIME
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(TIME, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_TIME)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_TIME_AVAIL_ 0
|
|
# else
|
|
# define LC_TIME_AVAIL_ 1
|
|
# define USE_LOCALE_TIME
|
|
# endif
|
|
#else
|
|
# define LC_TIME_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_MESSAGES
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(MESSAGES, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_MESSAGES)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_MESSAGES_AVAIL_ 0
|
|
# else
|
|
# define LC_MESSAGES_AVAIL_ 1
|
|
# define USE_LOCALE_MESSAGES
|
|
# endif
|
|
#else
|
|
# define LC_MESSAGES_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_MONETARY
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(MONETARY, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_MONETARY)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_MONETARY_AVAIL_ 0
|
|
# else
|
|
# define LC_MONETARY_AVAIL_ 1
|
|
# define USE_LOCALE_MONETARY
|
|
# endif
|
|
#else
|
|
# define LC_MONETARY_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_ADDRESS
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(ADDRESS, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_ADDRESS)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_ADDRESS_AVAIL_ 0
|
|
# else
|
|
# define LC_ADDRESS_AVAIL_ 1
|
|
# define USE_LOCALE_ADDRESS
|
|
# endif
|
|
#else
|
|
# define LC_ADDRESS_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_IDENTIFICATION
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(IDENTIFICATION, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_IDENTIFICATION)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_IDENTIFICATION_AVAIL_ 0
|
|
# else
|
|
# define LC_IDENTIFICATION_AVAIL_ 1
|
|
# define USE_LOCALE_IDENTIFICATION
|
|
# endif
|
|
#else
|
|
# define LC_IDENTIFICATION_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_MEASUREMENT
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(MEASUREMENT, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_MEASUREMENT)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_MEASUREMENT_AVAIL_ 0
|
|
# else
|
|
# define LC_MEASUREMENT_AVAIL_ 1
|
|
# define USE_LOCALE_MEASUREMENT
|
|
# endif
|
|
#else
|
|
# define LC_MEASUREMENT_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_PAPER
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(PAPER, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_PAPER)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_PAPER_AVAIL_ 0
|
|
# else
|
|
# define LC_PAPER_AVAIL_ 1
|
|
# define USE_LOCALE_PAPER
|
|
# endif
|
|
#else
|
|
# define LC_PAPER_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_TELEPHONE
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(TELEPHONE, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_TELEPHONE)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_TELEPHONE_AVAIL_ 0
|
|
# else
|
|
# define LC_TELEPHONE_AVAIL_ 1
|
|
# define USE_LOCALE_TELEPHONE
|
|
# endif
|
|
#else
|
|
# define LC_TELEPHONE_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_NAME
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(NAME, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_NAME)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_NAME_AVAIL_ 0
|
|
# else
|
|
# define LC_NAME_AVAIL_ 1
|
|
# define USE_LOCALE_NAME
|
|
# endif
|
|
#else
|
|
# define LC_NAME_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_SYNTAX
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(SYNTAX, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_SYNTAX)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_SYNTAX_AVAIL_ 0
|
|
# else
|
|
# define LC_SYNTAX_AVAIL_ 1
|
|
# define USE_LOCALE_SYNTAX
|
|
# endif
|
|
#else
|
|
# define LC_SYNTAX_AVAIL_ 0
|
|
#endif
|
|
#ifdef LC_TOD
|
|
|
|
PERL_LOCALE_TABLE_ENTRY(TOD, NULL)
|
|
|
|
# if ! defined(USE_LOCALE) || defined(NO_LOCALE_TOD)
|
|
# define HAS_IGNORED_LOCALE_CATEGORIES_
|
|
# define LC_TOD_AVAIL_ 0
|
|
# else
|
|
# define LC_TOD_AVAIL_ 1
|
|
# define USE_LOCALE_TOD
|
|
# endif
|
|
#else
|
|
# define LC_TOD_AVAIL_ 0
|
|
#endif
|
|
|
|
/* ex: set ro ft=c: */
|