mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-03 00:30:52 +03:00
fix(db-*): на POSIX снимать и кавычки склеенных ключей
Проверка прямым вызовом платформы на darwin: /ConfigurationRepositoryF"путь с пробелом" отвергается, тот же ключ без кавычек проходит. Значит на POSIX лишние и обрамляющие кавычки значений, и кавычки внутри склеенных ключей — они нужны только для склейки команды на Windows. File="…" не трогаем: там кавычки часть синтаксиса строки соединения, и с ними на POSIX всё работает (проверено db-create). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
b7837c86ce
commit
84e908304e
@@ -342,10 +342,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -329,10 +329,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -329,10 +329,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -414,10 +414,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -329,10 +329,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -329,10 +329,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -435,10 +435,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -435,10 +435,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -300,10 +300,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -414,10 +414,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -329,10 +329,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
@@ -329,10 +329,21 @@ def run_v8(v8path, arguments):
|
|||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
cmd = '"' + v8path + '" ' + " ".join(arguments)
|
||||||
else:
|
else:
|
||||||
cmd = [v8path] + [
|
def strip_framing_quotes(a):
|
||||||
a[1:-1] if len(a) > 1 and a[0] == '"' and a[-1] == '"' else a
|
# Кавычки, которыми мы обрамляем значения ради склейки на Windows, на POSIX
|
||||||
for a in arguments
|
# становятся ЧАСТЬЮ значения. Проверено на darwin: путь с пробелом отдельным
|
||||||
]
|
# токеном даёт «Неопределена информационная база», а склеенный
|
||||||
|
# /ConfigurationRepositoryF"путь с пробелом" — «завершилось с ошибкой»;
|
||||||
|
# без кавычек обе формы работают.
|
||||||
|
if len(a) > 1 and a[0] == '"' and a[-1] == '"':
|
||||||
|
return a[1:-1] # "значение" отдельным токеном
|
||||||
|
if a[0:1] == "/" and a[-1:] == '"' and '"' in a[:-1]:
|
||||||
|
i = a.index('"')
|
||||||
|
return a[:i] + a[i + 1:-1] # /N"имя" -> /Nимя
|
||||||
|
return a # File="…" не трогаем: там кавычки —
|
||||||
|
# часть синтаксиса строки соединения,
|
||||||
|
# и с ними на POSIX всё работает
|
||||||
|
cmd = [v8path] + [strip_framing_quotes(a) for a in arguments]
|
||||||
r = subprocess.run(cmd, input=b"", capture_output=True)
|
r = subprocess.run(cmd, input=b"", capture_output=True)
|
||||||
r.stdout = decode_platform_bytes(r.stdout)
|
r.stdout = decode_platform_bytes(r.stdout)
|
||||||
r.stderr = decode_platform_bytes(r.stderr)
|
r.stderr = decode_platform_bytes(r.stderr)
|
||||||
|
|||||||
Reference in New Issue
Block a user