提交 ba350185 编写于 作者: J Jani Nikula

Documentation/sphinx: fix kernel-doc extension on python3

Reconcile differences between python2 and python3 on dealing with
stdout, stderr from Popen. This fixes "name 'unicode' is not defined"
errors on python3. We'll need to try to keep the extension working on
both python-sphinx and python3-sphinx so we don't need two copies.
Reported-and-tested-by: NMarius Vlad <marius.c.vlad@intel.com>
Signed-off-by: NJani Nikula <jani.nikula@intel.com>
上级 2f4ad40a
......@@ -23,6 +23,9 @@
#
# Authors:
# Jani Nikula <jani.nikula@intel.com>
#
# Please make sure this works on both python2 and python3.
#
import os
import subprocess
......@@ -75,8 +78,10 @@ class KernelDocDirective(Directive):
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
out, err = p.communicate()
# assume the kernel sources are utf-8
out, err = unicode(out, 'utf-8'), unicode(err, 'utf-8')
# python2 needs conversion to unicode.
# python3 with universal_newlines=True returns strings.
if sys.version_info.major < 3:
out, err = unicode(out, 'utf-8'), unicode(err, 'utf-8')
if p.returncode != 0:
sys.stderr.write(err)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册