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
No known key found for this signature in database
GPG key ID: E921CF18AC8FF6EB
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 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)