mercurial/util.py
changeset 4069 3fef134832d8
parent 4068 5b1f663ef86d
child 4083 33c369afec94
--- a/mercurial/util.py	Tue Feb 06 16:12:22 2007 -0600
+++ b/mercurial/util.py	Fri Feb 09 03:48:26 2007 -0200
@@ -116,11 +116,23 @@
 class SignalInterrupt(Exception):
     """Exception raised on SIGTERM and SIGHUP."""
 
-# like SafeConfigParser but with case-sensitive keys
+# differences from SafeConfigParser:
+# - case-sensitive keys
+# - allows values that are not strings (this means that you may not
+#   be able to save the configuration to a file)
 class configparser(ConfigParser.SafeConfigParser):
     def optionxform(self, optionstr):
         return optionstr
 
+    def set(self, section, option, value):
+        return ConfigParser.ConfigParser.set(self, section, option, value)
+
+    def _interpolate(self, section, option, rawval, vars):
+        if not isinstance(rawval, basestring):
+            return rawval
+        return ConfigParser.SafeConfigParser._interpolate(self, section,
+                                                          option, rawval, vars)
+
 def cachefunc(func):
     '''cache the result of function calls'''
     # XXX doesn't handle keywords args