--- old-pmwiki/pmwiki.php 2006-06-23 00:32:43.000000000 -0400 +++ new-pmwiki/pmwiki.php 2006-06-23 00:32:43.000000000 -0400 @@ -1217,13 +1217,27 @@ StopWatch('MarkupToHTML end'); return $out; } + +function RetrieveAuthPageRev($pagename, $auth = 'read') { + if( isset($_REQUEST['rev']) ) { + $page = RetrieveAuthPage($pagename, $auth, true, $_REQUEST['rev']); + if(!$page) return NULL; + RestorePage($pagename, $page, $page, "diff:$_REQUEST[rev]:Z"); + # Yes, appending ":Z" is a dirty hack, but it puts this DiffID in + # the right order relative to those of the form "diff:Ti:Tj:". + } + else { + $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT); + } + return $page; +} function HandleBrowse($pagename, $auth = 'read') { # handle display of a page global $DefaultPageTextFmt, $PageNotFoundHeaderFmt, $HTTPHeaders, $EnableHTMLCache, $NoHTMLCache, $PageCacheFile, $LastModTime, $IsHTMLCached, $FmtV, $HandleBrowseFmt, $PageStartFmt, $PageEndFmt, $PageRedirectFmt; - $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT); + $page = RetrieveAuthPageRev($pagename, $auth); if (!$page) Abort('?cannot read $pagename'); PCache($pagename,$page); if (PageExists($pagename)) $text = @$page['text']; @@ -1445,7 +1459,7 @@ function HandleSource($pagename, $auth = 'read') { global $HTTPHeaders; - $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT); + $page = RetrieveAuthPageRev($pagename, $auth); if (!$page) Abort("?cannot source $pagename"); foreach ($HTTPHeaders as $h) { $h = preg_replace('!^Content-type:\\s+text/html!i', --- old-pmwiki/scripts/pagerev.php 2006-06-23 00:32:43.000000000 -0400 +++ new-pmwiki/scripts/pagerev.php 2006-06-23 00:32:43.000000000 -0400 @@ -24,7 +24,7 @@

$DiffMinorFmt - $DiffSourceFmt

"); SDV($DiffStartFmt," -
\$DiffTime +
# \$DiffTime \$[by] \$DiffAuthor - \$DiffChangeSum
"); SDV($DiffDelFmt['a'],"
\$[Deleted line \$DiffLines:]
@@ -81,6 +81,7 @@ $FmtV['$DiffHost'] = @$page["host:$diffgmt"]; $FmtV['$DiffAuthor'] = $diffauthor; $FmtV['$DiffId'] = $k; + $FmtV['$DiffRev'] = $diffgmt; echo FmtPageName($DiffStartFmt,$pagename); $difflines = explode("\n",$v."\n"); $in=array(); $out=array(); $dtype='';