Browse Source

fix: quote % characters in ruby prompt info functions

Marc Cornellà 2 years ago
parent
commit
9a3d853481

+ 1 - 1
lib/prompt_info_functions.zsh

@@ -30,7 +30,7 @@ function rvm_prompt_info() {
   local rvm_prompt
   rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null)
   [[ -z "${rvm_prompt}" ]] && return 1
-  echo "${ZSH_THEME_RUBY_PROMPT_PREFIX}${rvm_prompt}${ZSH_THEME_RUBY_PROMPT_SUFFIX}"
+  echo "${ZSH_THEME_RUBY_PROMPT_PREFIX}${rvm_prompt:gs/%/%%}${ZSH_THEME_RUBY_PROMPT_SUFFIX}"
 }
 
 ZSH_THEME_RVM_PROMPT_OPTIONS="i v g"

+ 1 - 1
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

+ 2 - 2
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

+ 2 - 1
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/%/%%}" }