#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)); \
- SAVEFREEPV(loc); \
- setlocale(LC_NUMERIC, "C");
-
-# define RESTORE_NUMERIC_LOCAL()\
- setlocale(LC_NUMERIC, loc);
-# else
-# define STORE_NUMERIC_LOCAL_SET_STANDARD()
-# define RESTORE_NUMERIC_LOCAL()
-# endif
+#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_LC_NUMERIC()\
+ setlocale(LC_NUMERIC, loc);
+# else
+# define DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+# define STORE_LC_NUMERIC_SET_STANDARD()
+# define RESTORE_LC_NUMERIC()
+# endif
+# endif
#endif
#ifndef LOCK_NUMERIC_STANDARD
-#define LOCK_NUMERIC_STANDARD()
+# define LOCK_NUMERIC_STANDARD()
#endif
#ifndef UNLOCK_NUMERIC_STANDARD
-#define UNLOCK_NUMERIC_STANDARD()
+# define UNLOCK_NUMERIC_STANDARD()
+#endif
+
+/* The names of these changed in 5.28 */
+#ifndef LOCK_LC_NUMERIC_STANDARD
+# define LOCK_LC_NUMERIC_STANDARD() LOCK_NUMERIC_STANDARD()
+#endif
+#ifndef UNLOCK_LC_NUMERIC_STANDARD
+# define UNLOCK_LC_NUMERIC_STANDARD() UNLOCK_NUMERIC_STANDARD()
#endif
/* ex: set ro: */