From aafd8a8da4184ffc1a002eb0a08b73f4aa4c01dd Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 31 Aug 2021 17:24:19 +0530 Subject: [PATCH] When expanding vars allow using $$ for literal $ --- kitty/utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kitty/utils.py b/kitty/utils.py index e7fb8d652..0edfe3a19 100644 --- a/kitty/utils.py +++ b/kitty/utils.py @@ -34,6 +34,9 @@ else: def expandvars(val: str, env: Mapping[str, str] = {}, fallback_to_os_env: bool = True) -> str: + ''' + Expand $VAR and ${VAR} Use $$ for a literal $ + ''' def sub(m: Match) -> str: key = m.group(1) or m.group(2) @@ -47,7 +50,7 @@ def expandvars(val: str, env: Mapping[str, str] = {}, fallback_to_os_env: bool = if '$' not in val: return val - return re.sub(r'\$(?:(\w+)|\{([^}]+)\})', sub, val) + return re.sub(r'\$(?:(\w+)|\{([^}]+)\})', sub, val.replace('$$', '\0')).replace('\0', '$') def platform_window_id(os_window_id: int) -> Optional[int]: