From 8abe57d4e933e9e001ad729c004a610706135113 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Wed, 10 Apr 2013 08:42:08 +0000 Subject: xindy: Win32 updates from Akira git-svn-id: svn://tug.org/texlive/trunk@29818 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/utils/xindy/xindy-2.4-PATCHES/ChangeLog | 7 +++ .../utils/xindy/xindy-2.4-PATCHES/patch-65-win32 | 62 ++++++++++++++++++++++ .../utils/xindy/xindy-2.4/user-commands/xindy.in | 17 +++++- 3 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 Build/source/utils/xindy/xindy-2.4-PATCHES/patch-65-win32 (limited to 'Build/source/utils/xindy') diff --git a/Build/source/utils/xindy/xindy-2.4-PATCHES/ChangeLog b/Build/source/utils/xindy/xindy-2.4-PATCHES/ChangeLog index 4d0ec76c8ca..89c414a9932 100644 --- a/Build/source/utils/xindy/xindy-2.4-PATCHES/ChangeLog +++ b/Build/source/utils/xindy/xindy-2.4-PATCHES/ChangeLog @@ -1,3 +1,10 @@ +2013-04-10 Peter Breitenlohner + + * patch-65-win32 (new): More Win32 changes (from Akira): + - r27491 2012-08-22: support spaces in TMPDIR. + - r27520 2012-08-25: use current directory for temporary files + on Windows. + 2012-09-27 Peter Breitenlohner * patch-0[34]-win32 (new): Various Win32 changes (from Akira). diff --git a/Build/source/utils/xindy/xindy-2.4-PATCHES/patch-65-win32 b/Build/source/utils/xindy/xindy-2.4-PATCHES/patch-65-win32 new file mode 100644 index 00000000000..bada224a7b7 --- /dev/null +++ b/Build/source/utils/xindy/xindy-2.4-PATCHES/patch-65-win32 @@ -0,0 +1,62 @@ +diff -ur -N -x Makefile.in -x autom4te.cache xindy-2.4.orig/user-commands/xindy.in xindy-2.4/user-commands/xindy.in +--- xindy-2.4.orig/user-commands/xindy.in 2010-06-21 10:22:40.000000000 +0200 ++++ xindy-2.4/user-commands/xindy.in 2013-04-10 09:54:12.000000000 +0200 +@@ -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 $_; + } +@@ -662,6 +674,7 @@ + my ($filter, $input) = @_; + my $output = tmpnam(); + 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}; +@@ -737,15 +750,14 @@ + 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); +- $raw_index = quotify($raw_index); + $logging = ':logfile ' . quotify($logfile) if $logfile; + $tracing = ':markup-trace :on' if $debug{markup}; + $trace_level = ":trace-level $debug{trace_level}" if $debug{trace_level}; +@@ -780,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}; diff --git a/Build/source/utils/xindy/xindy-2.4/user-commands/xindy.in b/Build/source/utils/xindy/xindy-2.4/user-commands/xindy.in index 3b099c4e53b..69aabd38aae 100644 --- a/Build/source/utils/xindy/xindy-2.4/user-commands/xindy.in +++ b/Build/source/utils/xindy/xindy-2.4/user-commands/xindy.in @@ -348,6 +348,17 @@ our $cmd = basename($0); 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 handle_signals () { sub create_raw_index () { my ($output, $outfile) = tempfile(); push (@temp_files, $outfile); + $outfile=quotify($outfile); while ( <> ) { print $output $_; } @@ -662,6 +674,7 @@ sub filter_index ( $$ ) { my ($filter, $input) = @_; my $output = tmpnam(); 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}; @@ -737,15 +750,14 @@ sub xindy_expression () { 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); - $raw_index = quotify($raw_index); $logging = ':logfile ' . quotify($logfile) if $logfile; $tracing = ':markup-trace :on' if $debug{markup}; $trace_level = ":trace-level $debug{trace_level}" if $debug{trace_level}; @@ -780,6 +792,7 @@ sub call_xindy ( $$ ) { } 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}; -- cgit v1.2.3