[Zodb-checkins] CVS: Packages/ZConfig - Substitution.py:1.8

Fred L. Drake, Jr. fred@zope.com
Tue, 3 Dec 2002 10:31:48 -0500


Update of /cvs-repository/Packages/ZConfig
In directory cvs.zope.org:/tmp/cvs-serv8172

Modified Files:
	Substitution.py 
Log Message:
Added function ZConfig.Substitution.getnames().

=== Packages/ZConfig/Substitution.py 1.7 => 1.8 ===
--- Packages/ZConfig/Substitution.py:1.7	Tue Dec  3 10:01:08 2002
+++ Packages/ZConfig/Substitution.py	Tue Dec  3 10:31:17 2002
@@ -43,13 +43,26 @@
 
 def substitute(s, section):
     """Interpolate variables from `section` into `s`."""
-    if '$' in s:
+    if "$" in s:
         accum = []
         _interp(accum, s, section, None)
         s = ''.join(accum)
     return s
 
 
+def getnames(s):
+    """Return a list of names referenced by s."""
+    if "$" in s:
+        L = []
+        while s:
+            p, name, s = _split(s, None)
+            if name and name not in L:
+                L.append(name)
+        return L
+    else:
+        return []
+
+
 def _interp(accum, rest, section, context):
     while 1:
         s, name, rest = _split(rest, context)
@@ -106,7 +119,7 @@
                 return prefix + "$", None, s[i+1:]
             name = m.group(0)
             i = m.end()
-        return prefix, name, s[i:]
+        return prefix, name.lower(), s[i:]
     else:
         return s, None, None