Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f42ddca7 authored by Markus Heiser's avatar Markus Heiser Committed by Jonathan Corbet
Browse files

doc-rst: kernel-doc directive, fix state machine reporter

Add a reporter replacement that assigns the correct source name and line
number to a system message, as recorded in a ViewList.

[1] http://mid.gmane.org/CAKMK7uFMQ2wOp99t-8v06Om78mi9OvRZWuQsFJD55QA20BB3iw@mail.gmail.com



Signed-off-by: default avatarMarkus Heiser <markus.heiser@darmarIT.de>
Tested-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 8ed292fe
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -37,6 +37,7 @@ from docutils import nodes, statemachine
from docutils.statemachine import ViewList
from docutils.statemachine import ViewList
from docutils.parsers.rst import directives
from docutils.parsers.rst import directives
from sphinx.util.compat import Directive
from sphinx.util.compat import Directive
from sphinx.ext.autodoc import AutodocReporter


class KernelDocDirective(Directive):
class KernelDocDirective(Directive):
    """Extract kernel-doc comments from the specified file"""
    """Extract kernel-doc comments from the specified file"""
@@ -117,12 +118,17 @@ class KernelDocDirective(Directive):
                    lineoffset += 1
                    lineoffset += 1


            node = nodes.section()
            node = nodes.section()
            node.document = self.state.document
            buf = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter
            self.state.nested_parse(result, self.content_offset, node)
            self.state.memo.reporter = AutodocReporter(result, self.state.memo.reporter)
            self.state.memo.title_styles, self.state.memo.section_level = [], 0
            try:
                self.state.nested_parse(result, 0, node, match_titles=1)
            finally:
                self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = buf


            return node.children
            return node.children


        except Exception as e:
        except Exception as e:  # pylint: disable=W0703
            env.app.warn('kernel-doc \'%s\' processing failed with: %s' %
            env.app.warn('kernel-doc \'%s\' processing failed with: %s' %
                         (" ".join(cmd), str(e)))
                         (" ".join(cmd), str(e)))
            return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]
            return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]