Skip to content

Commit

Permalink
ssh kitten: Fix zsh shell integration expanding variables in title
Browse files Browse the repository at this point in the history
Remove usage of the `-P` option from the print inside the
`_ksi_precmd` and `_ksi_preexec` functions. Instead, the result of
`builtin print -Pn "%m"` is stored in the local variable `hostname`.
This mitigates accidental expansion of variables in the command to be
executed.

Fixes #8193.
  • Loading branch information
3j14 committed Jan 5, 2025
1 parent 6fbeb93 commit bfbf22e
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions shell-integration/zsh/kitty-integration
Original file line number Diff line number Diff line change
Expand Up @@ -268,10 +268,15 @@ _ksi_deferred_init() {

if [[ "$is_ssh_session" == "y" ]]; then
# show the hostname via %m for SSH sessions
builtin local hostname="$(builtin print -Pn "%m")"
# The variable `hostname` is used such that we don't have to use
# the -P option in the two print commands below. This mitigating
# accidental variable expansion, e.g. of the variables in the
# command string (V).
functions[_ksi_precmd]+="
builtin print -Prnu $_ksi_fd \$'\\e]2;'\"%m: \${(%):-%(4~|…/%3~|%~)}\"\$'\\a'"
builtin print -rnu $_ksi_fd \$'\\e]2;'\"$hostname: \${(%):-%(4~|…/%3~|%~)}\"\$'\\a'"
functions[_ksi_preexec]+="
builtin print -Prnu $_ksi_fd \$'\\e]2;'\"%m: \${(V)1}\"\$'\\a'"
builtin print -rnu $_ksi_fd \$'\\e]2;'\"$hostname: \${(V)1}\"\$'\\a'"
else
functions[_ksi_precmd]+="
builtin print -rnu $_ksi_fd \$'\\e]2;'\"\${(%):-%(4~|…/%3~|%~)}\"\$'\\a'"
Expand Down

0 comments on commit bfbf22e

Please sign in to comment.