Em Thu, 24 Sep 2020 09:43:35 -0600 Jonathan Corbet <corbet@xxxxxxx> escreveu: > 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 ^^^ See here.... > > + > > +# > > +# 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()? ... While I'm not a python expert, the namespace variable is global because it was defined outside the "markup_namespace" function. - On a quick check at the internet, this is supposed to work properly: https://www.programiz.com/python-programming/global-local-nonlocal-variables - In any cases, on my tests, this is working properly. Anyway, I'm sending a version 2 of the series, addressing the namespace for the remaining files under userspace-api/media. You can try building the media books without and with the patch series, in order to see the differences. There are still ~200 warnings produced after that, but it sounds that the remaining issues will require changes at kernel-doc. Thanks, Mauro