diff options
author | Steven Knight <knight@baldmt.com> | 2005-08-13 15:33:43 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2005-08-13 15:33:43 (GMT) |
commit | b48f4cb7b1bc00ca606bd71191fcddcc99be53f6 (patch) | |
tree | 681c616530aecc39d192ff2270578a7c58430621 /src/engine/SCons/Tool/msvc.py | |
parent | 52fcda2435759339de636e5d5abad71b0f5372ad (diff) | |
download | SCons-b48f4cb7b1bc00ca606bd71191fcddcc99be53f6.zip SCons-b48f4cb7b1bc00ca606bd71191fcddcc99be53f6.tar.gz SCons-b48f4cb7b1bc00ca606bd71191fcddcc99be53f6.tar.bz2 |
Handle Visual Studio project and solution files in Unicode. (Chen Lee)
Diffstat (limited to 'src/engine/SCons/Tool/msvc.py')
-rw-r--r-- | src/engine/SCons/Tool/msvc.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/engine/SCons/Tool/msvc.py b/src/engine/SCons/Tool/msvc.py index b47f331..1077931 100644 --- a/src/engine/SCons/Tool/msvc.py +++ b/src/engine/SCons/Tool/msvc.py @@ -71,10 +71,24 @@ def _parse_msvc7_overrides(version): # now we parse the directories from this file, if it exists. # We only look for entries after: [VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories], # since this file could contain a number of things... - f = open(comps,'r') - line = f.readline() + lines = None + try: + import codecs + except ImportError: + pass + else: + try: + f = codecs.open(comps, 'r', 'utf16') + encoder = codecs.getencoder('ascii') + except LookupError: + lines = codecs.open(comps, 'r', 'utf8').readlines() + else: + lines = map(lambda l, e=encoder: e(l)[0], f.readlines()) + if lines is None: + lines = open(comps, 'r').readlines() + found = 0 - while line: + for line in lines: line.strip() if line.find(r'[VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories]') >= 0: found = 1 @@ -86,7 +100,6 @@ def _parse_msvc7_overrides(version): (key, val) = kv key = key.replace(' Dirs','') dirs[key.upper()] = val - line = f.readline() f.close() else: # since the file didn't exist, we have only the defaults in @@ -143,7 +156,7 @@ def _get_msvc7_path(path, version, platform): rv = [] for entry in p.split(os.pathsep): - entry = s.sub(repl,entry) + entry = s.sub(repl,entry).rstrip('\n\r') rv.append(entry) return string.join(rv,os.pathsep) |