From f1cf5d594a8cdb3a5008d700af6b88084e634dc6 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Fri, 25 Dec 2015 15:52:51 +0900 Subject: Fix #2040: UnicodeDecodeError in sphinx-apidoc when author contains non-ascii characters --- sphinx/apidoc.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'sphinx/apidoc.py') diff --git a/sphinx/apidoc.py b/sphinx/apidoc.py index 10311e6f3..73bb963ce 100644 --- a/sphinx/apidoc.py +++ b/sphinx/apidoc.py @@ -353,10 +353,10 @@ Note: By default this script will not overwrite already created files.""") path = opts.destdir, sep = False, dot = '_', - project = opts.header, - author = opts.author or 'Author', - version = opts.version or '', - release = opts.release or opts.version or '', + project = None, + author = 'Author', + version = '', + release = '', suffix = '.' + opts.suffix, master = 'index', epub = True, @@ -369,6 +369,17 @@ Note: By default this script will not overwrite already created files.""") mastertoctree = text, language = 'en', ) + if opts.header: + d['project'] = opts.header.decode('utf-8') + if opts.author: + d['author'] = opts.author.decode('utf-8') + if opts.version: + d['version'] = opts.version.decode('utf-8') + if opts.release: + d['release'] = opts.release.decode('utf-8') + elif opts.version: + d['release'] = opts.version.decode('utf-8') + if not opts.dryrun: qs.generate(d, silent=True, overwrite=opts.force) elif not opts.notoc: -- cgit v1.2.1 From 66ef8102c47415c5249b8973661927251ca810f5 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Fri, 25 Dec 2015 16:10:37 +0900 Subject: Fix broken in py3 --- sphinx/apidoc.py | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'sphinx/apidoc.py') diff --git a/sphinx/apidoc.py b/sphinx/apidoc.py index 73bb963ce..1238693c8 100644 --- a/sphinx/apidoc.py +++ b/sphinx/apidoc.py @@ -20,6 +20,7 @@ import os import sys import optparse from os import path +from six import binary_type from sphinx.util.osutil import walk from sphinx import __display_version__ @@ -353,10 +354,10 @@ Note: By default this script will not overwrite already created files.""") path = opts.destdir, sep = False, dot = '_', - project = None, - author = 'Author', - version = '', - release = '', + project = opts.header, + author = opts.author or 'Author', + version = opts.version or '', + release = opts.release or opts.version or '', suffix = '.' + opts.suffix, master = 'index', epub = True, @@ -369,16 +370,14 @@ Note: By default this script will not overwrite already created files.""") mastertoctree = text, language = 'en', ) - if opts.header: - d['project'] = opts.header.decode('utf-8') - if opts.author: - d['author'] = opts.author.decode('utf-8') - if opts.version: - d['version'] = opts.version.decode('utf-8') - if opts.release: - d['release'] = opts.release.decode('utf-8') - elif opts.version: - d['release'] = opts.version.decode('utf-8') + if isinstance(opts.header, binary_type): + d['project'] = d['project'].decode('utf-8') + if isinstance(opts.author, binary_type): + d['author'] = d['author'].decode('utf-8') + if isinstance(opts.version, binary_type): + d['version'] = d['version'].decode('utf-8') + if isinstance(opts.release, binary_type): + d['release'] = d['release'].decode('utf-8') if not opts.dryrun: qs.generate(d, silent=True, overwrite=opts.force) -- cgit v1.2.1