]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki.pm
web commit by JoshTriplett: Escape code with ``
[git.ikiwiki.info.git] / IkiWiki.pm
index a0b9027941fd1d7c18ea7d4e50c16f4763532862..761160eca5056d87f947f322c0853060d27a2021 100644 (file)
@@ -643,7 +643,7 @@ sub preprocess ($$$;$$) { #{{{
                        return $ret;
                }
                else {
-                       return "[[$command $params]]";
+                       return "\\[[$command $params]]";
                }
        };
        
@@ -668,7 +668,8 @@ sub indexlink () { #{{{
        return "<a href=\"$config{url}\">$config{wikiname}</a>";
 } #}}}
 
-sub lockwiki () { #{{{
+sub lockwiki (;$) { #{{{
+       my $wait=@_ ? shift : 1;
        # Take an exclusive lock on the wiki to prevent multiple concurrent
        # run issues. The lock will be dropped on program exit.
        if (! -d $config{wikistatedir}) {
@@ -677,15 +678,21 @@ sub lockwiki () { #{{{
        open(WIKILOCK, ">$config{wikistatedir}/lockfile") ||
                error ("cannot write to $config{wikistatedir}/lockfile: $!");
        if (! flock(WIKILOCK, 2 | 4)) { # LOCK_EX | LOCK_NB
-               debug("wiki seems to be locked, waiting for lock");
-               my $wait=600; # arbitrary, but don't hang forever to 
-                             # prevent process pileup
-               for (1..$wait) {
-                       return if flock(WIKILOCK, 2 | 4);
-                       sleep 1;
+               if ($wait) {
+                       debug("wiki seems to be locked, waiting for lock");
+                       my $wait=600; # arbitrary, but don't hang forever to 
+                                     # prevent process pileup
+                       for (1..$wait) {
+                               return if flock(WIKILOCK, 2 | 4);
+                               sleep 1;
+                       }
+                       error("wiki is locked; waited $wait seconds without lock being freed (possible stuck process or stale lock?)");
+               }
+               else {
+                       return 0;
                }
-               error("wiki is locked; waited $wait seconds without lock being freed (possible stuck process or stale lock?)");
        }
+       return 1;
 } #}}}
 
 sub unlockwiki () { #{{{
@@ -739,9 +746,9 @@ sub loadindex () { #{{{
                        $depends{$page}=$items{depends}[0] if exists $items{depends};
                        $destsources{$_}=$page foreach @{$items{dest}};
                        $renderedfiles{$page}=[@{$items{dest}}];
-                       $oldrenderedfiles{$page}=[@{$items{dest}}];
                        $pagecase{lc $page}=$page;
                }
+               $oldrenderedfiles{$page}=[@{$items{dest}}];
                $pagectime{$page}=$items{ctime}[0];
        }
        close IN;