Commit 5e2d0764 authored by Jeremy Hylton's avatar Jeremy Hylton

In subst_vars(), change the name of the argument from str to s to

prevent binding for str from masking use of builtin str in nested
function.

(This is the only case I found in the standard library where a local
shadows a global or builtin.  There may be others, but the regression
test doesn't catch them.)
parent a39414b1
......@@ -142,7 +142,7 @@ def check_environ ():
_environ_checked = 1
def subst_vars (str, local_vars):
def subst_vars (s, local_vars):
"""Perform shell/Perl-style variable substitution on 'string'. Every
occurrence of '$' followed by a name is considered a variable, and
variable is substituted by the value found in the 'local_vars'
......@@ -160,7 +160,7 @@ def subst_vars (str, local_vars):
return os.environ[var_name]
try:
return re.sub(r'\$([a-zA-Z_][a-zA-Z_0-9]*)', _subst, str)
return re.sub(r'\$([a-zA-Z_][a-zA-Z_0-9]*)', _subst, s)
except KeyError, var:
raise ValueError, "invalid variable '$%s'" % var
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment