[perl #21672] IO::New and undefined filename behaviour
mike@exegenix.com [Mon, 24 Mar 2003 16:29:08 +0000 (16:29 +0000)]
From: "mike@exegenix.com (via RT)" <perlbug-followup@perl.org>
Message-Id: <rt-21672-54038.2.07650993465862@bugs6.perl.org>
plus a regression test

p4raw-id: //depot/perl@19072

ext/IO/lib/IO/File.pm
lib/FileHandle.t

index d5520cb..9c4177a 100644 (file)
@@ -158,9 +158,11 @@ sub open {
            defined $perms or $perms = 0666;
            return sysopen($fh, $file, $mode, $perms);
        }
-       if (! File::Spec->file_name_is_absolute($file)) {
-            $file = File::Spec->catfile(File::Spec->curdir(),$file);
-        }
+       if (defined($file) && length($file)
+           && ! File::Spec->file_name_is_absolute($file))
+       {
+           $file = File::Spec->catfile(File::Spec->curdir(),$file);
+       }
        $file = IO::Handle::_open_mode_string($mode) . " $file\0";
     }
     open($fh, $file);
index c994c8b..ddbd944 100755 (executable)
@@ -22,7 +22,7 @@ autoflush STDOUT 1;
 $mystdout = new_from_fd FileHandle 1,"w";
 $| = 1;
 autoflush $mystdout;
-print "1..11\n";
+print "1..12\n";
 
 print $mystdout "ok ".fileno($mystdout)."\n";
 
@@ -93,3 +93,5 @@ else {
    exit(0);
   }
 }
+
+print FileHandle->new('','r') ? "not ok 12\n" : "ok 12\n";