diff options
author | Karl Williamson <khw@cpan.org> | 2020-06-13 14:28:50 -0600 |
---|---|---|
committer | Karl Williamson <khw@cpan.org> | 2020-07-17 22:04:08 -0600 |
commit | 36dbc955f3cb37b884c4e6b5e96cd676aef3d047 (patch) | |
tree | c38ca094c2d210ddadc5947bbf09dc52b539f9da /locale.c | |
parent | f542621f46f0443d22c27d749fd40110e197a671 (diff) | |
download | perl-36dbc955f3cb37b884c4e6b5e96cd676aef3d047.tar.gz |
Add z/OS locale categories
z/OS has two locale categories, LC_SYNTAX and LC_TOD, not found outside
IBM products. This makes Perl know about them, so that a program can
refer to them, but like other similar categories found on other OS's,
nothing more is done with them.
Diffstat (limited to 'locale.c')
-rw-r--r-- | locale.c | 46 |
1 files changed, 45 insertions, 1 deletions
@@ -200,6 +200,12 @@ const int categories[] = { # ifdef USE_LOCALE_TELEPHONE LC_TELEPHONE, # endif +# ifdef USE_LOCALE_SYNTAX + LC_SYNTAX, +# endif +# ifdef USE_LOCALE_TOD + LC_TOD, +# endif # ifdef LC_ALL LC_ALL, # endif @@ -245,6 +251,12 @@ const char * const category_names[] = { # ifdef USE_LOCALE_TELEPHONE "LC_TELEPHONE", # endif +# ifdef USE_LOCALE_SYNTAX + "LC_SYNTAX", +# endif +# ifdef USE_LOCALE_TOD + "LC_TOD", +# endif # ifdef LC_ALL "LC_ALL", # endif @@ -384,8 +396,20 @@ S_category_name(const int category) # else # define _DUMMY_TELEPHONE _DUMMY_PAPER # endif +# ifdef USE_LOCALE_SYNTAX +# define LC_SYNTAX_INDEX _DUMMY_TELEPHONE + 1 +# define _DUMMY_SYNTAX LC_SYNTAX_INDEX +# else +# define _DUMMY_SYNTAX _DUMMY_TELEPHONE +# endif +# ifdef USE_LOCALE_TOD +# define LC_TOD_INDEX _DUMMY_SYNTAX + 1 +# define _DUMMY_TOD LC_TOD_INDEX +# else +# define _DUMMY_TOD _DUMMY_SYNTAX +# endif # ifdef LC_ALL -# define LC_ALL_INDEX _DUMMY_TELEPHONE + 1 +# define LC_ALL_INDEX _DUMMY_TOD + 1 # endif #endif /* ifdef USE_LOCALE */ @@ -468,6 +492,12 @@ const int category_masks[] = { # ifdef USE_LOCALE_TELEPHONE LC_TELEPHONE_MASK, # endif +# ifdef USE_LOCALE_SYNTAX + LC_SYNTAX_MASK, +# endif +# ifdef USE_LOCALE_TOD + LC_TOD_MASK, +# endif /* LC_ALL can't be turned off by a Configure * option, and in Posix 2008, should always be * here, so compile it in unconditionally. @@ -3438,6 +3468,20 @@ Perl_init_i18nl10n(pTHX_ int printwarn) assert(category_masks[LC_TELEPHONE_INDEX] == LC_TELEPHONE_MASK); # endif # endif +# ifdef USE_LOCALE_SYNTAX + assert(categories[LC_SYNTAX_INDEX] == LC_SYNTAX); + assert(strEQ(category_names[LC_SYNTAX_INDEX], "LC_SYNTAX")); +# ifdef USE_POSIX_2008_LOCALE + assert(category_masks[LC_SYNTAX_INDEX] == LC_SYNTAX_MASK); +# endif +# endif +# ifdef USE_LOCALE_TOD + assert(categories[LC_TOD_INDEX] == LC_TOD); + assert(strEQ(category_names[LC_TOD_INDEX], "LC_TOD")); +# ifdef USE_POSIX_2008_LOCALE + assert(category_masks[LC_TOD_INDEX] == LC_TOD_MASK); +# endif +# endif # ifdef LC_ALL assert(categories[LC_ALL_INDEX] == LC_ALL); assert(strEQ(category_names[LC_ALL_INDEX], "LC_ALL")); |