summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2023-04-07 08:11:05 (GMT)
committerBrad King <brad.king@kitware.com>2023-05-30 14:32:59 (GMT)
commit853f069103f00b3f487833787b5388c7e79ff3c3 (patch)
treed8cafb62f3267a0c100f2cefede791fd85fc5688
parent0926ed1f69aee7fdb454e10d9b98016c3dfc4e7e (diff)
downloadCMake-853f069103f00b3f487833787b5388c7e79ff3c3.zip
CMake-853f069103f00b3f487833787b5388c7e79ff3c3.tar.gz
CMake-853f069103f00b3f487833787b5388c7e79ff3c3.tar.bz2
Sphinx: Specify encoding when opening files for title extraction
When the encoding is not specified, open() may choose an encoding based on the locale in use. That encoding may have no relationship to the encoding of the file being opened. Use the locale from the document settings instead, which should better match the file's encoding. Fixes: #24679
-rw-r--r--Utilities/Sphinx/cmake.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py
index 47e4909..e4e06ab 100644
--- a/Utilities/Sphinx/cmake.py
+++ b/Utilities/Sphinx/cmake.py
@@ -224,12 +224,13 @@ class CMakeTransform(Transform):
The cmake --help-*-list commands also depend on this convention.
Return the title or False if the document file does not exist.
"""
- env = self.document.settings.env
+ settings = self.document.settings
+ env = settings.env
title = self.titles.get(docname)
if title is None:
fname = os.path.join(env.srcdir, docname+'.rst')
try:
- f = open(fname, 'r')
+ f = open(fname, 'r', encoding=settings.input_encoding)
except IOError:
title = False
else: