texlive[58690] Master/install-tl: Fix for terminal output in
commits+preining at tug.org
commits+preining at tug.org
Wed Mar 24 23:12:09 CET 2021
Revision: 58690
http://tug.org/svn/texlive?view=revision&revision=58690
Author: preining
Date: 2021-03-24 23:12:09 +0100 (Wed, 24 Mar 2021)
Log Message:
-----------
Fix for terminal output in non-ascii utf-8 locales
patch by Masamichi Hosoda
Modified Paths:
--------------
trunk/Master/install-tl
Modified: trunk/Master/install-tl
===================================================================
--- trunk/Master/install-tl 2021-03-24 21:38:01 UTC (rev 58689)
+++ trunk/Master/install-tl 2021-03-24 22:12:09 UTC (rev 58690)
@@ -157,13 +157,28 @@
use TeXLive::TLDownload;
use TeXLive::TLPaper;
-if (win32) {
+use Encode::Alias;
+eval {
require Encode::Locale;
Encode::Locale->import ();
- binmode (STDIN, ':encoding(console_in)');
- binmode (STDOUT, ':encoding(console_out)');
- binmode (STDERR, ':encoding(console_out)');
+ debug("Encode::Locale is loaded.\n");
+};
+if ($@) {
+ if (win32) {
+ die ("For Windows, Encode::Locale is required.\n");
+ }
+ debug("Encode::Locale is not found. Assuming all encodings are UTF-8.\n");
+ Encode::Alias::define_alias('locale' => 'UTF-8');
+ Encode::Alias::define_alias('locale_fs' => 'UTF-8');
+ Encode::Alias::define_alias('console_in' => 'UTF-8');
+ Encode::Alias::define_alias('console_out' => 'UTF-8');
+}
+binmode (STDIN, ':encoding(console_in)');
+binmode (STDOUT, ':encoding(console_out)');
+binmode (STDERR, ':encoding(console_out)');
+
+if (win32) {
require TeXLive::TLWinGoo;
TeXLive::TLWinGoo->import( qw(
&is_vista
@@ -2496,11 +2511,8 @@
if (!defined($::LOGFILE)) {
# no -logfile option; nothing written yet
$::LOGFILENAME = "$vars{'TEXDIR'}/install-tl.log";
- if (open(LOGF,">$::LOGFILENAME")) {
+ if (open(LOGF,">:utf8", $::LOGFILENAME)) {
$::LOGFILE = \*LOGF;
- if (win32) {
- binmode (LOGF, ':utf8');
- }
foreach my $line(@::LOGLINES) {
print $::LOGFILE "$line";
}
More information about the tex-live-commits
mailing list.