This commit is contained in:
Serhiy Storchaka 2025-12-23 14:14:06 +05:30 committed by GitHub
commit 928a842778
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,6 +4,7 @@
import os
import parsesetup
import re
def checkextensions(unknown, extensions):
files = []
@ -70,21 +71,25 @@ def treatword(w):
return w
def expandvars(str, vars):
i = 0
while i < len(str):
i = k = str.find('$', i)
if i < 0:
break
i = i+1
var = str[i:i+1]
i = i+1
if var == '(':
j = str.find(')', i)
if j < 0:
break
var = str[i:j]
i = j+1
if var in vars:
str = str[:k] + vars[var] + str[i:]
i = k
return str
def repl(m):
name = m[1]
if name[0] == '(':
if name[-1] != ')':
return m[0]
name = name[1:-1]
if name in resolved:
result = resolved[name]
if result is not None:
return result
elif name in vars:
resolved[name] = None
result = resolved[name] = expandvars(vars[name])
return result
return m[0]
def expandvars(str):
return re.sub(r'(?m)\$(\([^)]*\)?|.)', repl, str)
resolved = {}
return expandvars(str)