about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2012-01-06 19:56:33 -0800
committerNiko Matsakis <niko@alum.mit.edu>2012-01-06 22:40:32 -0800
commita366a9eece3a03712c5cbe98e4e0dba588b99fd3 (patch)
tree336209ae0e2b600441a8bb0200c689965086c916
parent0595f57186744061b6cf0673e55de5e8e578b348 (diff)
downloadrust-a366a9eece3a03712c5cbe98e4e0dba588b99fd3.tar.gz
rust-a366a9eece3a03712c5cbe98e4e0dba588b99fd3.zip
report unicode decode failures nicely
-rw-r--r--src/etc/tidy.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/etc/tidy.py b/src/etc/tidy.py
index b1951cb5860..4974bf74c5b 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)