diff -ur -N -x Makefile.in -x autom4te.cache xindy-2.4.orig/src/idxstyle.lsp xindy-2.4/src/idxstyle.lsp --- xindy-2.4.orig/src/idxstyle.lsp 2009-03-23 19:28:30.000000000 +0100 +++ xindy-2.4/src/idxstyle.lsp 2010-06-21 10:22:18.000000000 +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-2.4.orig/user-commands/xindy.in xindy-2.4/user-commands/xindy.in --- xindy-2.4.orig/user-commands/xindy.in 2010-05-12 11:09:37.000000000 +0200 +++ xindy-2.4/user-commands/xindy.in 2010-06-21 10:22:40.000000000 +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\""; }