summaryrefslogtreecommitdiff
path: root/Master/install-tl
diff options
context:
space:
mode:
Diffstat (limited to 'Master/install-tl')
-rwxr-xr-xMaster/install-tl28
1 files changed, 20 insertions, 8 deletions
diff --git a/Master/install-tl b/Master/install-tl
index a56dd3ac56b..c7aac16ac78 100755
--- a/Master/install-tl
+++ b/Master/install-tl
@@ -157,13 +157,28 @@ use TeXLive::TLCrypto;
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 @@ sub do_cleanup {
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";
}