summaryrefslogtreecommitdiff
path: root/Build/source/utils/xindy/xindy-2.4-PATCHES/patch-63-win32
blob: f0f11a164d781662ff50bc5e60e4688740dcf80a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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\"";
 }