diff options
author | Steven Knight <knight@baldmt.com> | 2009-03-02 23:10:32 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2009-03-02 23:10:32 (GMT) |
commit | d6d135367931bcab667ce5d636e905d9712d6370 (patch) | |
tree | 81cca89c9d937d3b1674fc7ec33763cba376df56 /src/engine/SCons/Scanner | |
parent | 0d621c8ecd14c47d09a4b42e527b639135d70fc8 (diff) | |
download | SCons-d6d135367931bcab667ce5d636e905d9712d6370.zip SCons-d6d135367931bcab667ce5d636e905d9712d6370.tar.gz SCons-d6d135367931bcab667ce5d636e905d9712d6370.tar.bz2 |
Issue 2360: fix a TypeError from attempts to intern() unicode objects
returned to the ClassicCPPScanner.
Diffstat (limited to 'src/engine/SCons/Scanner')
-rw-r--r-- | src/engine/SCons/Scanner/ScannerTests.py | 11 | ||||
-rw-r--r-- | src/engine/SCons/Scanner/__init__.py | 8 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/engine/SCons/Scanner/ScannerTests.py b/src/engine/SCons/Scanner/ScannerTests.py index e3fa4ed..518e0ed 100644 --- a/src/engine/SCons/Scanner/ScannerTests.py +++ b/src/engine/SCons/Scanner/ScannerTests.py @@ -568,6 +568,17 @@ class ClassicCPPTestCase(unittest.TestCase): assert n == 'path/bbb', n assert i == 'bbb', i + # TODO(1.5): remove when 2.2 is minimal; replace ccc + # variable in find_include() call below with in-line u'ccc'. + try: + ccc = eval("u'ccc'") + except SyntaxError: + ccc = 'ccc' + + n, i = s.find_include(('<', ccc), 'foo', ('path',)) + assert n == 'path/ccc', n + assert i == 'ccc', i + finally: SCons.Node.FS.find_file = save diff --git a/src/engine/SCons/Scanner/__init__.py b/src/engine/SCons/Scanner/__init__.py index 6863aa1..c0d84b9 100644 --- a/src/engine/SCons/Scanner/__init__.py +++ b/src/engine/SCons/Scanner/__init__.py @@ -405,7 +405,13 @@ class ClassicCPP(Classic): n = SCons.Node.FS.find_file(include[1], paths) - return n, intern(include[1]) + i = include[1] + try: + i = intern(i) + except TypeError: + # Probably a unicode object; just don't worry about intern(). + pass + return n, i def sort_key(self, include): return SCons.Node.FS._my_normcase(string.join(include)) |