r289308 - [clang-format] Another attempt at python 3 compatibility
Vedant Kumar via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 9 16:54:13 PST 2016
Author: vedantk
Date: Fri Dec 9 18:54:13 2016
New Revision: 289308
URL: http://llvm.org/viewvc/llvm-project?rev=289308&view=rev
Log:
[clang-format] Another attempt at python 3 compatibility
The entries in vim.current.buffer appear to be decoded strings, which
means that python3 won't allow invoking 'decode' on them. Keep the old
behavior when running under python2, but skip the error-inducing decode
step with python3..
Modified:
cfe/trunk/tools/clang-format/clang-format.py
Modified: cfe/trunk/tools/clang-format/clang-format.py
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/clang-format.py?rev=289308&r1=289307&r2=289308&view=diff
==============================================================================
--- cfe/trunk/tools/clang-format/clang-format.py (original)
+++ cfe/trunk/tools/clang-format/clang-format.py Fri Dec 9 18:54:13 2016
@@ -29,6 +29,7 @@ from __future__ import print_function
import difflib
import json
+import platform
import subprocess
import sys
import vim
@@ -48,10 +49,15 @@ fallback_style = None
if vim.eval('exists("g:clang_format_fallback_style")') == "1":
fallback_style = vim.eval('g:clang_format_fallback_style')
+def get_buffer(encoding):
+ if platform.python_version_tuple()[0] == '3':
+ return vim.current.buffer
+ return [ line.decode(encoding) for line in vim.current.buffer ]
+
def main():
# Get the current text.
encoding = vim.eval("&encoding")
- buf = [ line.decode(encoding) for line in vim.current.buffer ]
+ buf = get_buffer(encoding)
text = '\n'.join(buf)
# Determine range to format.
More information about the cfe-commits
mailing list