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

Tomi Ollila tomi.ollila at iki.fi
Thu Jun 9 12:35:12 PDT 2016


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...
---
 devel/man-to-mdwn.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/devel/man-to-mdwn.pl b/devel/man-to-mdwn.pl
index f9d31b73a237..a3c40695c4ea 100755
--- a/devel/man-to-mdwn.pl
+++ b/devel/man-to-mdwn.pl
@@ -66,7 +66,7 @@ while (my ($k, $v) = each %fhash)
 
     my @lines;
     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/man/, $v or die "$!";
     binmode I, ':utf8';
-- 
2.8.2



More information about the notmuch mailing list