fix undef warning when page() tests a deleted file
authorJoey Hess <joey@kitenet.net>
Fri, 7 May 2010 17:25:32 +0000 (13:25 -0400)
committerJoey Hess <joey@kitenet.net>
Fri, 7 May 2010 17:25:32 +0000 (13:25 -0400)
IkiWiki.pm
doc/bugs/deletion_warnings.mdwn

index 11cfcdfd2d9ef31112f431963d52e8c31efe0f01..d76b5edb403b931e207ccd6dd4ac2f8f5da4fe95 100644 (file)
@@ -2348,7 +2348,8 @@ sub match_internal ($$;@) {
 sub match_page ($$;@) {
        my $page=shift;
        my $match=match_glob($page, shift, @_);
-       if ($match && ! defined IkiWiki::pagetype($IkiWiki::pagesources{$page})) {
+       if ($match && ! (exists $IkiWiki::pagesources{$page}
+           && defined IkiWiki::pagetype($IkiWiki::pagesources{$page}))) {
                return IkiWiki::FailReason->new("$page is not a page");
        }
        else {
index c8879379b3a971d29b9f927e908d75a131200f86..668626b49b530d9041a308840f26ebbced72efcb 100644 (file)
@@ -2,6 +2,9 @@ Seen while deleting a blog's calendar pages:
 
 --[[Joey]] 
 
+[[done]] -- the new `page()` pagespec needed to check if there was a source
+file for the page, and was leaking undef.
+
 <pre>
    427250f..ff6c054  master     -> origin/master
 Use of uninitialized value $file in pattern match (m//) at /usr/share/perl5/IkiWiki.pm line 688.