clint: use fileinput for stdin

Fixes handing of "-" on Python 3:

    Traceback (most recent call last):
      File "…/Vcs/neovim/src/clint.py", line 3625, in <module>
        main()
      File "…/Vcs/neovim/src/clint.py", line 3618, in main
        ProcessFile(filename, _cpplint_state.verbose_level)
      File "…/Vcs/neovim/src/clint.py", line 3464, in ProcessFile
        'replace').read().split('\n')
      File "/usr/lib/python3.7/codecs.py", line 701, in read
        return self.reader.read(size)
      File "/usr/lib/python3.7/codecs.py", line 500, in read
        data = self.bytebuffer + newdata
    TypeError: can't concat str to bytes
This commit is contained in:
Daniel Hahler 2018-10-05 16:14:51 +02:00
parent 39ad99b594
commit 2351b931dd

View File

@ -49,6 +49,7 @@ from __future__ import unicode_literals
import codecs
import copy
import fileinput
import getopt
import math # for log
import os
@ -3456,10 +3457,10 @@ def ProcessFile(filename, vlevel, extra_check_functions=[]):
# is processed.
if filename == '-':
lines = codecs.StreamReaderWriter(sys.stdin,
codecs.getreader('utf8'),
codecs.getwriter('utf8'),
'replace').read().split('\n')
stdin = sys.stdin.read()
if sys.version_info < (3, 0):
stdin = stdin.decode('utf8')
lines = stdin.split('\n')
else:
lines = codecs.open(
filename, 'r', 'utf8', 'replace').read().split('\n')