DJGPP update from Laszlo Molnar.
ml1050 [Sat, 26 Aug 2000 23:24:40 +0000 (01:24 +0200)]
Subject: [ID 20000826.014] Not OK: perl v5.7.0 +SUIDMAIL +DEVEL6788 on dos-djgpp djgpp (UNINSTALLED) [PATCH]
Message-Id: <20000826232440.A439@freemail.hu>

p4raw-id: //depot/perl@6844

djgpp/config.over
lib/File/Temp.pm
pod/buildtoc.PL
t/lib/ftmp-security.t
t/lib/posix.t
t/pragma/warn/pp_sys

index 5c25236..b48774f 100644 (file)
@@ -34,7 +34,8 @@ repair()
      -e 's=file/=='\
      -e 's=File/=='\
      -e 's=glob=='\
-     -e 's=Glob=='
+     -e 's=Glob=='\
+     -e 's/storable/Storable/'
 }
 static_ext=$(repair "$static_ext")
 extensions=$(repair "$extensions")
index fd84744..956a41d 100644 (file)
@@ -732,7 +732,7 @@ sub _can_do_level {
   return 1 if $level == STANDARD;
 
   # Currently, the systems that can do HIGH or MEDIUM are identical
-  if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin') {
+  if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin' || $^O eq 'dos') {
     return 0;
   } else {
     return 1;
@@ -1530,6 +1530,8 @@ sub unlink0 {
     @okstat = (2,3,4,5,7,8,9,10);
   } elsif ($^O eq 'VMS') { # device and file ID are sufficient
     @okstat = (0, 1);
+  } elsif ($^O eq 'dos') {
+     @okstat = (0,2..7,11..$#fh);
   }
 
   # Now compare each entry explicitly by number
index 140d214..55e3925 100644 (file)
@@ -472,3 +472,7 @@ sub output ($) {
 
 !NO!SUBS!
 
+close OUT or die "Can't close $file: $!";
+chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
+exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
+chdir $origdir;
index d31cc9e..761cbc1 100755 (executable)
@@ -25,7 +25,7 @@ use File::Temp qw/ tempfile unlink0 /;
 ok(1);
 
 # The high security tests must currently be skipped on Windows
-my $skipplat = ( ($^O eq 'MSWin32' || $^O eq 'os2') ? 1 : 0 );
+my $skipplat = ( ($^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'dos') ? 1 : 0 );
 
 # Can not run high security tests in perls before 5.6.0
 my $skipperl  = ($] < 5.006 ? 1 : 0 );
index abc4563..d38e7ef 100755 (executable)
@@ -17,6 +17,7 @@ $| = 1;
 print "1..27\n";
 
 $Is_W32 = $^O eq 'MSWin32';
+$Is_Dos = $^O eq 'dos';
 
 $testfd = open("TEST", O_RDONLY, 0) and print "ok 1\n";
 read($testfd, $buffer, 9) if $testfd > 2;
@@ -24,6 +25,11 @@ print $buffer eq "#!./perl\n" ? "ok 2\n" : "not ok 2\n";
 
 write(1,"ok 3\nnot ok 3\n", 5);
 
+if ($Is_Dos) {
+    for (4..5) {
+        print "ok $_ # skipped, no pipe() support on dos\n";
+    }
+} else {
 @fds = POSIX::pipe();
 print $fds[0] > $testfd ? "ok 4\n" : "not ok 4\n";
 CORE::open($reader = \*READER, "<&=".$fds[0]);
@@ -32,10 +38,11 @@ print $writer "ok 5\n";
 close $writer;
 print <$reader>;
 close $reader;
+}
 
-if ($Is_W32) {
+if ($Is_W32 || $Is_Dos) {
     for (6..11) {
-       print "ok $_ # skipped, no sigaction support on win32\n";
+       print "ok $_ # skipped, no sigaction support on win32/dos\n";
     }
 }
 else {
index 413a17b..88c3542 100644 (file)
@@ -382,6 +382,13 @@ Unsuccessful open on filename containing newline at - line 3.
 ########
 # pp_sys.c [pp_sysread]
 use warnings 'io' ;
+if ($^O eq 'dos') {
+    print <<EOM ;
+SKIPPED
+# skipped on dos
+EOM
+    exit ;
+}
 my $file = "./xcv" ;
 open(F, ">$file") ; 
 my $a = sysread(F, $a,10) ;