[tex-live] xindy doesn't work on windows
Akira Kakuto
kakuto at fuk.kindai.ac.jp
Sat Aug 25 12:05:53 CEST 2012
Dear Ulrike,
I've committed the following change, r27520.
It is working fine here.
Thanks,
Akira
--- texmf/scripts/xindy/xindy.pl Wed Aug 22 08:25:34 2012
+++ xindy.pl Sat Aug 25 18:36:55 2012
@@ -348,6 +348,17 @@
our ($lib_dir, $modules_dir);
+# xindy-lisp.exe for Windows seems to be unable to interpret the short-name
+# format which is a default for the variables TEMP and TMP in Windows OS.
+# As a workaround, we create temporary files in the current directory
+# in xindy on Windows.
+
+if ( $is_w32 ) {
+use Env qw(TMPDIR);
+Env::import();
+$TMPDIR = ".";
+}
+
# We have different installation structures for TeX-Live and a
# standalone installation. In TeX-Live, the user command is a symlink
# in some bin directory, and the actual script is in the library
@@ -643,6 +654,7 @@
sub create_raw_index () {
my ($output, $outfile) = tempfile();
push (@temp_files, $outfile);
+ $outfile=quotify($outfile);
while ( <> ) {
print $output $_;
}
@@ -661,9 +673,8 @@
sub filter_index ( $$ ) {
my ($filter, $input) = @_;
my $output = tmpnam();
- $output=quotify($output);
- $input=quotify($input);
push (@temp_files, $output);
+ $output=quotify($output);
print "Running filter: $filter <$input >$output\n" if $verbose;
system "$filter <$input >$output";
print "filtered xindy input file: $output\n" if $debug{script};
@@ -739,13 +750,13 @@
my $sf;
($sf, $style_file) = tempfile();
push (@temp_files, $style_file);
+ $style_file=quotify($style_file);
foreach my $module ( @modules ) {
print $sf "(require \"$module\")\n";
}
close ($sf);
}
- $style_file = quotify($style_file);
$outfile = quotify($outfile);
$logging = ':logfile ' . quotify($logfile) if $logfile;
$tracing = ':markup-trace :on' if $debug{markup};
@@ -781,6 +792,7 @@
} elsif ($is_w32) {
my ($output, $outfile) = tempfile();
push (@temp_files, $outfile);
+ $outfile=quotify($outfile);
print $output $xindy_exp;
close ($output);
print "xindy startup file: $outfile\n" if $debug{script};
More information about the tex-live
mailing list