__fish_complete_path: preserve equals signs in prefixes - #12908
Open
SR0725 wants to merge 1 commit into
Open
Conversation
Escape equals signs before passing the target to the completion engine so they remain part of the path prefix. Fixes fish-shell#12885
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
__fish_complete_path --bar=currently treats the equals sign as an option or assignment delimiter, then offers unrelated files with--bar=prepended. This escapes the equals sign only in the synthetic command line passed tocomplete, keeping it part of the path prefix. A real match such as--bar=bazstill completes normally.Fixes #12885.
Testing
python3 tests/test_driver.py target/debug tests/checks/complete_path.fishtarget/debug/fish_indent --check share/functions/__fish_complete_path.fish tests/checks/complete_path.fishTERM=xterm-256color cargo xtask checkpassed formatting, Clippy, unit tests, doc tests, docs, and 204 of 207 integration checks. The remaining checks were blocked by local Sphinx deprecation warnings and a tmux process-group permission error; none exercise these files.TODOs
Fixes issue #<issue-number>