devel/man-to-mdwn.pl: portable locale environment variable setting

Setting locale environment variables (LC_* and LANG) to e.g.
en_US.utf8 works fine on Linux, and that is what locale -a
returns (in Linux). However this does not work e.g. in some *BSD
systems.
In these systems, en_US.UTF-8 works. This also works in Linux
systems (which may look like a surprising thing on the first sight(*)).
But that *UTF-8 format seems to be widely used in the Linux system:
Grep it through the files in /etc/, for example.

Easy way to test: Run the following command lines. First should
complain about setting locale failed, and second should not.

$ LC_ALL=en_US.UTF-1 perl -e ''
$ LC_ALL=en_US.UTF-8 perl -e ''

(*) and who knows what the "standard" is...
This commit is contained in:
Tomi Ollila 2016-06-09 22:35:12 +03:00 committed by David Bremner
parent 4291f32680
commit 1e96445cb5

View file

@ -66,7 +66,7 @@ while (my ($k, $v) = each %fhash)
my @lines; my @lines;
open I, '-|', qw/env -i/, "PATH=$ENV{PATH}", open I, '-|', qw/env -i/, "PATH=$ENV{PATH}",
qw/TERM=vt100 LANG=en_US.utf8 LC_ALL=en_US.utf8/, qw/TERM=vt100 LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8/,
qw/GROFF_NO_SGR=1 MAN_KEEP_FORMATTING=1 MANWIDTH=80/, qw/GROFF_NO_SGR=1 MAN_KEEP_FORMATTING=1 MANWIDTH=80/,
qw/man/, $v or die "$!"; qw/man/, $v or die "$!";
binmode I, ':utf8'; binmode I, ':utf8';