def check_anchor(self, url_data):
        """If URL is valid, parseable and has an anchor, check it.
        A warning is logged and True is returned if the anchor is not found.
        """
        log.debug(LOG_PLUGIN, "checking anchor %r in %s", url_data.anchor, self.anchors)
        enc = lambda anchor: urlutil.url_quote_part(anchor, encoding=url_data.encoding)
        if any(x for x in self.anchors if enc(x[0]) == url_data.anchor):
            return
        if self.anchors:
            anchornames = sorted(set(u"`%s'" % x[0] for x in self.anchors))
            anchors = u", ".join(anchornames)
        else:
            anchors = u"-"
        args = {"name": url_data.anchor, "anchors": anchors}
        msg = u"%s %s" % (_("Anchor `%(name)s' not found.") % args,
                          _("Available anchors: %(anchors)s.") % args)
        url_data.add_warning(msg)
If URL is valid, parseable and has an anchor, check it.
        A warning is logged and True is returned if the anchor is not found.