Fix shell integration being disabled with one invalid option

This commit is contained in:
pagedown
2022-03-08 23:42:41 +08:00
parent 958ebb72a6
commit 46889a3a32
2 changed files with 5 additions and 2 deletions

View File

@@ -804,7 +804,7 @@ def shell_integration(x: str) -> FrozenSet[str]:
q = frozenset(x.lower().split())
if not q.issubset(s):
log_error(f'Invalid shell integration options: {q - s}, ignoring')
return q & s
return q & s or frozenset({'invalid'})
return q

View File

@@ -8,7 +8,7 @@ from contextlib import suppress
from typing import Dict, List, Optional
from .constants import shell_integration_dir
from .options.types import Options
from .options.types import Options, defaults
from .utils import log_error, which
from .fast_data_types import get_options
@@ -170,6 +170,9 @@ def get_effective_ksi_env_var(opts: Optional[Options] = None) -> str:
opts = opts or get_options()
if 'disabled' in opts.shell_integration:
return ''
# Use the default when shell_integration is empty due to misconfiguration
if 'invalid' in opts.shell_integration:
return defaults.shell_integration
return ' '.join(opts.shell_integration)