summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2021-03-23 03:34:22 +0000
committerNorbert Preining <preining@logic.at>2021-03-23 03:34:22 +0000
commit909dfc060a5f0f5e1ca8bd16ef551a6ccd9cdd2d (patch)
treea482d975788749002f3980771ded1a365b96b7d5
parentb8ae22a07f6691b825debf68356839edf93f7bc0 (diff)
installer@windows: make sure that output is not scrambled on non-utf8 setups
Patch by Masamichi Hosoda git-svn-id: svn://tug.org/texlive/trunk@58646 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/install-tl9
-rw-r--r--Master/tlpkg/TeXLive/TLWinGoo.pm2
2 files changed, 10 insertions, 1 deletions
diff --git a/Master/install-tl b/Master/install-tl
index 7f40c7a8d25..a56dd3ac56b 100755
--- a/Master/install-tl
+++ b/Master/install-tl
@@ -158,6 +158,12 @@ use TeXLive::TLDownload;
use TeXLive::TLPaper;
if (win32) {
+ require Encode::Locale;
+ Encode::Locale->import ();
+ binmode (STDIN, ':encoding(console_in)');
+ binmode (STDOUT, ':encoding(console_out)');
+ binmode (STDERR, ':encoding(console_out)');
+
require TeXLive::TLWinGoo;
TeXLive::TLWinGoo->import( qw(
&is_vista
@@ -2492,6 +2498,9 @@ sub do_cleanup {
$::LOGFILENAME = "$vars{'TEXDIR'}/install-tl.log";
if (open(LOGF,">$::LOGFILENAME")) {
$::LOGFILE = \*LOGF;
+ if (win32) {
+ binmode (LOGF, ':utf8');
+ }
foreach my $line(@::LOGLINES) {
print $::LOGFILE "$line";
}
diff --git a/Master/tlpkg/TeXLive/TLWinGoo.pm b/Master/tlpkg/TeXLive/TLWinGoo.pm
index f5ccd83217a..8465eca6d3d 100644
--- a/Master/tlpkg/TeXLive/TLWinGoo.pm
+++ b/Master/tlpkg/TeXLive/TLWinGoo.pm
@@ -1426,7 +1426,7 @@ sub maybe_make_ro {
my $cmd = 'cmd /c "icacls . /reset && icacls . /inheritance:r'.
' /grant:r *S-1-5-32-544:(OI)(CI)F'.
' /grant:r *S-1-5-11:(OI)(CI)RX /grant:r *S-1-5-32-545:(OI)(CI)RX"';
- log "Making read-only\n".`$cmd`."\n";
+ log "Making read-only\n".Encode::decode(console_out,`$cmd`)."\n";
# go back to original directory
chdir $curdir;