diff options
| -rwxr-xr-x | texall | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -1,8 +1,5 @@ #!/usr/bin/env python -from __future__ import with_statement - -from contextlib import closing from optparse import OptionParser import sys import os @@ -269,7 +266,8 @@ def analyseFile(dirname, filename, analyserclasses, parsetype, fulltext=False, c analysers = [] for analyser in analyserclasses: analysers.append(analyser(data)) - with closing(open(os.path.join(dirname, filename), "r")) as f: + try: + f = open(os.path.join(dirname, filename), "r") if fulltext: text = f.read() for a in analysers: @@ -278,6 +276,11 @@ def analyseFile(dirname, filename, analyserclasses, parsetype, fulltext=False, c for line in f: for a in analysers: a.parse(line) + except IOError, e: + error(os.path.join(dirname, filename), "could not be analysed: %s"%e) + data = None + else: + f.close() if hasattr(data, "deps") and (recurse or (recurse==None and hasattr(data, "requrired") @@ -294,7 +297,7 @@ def analyseFile(dirname, filename, analyserclasses, parsetype, fulltext=False, c if hasattr(data, "required") and data.required: for a in analysers: a.finish(dirname) - if cache: + if cache and data: analysecache[(parsetype, pathname)] = data return data |
