> Not for Windows, because Windows lacks the nl_langinfo function, for
> which this module is a think wrapper on Unix.
> 
> AFAIU, on Windows this module is available only starting from v5.28.

Can we use LC_CTYPE, like:

diff --git a/tp/texi2any.pl b/tp/texi2any.pl
index d6061bd8f0..8864ebeedc 100755
--- a/tp/texi2any.pl
+++ b/tp/texi2any.pl
@@ -26,7 +26,9 @@ require 5.00405;
 use strict;
 
 # to determine the locale encoding
-use I18N::Langinfo qw(langinfo CODESET);
+#use I18N::Langinfo qw(langinfo CODESET);
+use POSIX qw(setlocale LC_ALL LC_CTYPE);
+
 # to decode command line arguments
 use Encode qw(decode encode find_encoding);
 # for file names portability
@@ -297,7 +299,12 @@ if ($texinfo_dtd_version eq '@' . 'TEXINFO_DTD_VERSION@') {
 # the encoding used to decode command line arguments, and also for
 # file names encoding, perl is expecting sequences of bytes, not unicode
 # code points.
-my $locale_encoding = langinfo(CODESET);
+# my $locale_encoding = langinfo(CODESET);
+my $locale_encoding = POSIX::setlocale(LC_CTYPE);
+
+# extract MODIFIER from LANGUAGE[_TERRITORY[.CODESET]][@MODIFIER]
+$locale_encoding =~ s/^[^.]*.//;
+$locale_encoding =~ s/@.*$//;
 $locale_encoding = undef if ($locale_encoding eq '');
 
 # Used in case it is not hardcoded in configure and for standalone perl module

If this works then we could switch to it and not use I18N::Langinfo at
all.

Reply via email to