--- imagemap.php.orig 2006-10-28 02:19:18.000000000 -0700 +++ imagemap.php 2006-11-13 14:34:36.000000000 -0800 @@ -53,17 +53,28 @@ Markup('area', 'directives', "/\\(:area (.*?)?\\s*?:\\)/e", "MapArea('$1')"); function MapArea($args) { - global $ScriptUrl, $EnablePathInfo, $EnableOnclickJavascripting; + global $pagename, $ScriptUrl, $EnablePathInfo, $EnableOnclickJavascripting; $arg = PSS(ParseArgs($args)); if (isset($arg['href'])) { $tgt = $arg['href']; - if($EnablePathInfo) $LinkUrl = $ScriptUrl."/".$tgt; - else $LinkUrl = $ScriptUrl."?n=".$tgt; - preg_match("/(http:)(.*?)/e",$tgt,$m); - if($m[1]) $LinkUrl = $tgt; - preg_match("/(#)(.*?)/e",$tgt,$m); - if($m[1]) $LinkUrl = $tgt; + if (preg_match("!^https?://!",$tgt)) { + $LinkUrl = $tgt; } + elseif (preg_match("/^#.+/",$tgt)) { + $LinkUrl = $tgt; + } + else { + if (FmtPageName('$Group', $tgt) == '$Group' + && ($grp = FmtPageName('$Group', $pagename)) != '$Group') { + $tgt = "$grp.$tgt"; + } + + if ($EnablePathInfo) + $LinkUrl = $ScriptUrl."/".$tgt; + else + $LinkUrl = $ScriptUrl."?n=".$tgt; + } + } $out = "