c6e7f8905fb61b927f12f43fb57f8c514cd48a67

Author
Joey Territo <54502648+jtt9340@users.noreply.github.com>
Committer
GitHub <noreply@github.com>
Date

Message

fix(rust): fix `cargo` completion when sysroot contains spaces (#10571)

When generating completions for Cargo, if the Rust sysroot
(i.e. `rustc +${${(z)$(rustup default)}[1]} --print sysroot`) contains
spaces, Cargo completions will not work because the spaces are not
escaped, thus passing two arguments to the "source" command instead of
one. The spaces need to be escaped for this to work.

Diff

 1diff --git a/plugins/rust/rust.plugin.zsh b/plugins/rust/rust.plugin.zsh
 2index 465b701b03b086d01ee17e33b82cb6aa68212c84..db6ca9e7449ab4bc5c7313d4e40fc030848f302a 100644
 3--- a/plugins/rust/rust.plugin.zsh
 4+++ b/plugins/rust/rust.plugin.zsh
 5@@ -27,5 +27,5 @@ fi
 6 rustup completions zsh >| "$ZSH_CACHE_DIR/completions/_rustup" &|
 7 cat >| "$ZSH_CACHE_DIR/completions/_cargo" <<'EOF'
 8 #compdef cargo
 9-source $(rustc +${${(z)$(rustup default)}[1]} --print sysroot)/share/zsh/site-functions/_cargo
10+source "$(rustc +${${(z)$(rustup default)}[1]} --print sysroot)"/share/zsh/site-functions/_cargo
11 EOF