-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Escape single quotes while translating dropped Win32 paths #18007
base: main
Are you sure you want to change the base?
Conversation
@microsoft-github-policy-service agree |
Would it be simpler to paste with double quotes and handle escaping of significant characters like |
@lhecker I would prefer searching for just one character ( The inserting sequence |
Also, escaping just like Old: Additional references: |
bcf2c74
to
9eabd09
Compare
Hey, sorry about this - I didn't realize we had an open PR in this area when I changed how path translation works. You will probably have conflicts or outright failures once you merge |
Checked. The solution seems to be simple and working on it. |
9eabd09
to
dcc31cb
Compare
This comment has been minimized.
This comment has been minimized.
dcc31cb
to
94a0bdd
Compare
Overhauled the PR to adopt my changes over @DHowett's. |
94a0bdd
to
d7b92af
Compare
When file/folder is dropped to the terminal, its path is translated and quoted with a pair of single quotes if necessary. However, despite that the Win32 subsystem allows single quote, the terminal control does not escape it. It causes a path containing one or more single quotes incorrect on the POSIX shell context (see Issue microsoft#18006 for an example). With this commit, the terminal control escapes a single quote with a valid escape sequence `'\''` (finish quote, print a single quote then begin quote again) when the path translation is required.
d7b92af
to
e942600
Compare
Summary of the Pull Request
When file/folder is dropped to the terminal, its path is translated and quoted with a pair of single quotes if necessary.
However, despite that the Win32 subsystem allows single quote, the terminal control does not escape it.
It causes a path containing one or more single quotes incorrect on the POSIX shell context (see #18006 for an example).
With this commit, the terminal control escapes a single quote with a valid escape sequence
'\''
(finish quote, print a single quote then begin quote again) when the path translation is required.History
v1 → v2
'"'"'
to much shorter'\''
.v2 → v3 (current)
References and Relevant Issues
Detailed Description of the Pull Request / Additional comments
This is a follow-up of #16214 and #18195, fixing #18006.
Validation Steps Performed
PR Checklist