summaryrefslogtreecommitdiff
path: root/dist/ExtUtils-ParseXS/lib/perlxs.pod
diff options
context:
space:
mode:
Diffstat (limited to 'dist/ExtUtils-ParseXS/lib/perlxs.pod')
-rw-r--r--dist/ExtUtils-ParseXS/lib/perlxs.pod14
1 files changed, 9 insertions, 5 deletions
diff --git a/dist/ExtUtils-ParseXS/lib/perlxs.pod b/dist/ExtUtils-ParseXS/lib/perlxs.pod
index 78297c276c..2011ac890a 100644
--- a/dist/ExtUtils-ParseXS/lib/perlxs.pod
+++ b/dist/ExtUtils-ParseXS/lib/perlxs.pod
@@ -2223,8 +2223,14 @@ handled.
If the locale from the user's environment is desired, there should be no
need for XS code to set the locale except for C<LC_NUMERIC>, as perl has
-already set it up. XS code should avoid changing the locale, as it can
-adversely affect other, unrelated, code and may not be thread safe.
+already set the others up. XS code should avoid changing the locale, as
+it can adversely affect other, unrelated, code and may not be
+thread-safe. To minimize problems, the macros
+L<perlapi/STORE_LC_NUMERIC_SET_TO_NEEDED>,
+L<perlapi/STORE_LC_NUMERIC_FORCE_TO_UNDERLYING>, and
+L<perlapi/RESTORE_LC_NUMERIC> should be used to affect any needed
+change.
+
However, some alien libraries that may be called do set it, such as
C<Gtk>. This can cause problems for the perl core and other modules.
Starting in v5.20.1, calling the function
@@ -2234,9 +2240,7 @@ statement that does this:
POSIX::setlocale(LC_ALL, POSIX::setlocale(LC_ALL));
-In the event that your XS code may need the underlying C<LC_NUMERIC>
-locale, there are macros available to access this; see
-L<perlapi/Locale-related functions and macros>.
+or use the methods given in L<perlcall>.
=back