From 8f4e6cfe73d803697470e817845d9b94c4530ca3 Mon Sep 17 00:00:00 2001 From: Amy Wang Date: Mon, 5 Sep 2022 15:36:36 +0100 Subject: [PATCH] [clang-format] Use utf-8 for JSON object load From Python 3.6 and above, it should be able to automatically select a decoding for json.loads. However, with a vim encoding that defaults to utf-8, clang-format.py runs into the following error TypeError: the JSON object must be str, not 'bytes' This patch explicitly specifies utf-8 decoding for the header. Reviewed by: ldrumm, sammcall Differential Revision: https://reviews.llvm.org/D133236 --- clang/tools/clang-format/clang-format.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/tools/clang-format/clang-format.py b/clang/tools/clang-format/clang-format.py index 76fedb6..5bc108b 100644 --- a/clang/tools/clang-format/clang-format.py +++ b/clang/tools/clang-format/clang-format.py @@ -10,9 +10,9 @@ # imap :py3f /clang-format.py # endif # -# The if-elseif-endif conditional should pick either the python3 or python2 +# The if-elseif-endif conditional should pick either the python3 or python2 # integration depending on your vim setup. -# +# # The first mapping enables clang-format for NORMAL and VISUAL mode, the second # mapping adds support for INSERT mode. Change "C-I" to another binding if you # need clang-format on a different key (C-I stands for Ctrl+i). @@ -134,7 +134,7 @@ def main(): ) else: header, content = stdout.split(b'\n', 1) - header = json.loads(header) + header = json.loads(header.decode('utf-8')) # Strip off the trailing newline (added above). # This maintains trailing empty lines present in the buffer if # the -lines specification requests them to remain unchanged. -- 2.7.4