Changeset 9411
- Timestamp:
- 11/13/08 13:03:42 (2 months ago)
- Files:
-
- django/trunk/django/template/loaders/app_directories.py (modified) (3 diffs)
- django/trunk/django/utils/_os.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/template/loaders/app_directories.py
r9161 r9411 5 5 6 6 import os 7 import sys 7 8 8 9 from django.conf import settings … … 12 13 13 14 # At compile time, cache the directories to search. 15 fs_encoding = sys.getfilesystemencoding() or sys.getdefaultencoding() 14 16 app_template_dirs = [] 15 17 for app in settings.INSTALLED_APPS: … … 28 30 template_dir = os.path.join(os.path.dirname(mod.__file__), 'templates') 29 31 if os.path.isdir(template_dir): 30 app_template_dirs.append(template_dir )32 app_template_dirs.append(template_dir.decode(fs_encoding)) 31 33 32 34 # It won't change, so convert it to a tuple to save memory. django/trunk/django/utils/_os.py
r9161 r9411 1 from os.path import join, normcase, abspath, sep 1 import os 2 from os.path import join, normcase, normpath, abspath, isabs, sep 2 3 from django.utils.encoding import force_unicode 4 5 # Define our own abspath function that can handle joining 6 # unicode paths to a current working directory that has non-ASCII 7 # characters in it. This isn't necessary on Windows since the 8 # Windows version of abspath handles this correctly. The Windows 9 # abspath also handles drive letters differently than the pure 10 # Python implementation, so it's best not to replace it. 11 if os.name == 'nt': 12 abspathu = abspath 13 else: 14 def abspathu(path): 15 """ 16 Version of os.path.abspath that uses the unicode representation 17 of the current working directory, thus avoiding a UnicodeDecodeError 18 in join when the cwd has non-ASCII characters. 19 """ 20 if not isabs(path): 21 path = join(os.getcwdu(), path) 22 return normpath(path) 3 23 4 24 def safe_join(base, *paths): … … 14 34 base = force_unicode(base) 15 35 paths = [force_unicode(p) for p in paths] 16 final_path = normcase(abspath (join(base, *paths)))17 base_path = normcase(abspath (base))36 final_path = normcase(abspathu(join(base, *paths))) 37 base_path = normcase(abspathu(base)) 18 38 base_path_len = len(base_path) 19 39 # Ensure final_path starts with base_path and that the next character after
