From fe05969b87105145327d1c828ab4e8770c0da544 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Mon, 21 Jun 2010 09:26:17 +0000 Subject: xindy bug fix for win32 from Akira git-svn-id: svn://tug.org/texlive/trunk@19091 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/dvipsk/ChangeLog | 2 +- .../source/utils/xindy/xindy-2.4-PATCHES/ChangeLog | 8 ++- .../utils/xindy/xindy-2.4-PATCHES/patch-63-win32 | 75 ++++++++++++++++++++++ Build/source/utils/xindy/xindy/src/idxstyle.lsp | 1 + .../utils/xindy/xindy/user-commands/xindy.in | 18 ++++-- 5 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 Build/source/utils/xindy/xindy-2.4-PATCHES/patch-63-win32 (limited to 'Build') diff --git a/Build/source/texk/dvipsk/ChangeLog b/Build/source/texk/dvipsk/ChangeLog index 3fc0375ba63..0b523aa46ea 100644 --- a/Build/source/texk/dvipsk/ChangeLog +++ b/Build/source/texk/dvipsk/ChangeLog @@ -1,7 +1,7 @@ 2010-06-19 Yan Li * tfmload.c (name): increase size to 500. - (badtfm): check for name length overflow. + (tfmopen): check for name length overflow. 2010-06-13 Karl Berry diff --git a/Build/source/utils/xindy/xindy-2.4-PATCHES/ChangeLog b/Build/source/utils/xindy/xindy-2.4-PATCHES/ChangeLog index cefddd09000..72586736f1a 100644 --- a/Build/source/utils/xindy/xindy-2.4-PATCHES/ChangeLog +++ b/Build/source/utils/xindy/xindy-2.4-PATCHES/ChangeLog @@ -1,10 +1,14 @@ +2010-06-21 Peter Breitenlohner + + * patch-63-win32 (new): Bug fix for Win32 from Akira. + 2010-06-11 Peter Breitenlohner - patch-62-bug-fix (new): Bug fix from Joachim Schrod. + * patch-62-bug-fix (new): Bug fix from Joachim Schrod. 2010-05-12 Peter Breitenlohner - patch-61-detect-TL (new): Better detection of TL installation. + * patch-61-detect-TL (new): Better detection of TL installation. 2010-05-11 Peter Breitenlohner diff --git a/Build/source/utils/xindy/xindy-2.4-PATCHES/patch-63-win32 b/Build/source/utils/xindy/xindy-2.4-PATCHES/patch-63-win32 new file mode 100644 index 00000000000..80587bf5665 --- /dev/null +++ b/Build/source/utils/xindy/xindy-2.4-PATCHES/patch-63-win32 @@ -0,0 +1,75 @@ +diff -ur -N -x Makefile.in -x autom4te.cache xindy.orig/src/idxstyle.lsp xindy/src/idxstyle.lsp +--- xindy.orig/src/idxstyle.lsp 2009-03-23 19:28:30.000000000 +0100 ++++ xindy/src/idxstyle.lsp 2010-06-21 10:22:18.716154747 +0200 +@@ -779,6 +779,7 @@ + (return (push :default paths))) + (setq pos (position #+UNIX #\: + #+OS/2 #\; ++ #+WIN32 #\; + str)) + (if pos + (progn +diff -ur -N -x Makefile.in -x autom4te.cache xindy.orig/user-commands/xindy.in xindy/user-commands/xindy.in +--- xindy.orig/user-commands/xindy.in 2010-05-12 11:09:37.000000000 +0200 ++++ xindy/user-commands/xindy.in 2010-06-21 10:22:40.352777904 +0200 +@@ -339,6 +339,7 @@ + + our $is_TL = ( '@is_TL@' eq 'yes' ); + our $is_w32 = ( $OSNAME =~ /^MSWin/i ) ; ++our $path_sep = ( $is_w32 ? ';' : ':' ) ; + our $is_windows = ( $is_w32 || $OSNAME eq 'cygwin' ) ; + our $clisp = ( $is_windows ? 'clisp.exe' : 'clisp' ) ; + our $real_cmd = Cwd::realpath($0); +@@ -676,7 +677,7 @@ + # Construct final xindy expression, from options. + + sub xindy_expression () { +- my ($logging, $tracing, $trace_level); ++ my ($logging, $tracing, $trace_level, $searchpath); + + # Determine language module of make-rules framework. Part of the + # complexity below is from compatibility with the TLC2 +@@ -744,16 +745,18 @@ + + $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}; ++ $searchpath = quotify(join($path_sep, ".", $modules_dir, "$modules_dir/base")); + + my $exp = <<_EOT_ + (progn +- (searchpath ".:$modules_dir:$modules_dir/base") ++ (searchpath $searchpath) + (xindy:startup + :idxstyle $style_file +- :rawindex "$raw_index" ++ :rawindex $raw_index + :output $outfile + $logging + $tracing +@@ -774,6 +777,13 @@ + my @command = ($clisp, '-M', $mem_file, '-E', 'iso-8859-1'); + if ( $interactive ) { + print "Proposed xindy expression:\n\n$xindy_exp\n" unless $quiet; ++ } elsif ($is_w32) { ++ my ($output, $outfile) = tempfile(); ++ push (@temp_files, $outfile); ++ print $output $xindy_exp; ++ close ($output); ++ print "xindy startup file: $outfile\n" if $debug{script}; ++ push (@command, "$outfile"); + } else { + push (@command, '-x', $xindy_exp); + } +@@ -835,7 +845,7 @@ + + sub quotify ( $ ) { + my $s = shift; +- $s =~ s:[\\\"]:\\&1:g ; # quote double-quote and backslash ++ $s =~ s:([\\\"]):\\$1:g ; + return "\"$s\""; + } + diff --git a/Build/source/utils/xindy/xindy/src/idxstyle.lsp b/Build/source/utils/xindy/xindy/src/idxstyle.lsp index 734d3997e22..2a561aee7f9 100644 --- a/Build/source/utils/xindy/xindy/src/idxstyle.lsp +++ b/Build/source/utils/xindy/xindy/src/idxstyle.lsp @@ -779,6 +779,7 @@ NIL in cases where no switch keyword was found in EXPR. (return (push :default paths))) (setq pos (position #+UNIX #\: #+OS/2 #\; + #+WIN32 #\; str)) (if pos (progn diff --git a/Build/source/utils/xindy/xindy/user-commands/xindy.in b/Build/source/utils/xindy/xindy/user-commands/xindy.in index e594861a539..3b099c4e53b 100644 --- a/Build/source/utils/xindy/xindy/user-commands/xindy.in +++ b/Build/source/utils/xindy/xindy/user-commands/xindy.in @@ -339,6 +339,7 @@ use POSIX qw(uname); our $is_TL = ( '@is_TL@' eq 'yes' ); our $is_w32 = ( $OSNAME =~ /^MSWin/i ) ; +our $path_sep = ( $is_w32 ? ';' : ':' ) ; our $is_windows = ( $is_w32 || $OSNAME eq 'cygwin' ) ; our $clisp = ( $is_windows ? 'clisp.exe' : 'clisp' ) ; our $real_cmd = Cwd::realpath($0); @@ -676,7 +677,7 @@ sub filter_index ( $$ ) { # Construct final xindy expression, from options. sub xindy_expression () { - my ($logging, $tracing, $trace_level); + my ($logging, $tracing, $trace_level, $searchpath); # Determine language module of make-rules framework. Part of the # complexity below is from compatibility with the TLC2 @@ -744,16 +745,18 @@ sub xindy_expression () { $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}; + $searchpath = quotify(join($path_sep, ".", $modules_dir, "$modules_dir/base")); my $exp = <<_EOT_ (progn - (searchpath ".:$modules_dir:$modules_dir/base") + (searchpath $searchpath) (xindy:startup :idxstyle $style_file - :rawindex "$raw_index" + :rawindex $raw_index :output $outfile $logging $tracing @@ -774,6 +777,13 @@ sub call_xindy ( $$ ) { my @command = ($clisp, '-M', $mem_file, '-E', 'iso-8859-1'); if ( $interactive ) { print "Proposed xindy expression:\n\n$xindy_exp\n" unless $quiet; + } elsif ($is_w32) { + my ($output, $outfile) = tempfile(); + push (@temp_files, $outfile); + print $output $xindy_exp; + close ($output); + print "xindy startup file: $outfile\n" if $debug{script}; + push (@command, "$outfile"); } else { push (@command, '-x', $xindy_exp); } @@ -835,7 +845,7 @@ sub output_xindy_release () { sub quotify ( $ ) { my $s = shift; - $s =~ s:[\\\"]:\\&1:g ; # quote double-quote and backslash + $s =~ s:([\\\"]):\\$1:g ; return "\"$s\""; } -- cgit v1.2.3