diff options
-rw-r--r-- | ext/IO/lib/IO/File.pm | 8 | ||||
-rwxr-xr-x | lib/FileHandle.t | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/ext/IO/lib/IO/File.pm b/ext/IO/lib/IO/File.pm index d5520cbd93..9c4177a6a1 100644 --- a/ext/IO/lib/IO/File.pm +++ b/ext/IO/lib/IO/File.pm @@ -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); diff --git a/lib/FileHandle.t b/lib/FileHandle.t index c994c8b448..ddbd94474e 100755 --- a/lib/FileHandle.t +++ b/lib/FileHandle.t @@ -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"; |