From 531efcbc25f41d61c805133b1510baf29570d985 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Sat, 22 Feb 2003 13:17:05 +0000 Subject: Make SCons.Util.to_String() more efficient. --- src/CHANGES.txt | 2 ++ src/engine/SCons/Util.py | 21 ++++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index dce8e34..9fa0501 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -23,6 +23,8 @@ RELEASE 0.12 - XXX from source code systems. Add factory methods that create Builders to support BitKeeper, CVS, RCS, SCCS and Subversion. + - Make the internal to_String() function more efficient. + RELEASE 0.11 - Tue, 11 Feb 2003 05:24:33 -0600 diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py index 0d64e03..fcadf48 100644 --- a/src/engine/SCons/Util.py +++ b/src/engine/SCons/Util.py @@ -506,15 +506,18 @@ def is_Dict(e): def is_List(e): return type(e) is types.ListType or isinstance(e, UserList.UserList) -def to_String(s): - """Better than str() because it will preserve a unicode - object without converting it to ASCII.""" - if hasattr(types, 'UnicodeType') and \ - (type(s) is types.UnicodeType or \ - (isinstance(s, UserString) and type(s.data) is types.UnicodeType)): - return unicode(s) - else: - return str(s) +if hasattr(types, 'UnicodeType'): + def to_String(s): + if isinstance(s, UserString): + t = type(s.data) + else: + t = type(s) + if t is types.UnicodeType: + return unicode(s) + else: + return str(s) +else: + to_String = str def argmunge(arg): return Split(arg) -- cgit v0.12