From 64be30936b3068e5964f6f1e5878411ec8bc646f Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 18 Aug 2010 16:07:26 -0700 Subject: [PATCH] Don't complain about \r when core.autocrlf is on in Git... and work in Python 2.4, 2.6, and 3.x. --- src/etc/tidy.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/etc/tidy.py b/src/etc/tidy.py index eff967bf6ce..41908ac4051 100644 --- a/src/etc/tidy.py +++ b/src/etc/tidy.py @@ -1,10 +1,18 @@ -#!/usr/bin/python +#!/usr/bin/python2.5 -import sys, fileinput +import sys, fileinput, subprocess err=0 cols=78 +# Be careful to support Python 2.4, 2.6, and 3.x here! +config_proc=subprocess.Popen([ "git", "config", "core.autocrlf" ], + stdout=subprocess.PIPE) +result=config_proc.communicate()[0] + +true="true".encode('utf8') +autocrlf=result.strip() == true if result is not None else False + def report_err(s): global err print("%s:%d: %s" % (fileinput.filename(), fileinput.filelineno(), s)) @@ -14,10 +22,11 @@ for line in fileinput.input(openhook=fileinput.hook_encoded("utf-8")): if line.find('\t') != -1 and fileinput.filename().find("Makefile") == -1: report_err("tab character") - if line.find('\r') != -1: + if not autocrlf and line.find('\r') != -1: report_err("CR character") - if len(line)-1 > cols: + line_len = len(line)-2 if autocrlf else len(line)-1 + if line_len > cols: report_err("line longer than %d chars" % cols)