Skip to content
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

Fix #157: Correct single quote escaping for POSIX shells #180

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

talk2drys
Copy link

Fixed an issue with run_command("echo 'Hello'") where wrapping commands in args in single quotes caused invalid parsing in POSIX-compliant shells. In these shells, single quotes enclose literal text, making escape sequences like \' invalid. For more details, refer to the GNU Bash manual: https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html.

For example, calling run_command("echo 'Hello'") would be incorrectly escaped by vim.fn.shellescape as echo '\''Hello'\'', leading to invalid parsing. The fix replaces the outer double quotes with single quotes where necessary and command arg with double qoute, ensuring proper escaping and compatibility across different shell environments.

Fixed an issue with `run_command("echo 'Hello'")` where wrapping commands
in args in single quotes caused invalid parsing in POSIX-compliant shells.
In these shells, single quotes enclose literal text, making escape sequences
like `\'` invalid. For more details, refer to the GNU Bash manual:
https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html.

For example, calling `run_command("echo 'Hello'")` would be incorrectly
escaped by `vim.fn.shellescape` as `echo '\''Hello'\''`, leading to
invalid parsing. The fix replaces the outer double quotes with single
quotes where necessary and command arg with double qoute, ensuring proper
escaping and compatibility across different shell environments.

Signed-off-by: Daniel Temiagin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant