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

Commit 16e161c8 authored by Daniel Vetter's avatar Daniel Vetter Committed by Jani Nikula
Browse files

doc/sphinx: Stop touching state_machine internals



Instead of just forcefully inserting our kernel-doc input and letting
the state machine stumble over it the recommended way is to create
ViewList, parse that and then return the list of parsed nodes.

Suggested by Jani.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: linux-doc@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent ebff7f92
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import subprocess
import sys

from docutils import nodes, statemachine
from docutils.statemachine import ViewList
from docutils.parsers.rst import directives
from sphinx.util.compat import Directive

@@ -92,8 +93,14 @@ class KernelDocDirective(Directive):
                sys.stderr.write(err)

            lines = statemachine.string2lines(out, tab_width, convert_whitespace=True)
            self.state_machine.insert_input(lines, source)
            return []
            result = ViewList(lines, source)

            node = nodes.section()
            node.document = self.state.document
            self.state.nested_parse(result, self.content_offset, node)

            return node.children

        except Exception as e:
            env.app.warn('kernel-doc \'%s\' processing failed with: %s' %
                         (" ".join(cmd), str(e)))