From 473c5c45c3554350c4fcc3b537512fea6fa6769c Mon Sep 17 00:00:00 2001 From: romkatv Date: Wed, 29 May 2019 12:38:51 +0200 Subject: [PATCH] don't invoke custom prompt command if it doesn't resolve --- powerlevel9k.zsh-theme | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index 5452441e..1d0e43b3 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -697,14 +697,11 @@ prompt_custom() { local segment_name="${3:u}" # Get content of custom segment local command="POWERLEVEL9K_CUSTOM_${segment_name}" - local segment_content="$(eval ${(P)command})" - # Note: this would be a better implementation. I'm keeping the old one in case anyone - # relies on its quirks. - # local segment_content=$("${(@Q)${(z)${(P)command}}}") - - if [[ -n $segment_content ]]; then - "$1_prompt_segment" "${0}_${3:u}" "$2" $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR "CUSTOM_${segment_name}_ICON" 0 '' "$segment_content" - fi + local -a cmd=("${(@Q)${(z)${(P):-POWERLEVEL9K_CUSTOM_${segment_name}}}}") + whence $cmd[1] &>/dev/null || return + local content=$("$cmd[@]") + [[ -n $content ]] || return + "$1_prompt_segment" "${0}_${3:u}" "$2" $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR "CUSTOM_${segment_name}_ICON" 0 '' "$content" } ################################################################