locales: Add #define; change how to override
authorKarl Williamson <khw@cpan.org>
Mon, 24 Jul 2017 22:02:34 +0000 (16:02 -0600)
committerKarl Williamson <khw@cpan.org>
Sun, 13 Aug 2017 04:53:10 +0000 (22:53 -0600)
This changes the controlling #define for using the POSIX 2008 locale
functions to "USE_POSIX_2008_LOCALE".  The previous controlling name
"USE_THREAD_SAFE_LOCALE" is retained for backward compatibility.

The reason for this change is that we may add thread-safe locale
handling even on platforms that don't have Posix 2008, so the name
USE_THREAD_SAFE_LOCALE would be used for controlling things in that
situation.

In other words, the concepts may become distinct, and so prepare for
that.

locale.c
perl.c
perl.h

index 1702203..d062e85 100644 (file)
--- a/locale.c
+++ b/locale.c
@@ -2723,7 +2723,7 @@ Perl_my_strerror(pTHX_ const int errnum)
 
     dVAR;
 
-#  ifdef USE_THREAD_SAFE_LOCALE
+#  ifdef USE_POSIX_2008_LOCALE
     locale_t save_locale = NULL;
 #  else
     char * save_locale = NULL;
@@ -2741,7 +2741,7 @@ Perl_my_strerror(pTHX_ const int errnum)
     if (! within_locale_scope) {
         errno = 0;
 
-#  ifdef USE_THREAD_SAFE_LOCALE /* Use the thread-safe locale functions */
+#  ifdef USE_POSIX_2008_LOCALE /* Use the thread-safe locale functions */
 
         DEBUG_Lv(PerlIO_printf(Perl_debug_log,
                                     "Not within locale scope, about to call"
@@ -2810,7 +2810,7 @@ Perl_my_strerror(pTHX_ const int errnum)
     if (! within_locale_scope) {
         errno = 0;
 
-#  ifdef USE_THREAD_SAFE_LOCALE
+#  ifdef USE_POSIX_2008_LOCALE
 
         DEBUG_Lv(PerlIO_printf(Perl_debug_log,
                     "%s: %d: not within locale scope, restoring the locale\n",
diff --git a/perl.c b/perl.c
index 563fb3b..6525f46 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -456,7 +456,7 @@ perl_construct(pTHXx)
     PL_WB_invlist = _new_invlist_C_array(_Perl_WB_invlist);
     PL_LB_invlist = _new_invlist_C_array(_Perl_LB_invlist);
     PL_Assigned_invlist = _new_invlist_C_array(Assigned_invlist);
-#ifdef USE_THREAD_SAFE_LOCALE
+#ifdef USE_POSIX_2008_LOCALE
     PL_C_locale_obj = newlocale(LC_ALL_MASK, "C", NULL);
 #endif
 
diff --git a/perl.h b/perl.h
index c5d1923..46ac02a 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -5894,18 +5894,19 @@ typedef struct am_table_short AMTS;
       &&   defined(LC_ALL_MASK)                 \
       &&   defined(HAS_FREELOCALE)              \
       &&   defined(HAS_USELOCALE)               \
-      && ! defined(NO_THREAD_SAFE_USELOCALE)
+      && ! defined(NO_POSIX_2008_LOCALE)
 
     /* The code is written for simplicity to assume that any platform advanced
      * enough to have the Posix 2008 locale functions has LC_ALL.  The test
      * above makes sure that assumption is valid */
 
-#    define USE_THREAD_SAFE_LOCALE
+#    define USE_POSIX_2008_LOCALE
 #  endif
 
 #   define LOCALE_INIT   MUTEX_INIT(&PL_locale_mutex)
 
-#   ifdef USE_THREAD_SAFE_LOCALE
+#   ifdef USE_POSIX_2008_LOCALE
+#       define USE_THREAD_SAFE_LOCALE
 #       define LOCALE_TERM                                                  \
                     STMT_START {                                            \
                         MUTEX_DESTROY(&PL_locale_mutex);                    \