From e162e2a891f1d7aba7cb533fdbb6025036c404e4 Mon Sep 17 00:00:00 2001 From: Alex Jurkiewicz Date: Thu, 12 Oct 2023 13:50:45 +0800 Subject: [PATCH] Fix up function return value passing Don't use echo, instead set a variable which the calling function checks. This is the standard in p10, presumably because it's faster..? --- internal/p10k.zsh | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/internal/p10k.zsh b/internal/p10k.zsh index d341f772..ae77cd8c 100644 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -4287,15 +4287,14 @@ _virtualenv_VIRTUAL_ENV() { # VIRTUAL_ENV is the on-disk path, VIRTUAL_ENV_PROMPT is `(name_of_virtualenv) `. # Use custom name if it was set (python -m venv -p "foo" .venv) if [[ $VIRTUAL_ENV_PROMPT == '('?*') ' && $VIRTUAL_ENV_PROMPT != "($n) " ]]; then - n=$VIRTUAL_ENV_PROMPT[2,-3] + _virtualenv_name=$VIRTUAL_ENV_PROMPT[2,-3] # Use parent directory name if virtualenv name is generic (eg .venv) elif [[ $v == $~_POWERLEVEL9K_VIRTUALENV_GENERIC_NAMES ]]; then - n=${VIRTUAL_ENV:h:t} + _virtualenv_name=${VIRTUAL_ENV:h:t} # Otherwise use the virtualenv name as-is else - n=${VIRTUAL_ENV:t} + _virtualenv_name=${VIRTUAL_ENV:t} fi - echo "$n" } _virtualenv_poetry() { local idx=$1 @@ -4303,32 +4302,31 @@ _virtualenv_poetry() { local pyproject="$dir/pyproject.toml" _p9k_cached_cmd 0 '' poetry -C "$dir" version # Return the first word only, eg the value of pyproject.toml's `poetry.name` - echo "${_p9k__ret%% *}" + _virtualenv_name="${_p9k__ret%% *}" } prompt_virtualenv() { local msg='' if (( _POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION )) && _p9k_python_version; then msg="${_p9k__ret//\%/%%} " fi - # Determine virtualenv name with a few strategies - local n='' + _virtualenv_name='' if [[ -n $VIRTUAL_ENV ]]; then - n=$(_virtualenv_VIRTUAL_ENV) + _virtualenv_VIRTUAL_ENV else local start end _p9k_upglob pyproject.toml local idx=$? if (( idx > 0 )); then - n=$(_virtualenv_poetry $idx) + _virtualenv_poetry $idx fi fi - msg+="$_POWERLEVEL9K_VIRTUALENV_LEFT_DELIMITER${n//\%/%%}$_POWERLEVEL9K_VIRTUALENV_RIGHT_DELIMITER" + msg+="$_POWERLEVEL9K_VIRTUALENV_LEFT_DELIMITER${_virtualenv_name//\%/%%}$_POWERLEVEL9K_VIRTUALENV_RIGHT_DELIMITER" case $_POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV in false) _p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PYTHON_ICON' 0 '${(M)${#P9K_PYENV_PYTHON_VERSION}:#0}' "$msg" ;; if-different) - _p9k_escape $n + _p9k_escape $_virtualenv_name _p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PYTHON_ICON' 0 '${${:-'$_p9k__ret'}:#$_p9k__pyenv_version}' "$msg" ;; *)