[clang] 8f4e6cf - [clang-format] Use utf-8 for JSON object load

Luke Drummond via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 5 07:41:22 PDT 2022


Author: Amy Wang
Date: 2022-09-05T15:40:47+01:00
New Revision: 8f4e6cfe73d803697470e817845d9b94c4530ca3

URL: https://github.com/llvm/llvm-project/commit/8f4e6cfe73d803697470e817845d9b94c4530ca3
DIFF: https://github.com/llvm/llvm-project/commit/8f4e6cfe73d803697470e817845d9b94c4530ca3.diff

LOG: [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

Added: 
    

Modified: 
    clang/tools/clang-format/clang-format.py

Removed: 
    


################################################################################
diff  --git a/clang/tools/clang-format/clang-format.py b/clang/tools/clang-format/clang-format.py
index 76fedb6481474..5bc108bfc713b 100644
--- a/clang/tools/clang-format/clang-format.py
+++ b/clang/tools/clang-format/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 
diff erent 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.


        


More information about the cfe-commits mailing list