diff options
author | Joerg Mueller <nexyon@gmail.com> | 2011-08-07 19:25:06 +0400 |
---|---|---|
committer | Joerg Mueller <nexyon@gmail.com> | 2011-08-07 19:25:06 +0400 |
commit | daab78bc614fdf19d1e56558972347121e82e06e (patch) | |
tree | 39c919901b6add092817f6c87861030aab97578e /release/scripts/modules | |
parent | b057cf1bb118a070e2eeb3b2029aa80fad00a9b2 (diff) | |
parent | bf23acf3bb8ae43e6a50108a00e7572fe35edea4 (diff) |
Merging trunk up to r39145.
Diffstat (limited to 'release/scripts/modules')
-rw-r--r-- | release/scripts/modules/addon_utils.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py index 22936f4c209..0c5ef69e805 100644 --- a/release/scripts/modules/addon_utils.py +++ b/release/scripts/modules/addon_utils.py @@ -32,6 +32,7 @@ import bpy as _bpy error_duplicates = False +error_encoding = False def paths(): @@ -51,14 +52,18 @@ def paths(): def modules(module_cache): global error_duplicates + global error_encoding import os error_duplicates = False + error_encoding = False path_list = paths() # fake module importing def fake_module(mod_name, mod_path, speedy=True): + global error_encoding + if _bpy.app.debug: print("fake_module", mod_path, mod_name) import ast @@ -69,12 +74,28 @@ def modules(module_cache): line_iter = iter(file_mod) l = "" while not l.startswith("bl_info"): - l = line_iter.readline() + try: + l = line_iter.readline() + except UnicodeDecodeError as e: + if not error_encoding: + error_encoding = True + print("Error reading file as UTF-8:", mod_path, e) + file_mod.close() + return None + if len(l) == 0: break while l.rstrip(): lines.append(l) - l = line_iter.readline() + try: + l = line_iter.readline() + except UnicodeDecodeError as e: + if not error_encoding: + error_encoding = True + print("Error reading file as UTF-8:", mod_path, e) + file_mod.close() + return None + data = "".join(lines) else: |