(original) (raw)
--- ntpath.py Mon Oct 9 21:03:33 2006 +++ /tmp/ntpath.py Mon Oct 9 21:35:37 2006 @@ -311,10 +378,10 @@ # XXX except '^|<>='. def expandvars(path): - """Expand shell variables of form varandvar and varand{var}. + """Expand shell variables of forms var,var, var,{var} and %var% Unknown variables are left unchanged.""" - if '$' not in path: + if '$' not in path and not '%' in path: return path import string varchars = string.ascii_letters + string.digits + '_-' @@ -332,6 +399,21 @@ except ValueError: res = res + path index = pathlen - 1 + elif c == '%': # variable or '%' + if path[index + 1:index + 2] == '%': + res = res + c + index = index + 1 + else: + path = path[index+1:] + pathlen = len(path) + try: + index = path.index('%') + var = path[:index] + if var in os.environ: + res = res + os.environ[var] + except ValueError: + res = res + path + index = pathlen - 1 elif c == '$': # variable or '$$' if path[index + 1:index + 2] == '$': res = res + c