[PATCH 5.004_65] Config_65-02-03.diff: SunOS and Solaris hints
[p5sagit/p5-mst-13.2.git] / t / op / ipcsem.t
index f3f6e3c..6839466 100755 (executable)
@@ -30,12 +30,15 @@ BEGIN {
        print "1..0\n";
        exit;
     }
+
+    use strict;
+
     my @incpath = (split(/\s+/, $Config{usrinc}), split(/\s+/ ,$Config{locincpth}));
     my %done = ();
     my %define = ();
 
     sub process_file {
-       my($file) = @_;
+       my($file, $level) = @_;
 
        return unless defined $file;
 
@@ -52,15 +55,18 @@ BEGIN {
        $done{$path} = 1;
 
        unless(defined $path) {
-           warn "Cannot find '$file'";
+           warn "Cannot find '$file'" if $level == 0;
            return;
        }
 
+        local *F;
+
        open(F,$path) or return;
+       $level = 0 unless defined $level;
        while(<F>) {
            s#/\*.*(\*/|$)##;
 
-           process_file($mm,$1)
+           process_file($1,$level+1)
                    if /^#\s*include\s*[<"]([^>"]+)[>"]/;
 
            s/(?:\([^)]*\)\s*)//;
@@ -75,16 +81,19 @@ BEGIN {
     process_file("sys/ipc.h");
     process_file("sys/stat.h");
 
-    foreach $d (@define) {
+    foreach my $d (@define) {
        while(defined($define{$d}) && $define{$d} !~ /^(0x)?\d+$/) {
            $define{$d} = exists $define{$define{$d}}
                    ? $define{$define{$d}} : undef;
        }
        unless(defined $define{$d}) {
-           print "0..0\n";
+           print "1..0\n";
            exit;
        };
-       ${ $d } = eval $define{$d};
+       {
+           no strict 'refs';
+           ${ $d } = eval $define{$d};
+       }
     }
 }