Re: [PATCH 1/2] docs: cdomain.py: add support for two new Sphinx 3.1+ tags

From: Jonathan Corbet
Date: Thu Sep 24 2020 - 11:43:41 EST


So I'm just getting into this and trying to understand what's really going
on, but one thing jumped at me:

On Thu, 24 Sep 2020 13:22:04 +0200
Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> wrote:

> +# Namespace to be prepended to the full name
> +namespace = None
> +
> +#
> +# Handle trivial newer c domain tags that are part of Sphinx 3.1 c domain tags
> +# - Convert :c:expr:`foo` into ``foo``
> +# - Store the namespace if ".. c:namespace::" tag is found
> +
> +RE_namespace = re.compile(r'^\s*..\s*c:namespace::\s*(\S+)\s*$')
> +RE_expr = re.compile(r':c:expr:`([^\`]+)`')
> +
> +def markup_namespace(match):
> + namespace = match.group(1)
> +
> + return ""
> +

How can this possibly work without a "global namespace" declaration in
markup_namespace()?

jon