]> granicus.if.org Git - clang/commitdiff
Fix clang-format vim integration issue with non-ascii characters
authorAlexander Kornienko <alexfh@google.com>
Mon, 24 Oct 2016 16:31:26 +0000 (16:31 +0000)
committerAlexander Kornienko <alexfh@google.com>
Mon, 24 Oct 2016 16:31:26 +0000 (16:31 +0000)
clang-format.py currently seems to treat vim.current.buf as ascii-encoded data,
which leads to an UnicodeDecodeError when trying to format any text containing
non-ascii characters:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File ".../tools/clang/tools/clang-format/clang-format.py", line 110, in <module>
    main()
  File ".../tools/clang/tools/clang-format/clang-format.py", line 87, in main
    stdout, stderr = p.communicate(input=text.encode(encoding))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 3996: ordinal not in range(128)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284988 91177308-0d34-0410-b5e6-96231b3b80d8

tools/clang-format/clang-format.py

index 37d970b477ca3b4fffd9459d14ddc7a43e0af0f4..6a5740679b58fe69e1e84a916035287ced82d5fd 100644 (file)
@@ -52,7 +52,7 @@ def main():
   # Get the current text.
   encoding = vim.eval("&encoding")
   buf = vim.current.buffer
-  text = '\n'.join(buf)
+  text = unicode('\n'.join(buf), encoding)
 
   # Determine range to format.
   if vim.eval('exists("l:lines")') == '1':