Use the builtin md5 hexdigest routine if it's available. (Kevin Quick)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 16 Dec 2004 17:35:43 +0000 (17:35 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 16 Dec 2004 17:35:43 +0000 (17:35 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1191 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/engine/SCons/Sig/MD5.py

index 9f6328f349925a0a70afedeb45f2ef83fca25807..55e74ff97b6f216c0d22f776856c571a04e4169a 100644 (file)
@@ -332,7 +332,9 @@ RELEASE 0.97 - XXX
 
   - Internal cleanups:  Remove an unnecessary scan argument.  Associate
     Scanners only with Builders, not nodes.  Apply overrides once when a
-    Builder is called, not in multiple places.
+    Builder is called, not in multiple places.  Cache results from
+    the Node.FS.get_suffix() and Node.get_build_env() methods.  Use
+    the Python md5 modules' hexdigest() method, if there is one.
 
   - Use the correct scanner if the same source file is used for targets in
     two different environments with the same path but different scanners.
index 21cb24c086fc866508f202ecfcb8f07533e9f4f8..2adcee0998f3efe83af82f20bc9ac334779c44b7 100644 (file)
@@ -58,10 +58,18 @@ def hexdigest(s):
     h = string.hexdigits
     r = ''
     for c in s:
-       i = ord(c)
-       r = r + h[(i >> 4) & 0xF] + h[i & 0xF]
+        i = ord(c)
+        r = r + h[(i >> 4) & 0xF] + h[i & 0xF]
     return r
 
+try:
+    a = md5.new('test').hexdigest()
+except AttributeError:
+    md5sig = lambda c: hexdigest(md5.new(str(c)).digest())
+else:
+    md5sig = lambda c: md5.new(str(c)).hexdigest()
+
+
 def collect(signatures):
     """
     Collect a list of signatures into an aggregate signature.
@@ -82,7 +90,7 @@ def signature(obj):
         gc = obj.get_contents
     except AttributeError:
         raise AttributeError, "unable to fetch contents of '%s'" % str(obj)
-    return hexdigest(md5.new(str(gc())).digest())
+    return md5sig(gc())
 
 def to_string(signature):
     """Convert a signature to a string"""