From a366a9eece3a03712c5cbe98e4e0dba588b99fd3 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 6 Jan 2012 19:56:33 -0800 Subject: [PATCH] report unicode decode failures nicely --- src/etc/tidy.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/etc/tidy.py b/src/etc/tidy.py index b1951cb58601..4974bf74c5bf 100644 --- a/src/etc/tidy.py +++ b/src/etc/tidy.py @@ -18,19 +18,20 @@ def report_err(s): print("%s:%d: %s" % (fileinput.filename(), fileinput.filelineno(), s)) err=1 -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 not autocrlf and line.find('\r') != -1: - report_err("CR character") - - if line.endswith(" \n") or line.endswith("\t\n"): - report_err("trailing whitespace") - - line_len = len(line)-2 if autocrlf else len(line)-1 - if line_len > cols: - report_err("line longer than %d chars" % cols) +try: + 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 not autocrlf and line.find('\r') != -1: + report_err("CR character") + if line.endswith(" \n") or line.endswith("\t\n"): + report_err("trailing whitespace") + line_len = len(line)-2 if autocrlf else len(line)-1 + if line_len > cols: + report_err("line longer than %d chars" % cols) +except UnicodeDecodeError, e: + report_err("UTF-8 decoding error " + str(e)) sys.exit(err)