From 9a3d853481645ae0f961e9cc8421fc5d84e2c3c3 Mon Sep 17 00:00:00 2001
From: Marc Cornellà <hello@mcornella.com>
Date: Mon, 13 Dec 2021 17:43:32 +0100
Subject: fix: quote % characters in ruby prompt info functions

---
 plugins/chruby/chruby.plugin.zsh | 2 +-
 plugins/rbenv/rbenv.plugin.zsh   | 4 ++--
 plugins/rbfu/rbfu.plugin.zsh     | 3 ++-
 3 files changed, 5 insertions(+), 4 deletions(-)

(limited to 'plugins')

diff --git a/plugins/chruby/chruby.plugin.zsh b/plugins/chruby/chruby.plugin.zsh
index 61ded3b73..d7a28d4e2 100644
--- a/plugins/chruby/chruby.plugin.zsh
+++ b/plugins/chruby/chruby.plugin.zsh
@@ -73,7 +73,7 @@ function current_ruby() {
 }
 
 function chruby_prompt_info() {
-  echo "$(current_ruby)"
+  echo "${$(current_ruby):gs/%/%%}"
 }
 
 # Complete chruby command with installed rubies
diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh
index d36d4922c..d758aebae 100644
--- a/plugins/rbenv/rbenv.plugin.zsh
+++ b/plugins/rbenv/rbenv.plugin.zsh
@@ -47,7 +47,7 @@ if [[ $FOUND_RBENV -eq 1 ]]; then
   }
 
   function rbenv_prompt_info() {
-    local ruby=$(current_ruby) gemset=$(current_gemset)
+    local ruby=${$(current_ruby):gs/%/%%} gemset=${$(current_gemset):gs/%/%%}
     echo -n "${ZSH_THEME_RUBY_PROMPT_PREFIX}"
     [[ -n "$gemset" ]] && echo -n "${ruby}@${gemset}" || echo -n "${ruby}"
     echo "${ZSH_THEME_RUBY_PROMPT_SUFFIX}"
@@ -60,7 +60,7 @@ else
   function gems() { echo "not supported" }
   function rbenv_prompt_info() {
     echo -n "${ZSH_THEME_RUBY_PROMPT_PREFIX}"
-    echo -n "system: $(ruby -v | cut -f-2 -d ' ')"
+    echo -n "system: $(ruby -v | cut -f-2 -d ' ' | sed 's/%/%%/g')"
     echo "${ZSH_THEME_RUBY_PROMPT_SUFFIX}"
   }
 fi
diff --git a/plugins/rbfu/rbfu.plugin.zsh b/plugins/rbfu/rbfu.plugin.zsh
index c973fbf9f..27dc3eec6 100644
--- a/plugins/rbfu/rbfu.plugin.zsh
+++ b/plugins/rbfu/rbfu.plugin.zsh
@@ -45,4 +45,5 @@ function rbfu-rubies() {
 
 # Public: Create rvm_prompt_info command for themes compatibility, unless
 # it has already been defined.
-[ ! -x rvm_prompt_info ] && function rvm_prompt_info() { echo "${RBFU_RUBY_VERSION:=system}" }
+(( ${+functions[rvm_prompt_info]} )) || \
+function rvm_prompt_info() { echo "${${RBFU_RUBY_VERSION:=system}:gs/%/%%}" }
-- 
cgit v1.2.3-70-g09d2