summaryrefslogtreecommitdiff
path: root/vutil.h
diff options
context:
space:
mode:
Diffstat (limited to 'vutil.h')
-rw-r--r--vutil.h29
1 files changed, 18 insertions, 11 deletions
diff --git a/vutil.h b/vutil.h
index e291408db6..193c66d561 100644
--- a/vutil.h
+++ b/vutil.h
@@ -223,21 +223,28 @@ const char * Perl_prescan_version(pTHX_ const char *s, bool strict, const char**
#endif
-#if PERL_VERSION_LT(5,19,0)
-# undef STORE_NUMERIC_LOCAL_SET_STANDARD
-# undef RESTORE_NUMERIC_LOCAL
-# ifdef USE_LOCALE
-# define STORE_NUMERIC_LOCAL_SET_STANDARD()\
- char *loc = savepv(setlocale(LC_NUMERIC, NULL)); \
+#if PERL_VERSION_LT(5,27,9)
+# define LC_NUMERIC_LOCK
+# define LC_NUMERIC_UNLOCK
+# if PERL_VERSION_LT(5,19,0)
+# undef STORE_LC_NUMERIC_SET_STANDARD
+# undef RESTORE_LC_NUMERIC
+# undef DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+# ifdef USE_LOCALE
+# define DECLARATION_FOR_LC_NUMERIC_MANIPULATION char *loc
+# define STORE_NUMERIC_SET_STANDARD()\
+ loc = savepv(setlocale(LC_NUMERIC, NULL)); \
SAVEFREEPV(loc); \
setlocale(LC_NUMERIC, "C");
-# define RESTORE_NUMERIC_LOCAL()\
+# define RESTORE_LC_NUMERIC()\
setlocale(LC_NUMERIC, loc);
-# else
-# define STORE_NUMERIC_LOCAL_SET_STANDARD()
-# define RESTORE_NUMERIC_LOCAL()
-# endif
+# else
+# define DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+# define STORE_LC_NUMERIC_SET_STANDARD()
+# define RESTORE_LC_NUMERIC()
+# endif
+# endif
#endif
#ifndef LOCK_NUMERIC_STANDARD