On Sat, Jul 20, 2013 at 3:01 AM, Alexander Kornienko <[email protected]>wrote:
> Author: alexfh > Date: Fri Jul 19 20:01:25 2013 > New Revision: 186740 > > URL: http://llvm.org/viewvc/llvm-project?rev=186740&view=rev > Log: > Use -lines option instead of -offset/-length. This fixes problems with > files using dos newlines (<CR><LF>). > > 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=186740&r1=186739&r2=186740&view=diff > > ============================================================================== > --- cfe/trunk/tools/clang-format/clang-format.py (original) > +++ cfe/trunk/tools/clang-format/clang-format.py Fri Jul 19 20:01:25 2013 > @@ -35,10 +35,7 @@ text = '\n'.join(buf) > > # Determine range to format. > cursor = int(vim.eval('line2byte(line("."))+col(".")')) - 2 > The cursor value will still be wrong in this case. I think right now there is not much we can do (short of calculating it ourselves). I think what we need to do is: 1. Make clang-format work with <CR><NL> line endings. 2. Replace the '\n'.join(buf) with the appropriate ending (dependent vim.eval('&fileformat') == 'dos') Any thoughts? -offset = int(vim.eval('line2byte(' + > - str(vim.current.range.start + 1) + ')')) - 1 > -length = int(vim.eval('line2byte(' + > - str(vim.current.range.end + 2) + ')')) - offset - 2 > +lines = '%s:%s' % (vim.current.range.start + 1, vim.current.range.end + 1) > > # Avoid flashing an ugly, ugly cmd prompt on Windows when invoking > clang-format. > startupinfo = None > @@ -48,8 +45,8 @@ if sys.platform.startswith('win32'): > startupinfo.wShowWindow = subprocess.SW_HIDE > > # Call formatter. > -p = subprocess.Popen([binary, '-offset', str(offset), '-length', > str(length), > - '-style', style, '-cursor', str(cursor)], > +p = subprocess.Popen([binary, '-lines', lines, '-style', style, > + '-cursor', str(cursor)], > stdout=subprocess.PIPE, stderr=subprocess.PIPE, > stdin=subprocess.PIPE, startupinfo=startupinfo) > stdout, stderr = p.communicate(input=text) > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
