]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge remote branch 'blipvert/fixes'
authorJoey Hess <joey@kitenet.net>
Sun, 28 Nov 2010 17:35:52 +0000 (13:35 -0400)
committerJoey Hess <joey@kitenet.net>
Sun, 28 Nov 2010 17:35:52 +0000 (13:35 -0400)
1  2 
IkiWiki.pm

diff --combined IkiWiki.pm
index f57ef8c6c89d169cf8523d5f588b939f62d8d540,b3d47ed6acec5333c531437e159be8b68dcba666..c06751dd36bc0bf656e9b7abfc49d5c8a9455c47
@@@ -1201,7 -1201,7 +1201,7 @@@ sub userpage ($) 
  sub openiduser ($) {
        my $user=shift;
  
-       if ($user =~ m!^https?://! &&
+       if (defined $user && $user =~ m!^https?://! &&
            eval q{use Net::OpenID::VerifiedIdentity; 1} && !$@) {
                my $display;
  
@@@ -2388,7 -2388,7 +2388,7 @@@ sub glob2re ($) 
        my $re=quotemeta(shift);
        $re=~s/\\\*/.*/g;
        $re=~s/\\\?/./g;
 -      return $re;
 +      return qr/^$re$/i;
  }
  
  package IkiWiki::FailReason;
@@@ -2482,8 -2482,6 +2482,8 @@@ sub derel ($$) 
        return $path;
  }
  
 +my %glob_cache;
 +
  sub match_glob ($$;@) {
        my $page=shift;
        my $glob=shift;
        
        $glob=derel($glob, $params{location});
  
 -      my $regexp=IkiWiki::glob2re($glob);
 -      if ($page=~/^$regexp$/i) {
 +      # Instead of converting the glob to a regex every time,
 +      # cache the compiled regex to save time.
 +      my $re=$glob_cache{$glob};
 +      unless (defined $re) {
 +              $glob_cache{$glob} = $re = IkiWiki::glob2re($glob);
 +      }
 +      if ($page =~ $re) {
                if (! IkiWiki::isinternal($page) || $params{internal}) {
                        return IkiWiki::SuccessReason->new("$glob matches $page");
                }
@@@ -2667,7 -2660,7 +2667,7 @@@ sub match_user ($$;@) 
                return IkiWiki::ErrorReason->new("no user specified");
        }
  
 -      if (defined $params{user} && $params{user}=~/^$regexp$/i) {
 +      if (defined $params{user} && $params{user}=~$regexp) {
                return IkiWiki::SuccessReason->new("user is $user");
        }
        elsif (! defined $params{user}) {