diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2016-09-11 11:52:08 (GMT) |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2016-09-11 11:52:08 (GMT) |
commit | 8d82559ca7cd50de45e1aff0b9f9851f4cb64019 (patch) | |
tree | 98dc6bb4b4a9d1dfbf866a4af179d98b004dcfaa /Lib/venv | |
parent | b7665386bc64e8f816a14ef63b72881a00a4d08b (diff) | |
download | cpython-8d82559ca7cd50de45e1aff0b9f9851f4cb64019.zip cpython-8d82559ca7cd50de45e1aff0b9f9851f4cb64019.tar.gz cpython-8d82559ca7cd50de45e1aff0b9f9851f4cb64019.tar.bz2 |
Fixes #25671: Updated prompt handling in activate.fish.
Diffstat (limited to 'Lib/venv')
-rw-r--r-- | Lib/venv/scripts/posix/activate.fish | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/Lib/venv/scripts/posix/activate.fish b/Lib/venv/scripts/posix/activate.fish index ca98466..4d4f0bd 100644 --- a/Lib/venv/scripts/posix/activate.fish +++ b/Lib/venv/scripts/posix/activate.fish @@ -15,10 +15,7 @@ function deactivate -d "Exit virtualenv and return to normal shell environment" if test -n "$_OLD_FISH_PROMPT_OVERRIDE" functions -e fish_prompt set -e _OLD_FISH_PROMPT_OVERRIDE - . ( begin - printf "function fish_prompt\n\t#" - functions _old_fish_prompt - end | psub ) + functions -c _old_fish_prompt fish_prompt functions -e _old_fish_prompt end @@ -47,27 +44,31 @@ if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" # fish uses a function instead of an env var to generate the prompt. # save the current fish_prompt function as the function _old_fish_prompt - . ( begin - printf "function _old_fish_prompt\n\t#" - functions fish_prompt - end | psub ) + functions -c fish_prompt _old_fish_prompt # with the original prompt function renamed, we can override with our own. function fish_prompt + # Save the return status of the last command + set -l old_status $status + # Prompt override? - if test -n "__VENV_PROMPT__" - printf "%s%s%s" "__VENV_PROMPT__" (set_color normal) (_old_fish_prompt) - return - end - # ...Otherwise, prepend env - set -l _checkbase (basename "$VIRTUAL_ENV") - if test $_checkbase = "__" - # special case for Aspen magic directories - # see http://www.zetadev.com/software/aspen/ - printf "%s[%s]%s %s" (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) (_old_fish_prompt) + if test -n "__VENV_PROMPT__" + printf "%s%s" "__VENV_PROMPT__" (set_color normal) else - printf "%s(%s)%s%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) (_old_fish_prompt) + # ...Otherwise, prepend env + set -l _checkbase (basename "$VIRTUAL_ENV") + if test $_checkbase = "__" + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) + else + printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) + end end + + # Restore the return status of the previous command. + echo "exit $old_status" | . + _old_fish_prompt end set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" |