function QualifyFLink($pgroup, $group, $link)
{
    if ($pgroup == $group) {
        return $link;
    }
    $l = FLRef($link);
    return preg_match("/[~!:.\\/]/", $l) ? $link : str_replace("{$l}", QualifiedLink($group, $l), $link);
}
function ListPageLinks($pagename, $list)
{
    global $GroupPattern, $WikiWordPattern;
    $g = FmtPageName('$Group', $pagename);
    $dummy = 'AB101BA';
    $r = array();
    $page = RetrieveAuthPage($pagename, $list == 'all' ? 'read' : 'edit');
    if ($page) {
        $text = $page['text'];
    } else {
        Abort("cannot rename '{$pagename}'");
    }
    PCache($pagename, $page);
    preg_match_all("/(\\[[=@].*?[=@]\\])|(\\[\\[([^#].*?)\\]\\])|([`:\\/\$])?\\b(({$GroupPattern}([\\/.]))?{$WikiWordPattern})/", $text, $m);
    for ($i = 0; $i < count($m[0]); $i++) {
        $p = QualifyUnqualifiedLinks($g, $dummy, preg_replace("/\\{(\\\$.*?)\\}/e", "FmtPageName('\$1',\$pagename)", $m[0][$i]));
        if (strstr($p, $dummy)) {
            $p = str_replace("{$dummy}/", "{$g}.", $p);
            $r[] = $m[0][$i][0] == '[' ? MakePageName($pagename, FLRef($p)) : $p;
        } elseif ($list == 'all') {
            if (preg_match("/^({$GroupPattern}([\\/.]){$WikiWordPattern})/", $p, $w)) {
                $r[] = str_replace('/', '.', $w[1]);
            } elseif (preg_match("/^\\[\\[(.*?)\\]\\]/", $p, $f)) {
                $l = FLRef($f[1]);
                if (preg_match("/^[^~!:.\\/]+([.\\/][^.\\/]+)?\$/", $l, $fl)) {
                    $r[] = MakePageName($pagename, $l);
                }
            }
        }
    }
    return $r;
}