Hello,
1 - setting SHELL to cmd.exe /x /c breaks dmake, not setting it works
2 - correctly init DIRFILESEP
3 - dmake eats '{' inside double quotes and leaves alnoe { outside double
    quotes; however it transforms {{ into { either inside and outside double
    quotes

After the patch MM tests ok (except for known failures in split_command.t).

Regards
Mattia

? ExtUtils-MakeMaker.ppd
? Makefile
? blib
? pm_to_blib
Index: lib/ExtUtils/MM_Unix.pm
===================================================================
RCS file: /home/schwern/cvs/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm,v
retrieving revision 1.138
diff -u -2 -r1.138 MM_Unix.pm
--- lib/ExtUtils/MM_Unix.pm     22 Dec 2002 05:06:44 -0000      1.138
+++ lib/ExtUtils/MM_Unix.pm     22 Dec 2002 14:34:22 -0000
@@ -3855,4 +3855,5 @@
              UMASK_NULL DEV_NULL/ ) 
     {
+        next unless defined $self->{$_};
        push @m, "$_ = $self->{$_}\n";
     }
Index: lib/ExtUtils/MM_Win32.pm
===================================================================
RCS file: /home/schwern/cvs/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm,v
retrieving revision 1.55
diff -u -2 -r1.55 MM_Win32.pm
--- lib/ExtUtils/MM_Win32.pm    22 Dec 2002 03:44:48 -0000      1.55
+++ lib/ExtUtils/MM_Win32.pm    22 Dec 2002 14:34:24 -0000
@@ -148,5 +148,7 @@
 
     # gotta be careful this isn't interpreted as an escape.
-    $self->{DIRFILESEP} = '^\\';
+    $self->{DIRFILESEP} = $NMAKE ? '^\\' :
+                          $DMAKE ? '\\\\' :
+                          '\\';
 }
 
@@ -198,4 +200,6 @@
     }
 
+    delete $self->{SHELL} if $DMAKE;
+
     return 1;
 }
@@ -458,4 +462,11 @@
     # Win98's command.com
     $text =~ s{"}{\\"}g;
+
+    # dmake eats '{' inside double quotes and leaves alnoe { outside double
+    # quotes; however it transforms {{ into { either inside and outside double
+    # quotes
+    if ( $DMAKE ) {
+        $text =~ s/{/{{/g;
+    }
 
     return qq{"$text"};

Reply via email to