[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
NOKEYCHECK=True
GitOrigin-RevId: 8f4e6cfe73d803697470e817845d9b94c4530ca3
diff --git a/clang-format.py b/clang-format.py
index 76fedb6..5bc108b 100644
--- a/clang-format.py
+++ b/clang-format.py
@@ -10,9 +10,9 @@
# imap <C-I> <c-o>:py3f <path-to-this-file>/clang-format.py<cr>
# 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 @@
)
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.