make sure pwd and IFS are initialized when running *_compute

This commit is contained in:
romkatv 2020-01-19 10:38:16 +01:00
parent e65f05d7be
commit 0ae338dde1

View file

@ -1049,7 +1049,7 @@ _p9k_prompt_disk_usage_compute() {
} }
_p9k_prompt_disk_usage_async() { _p9k_prompt_disk_usage_async() {
(( $+commands[df] )) && REPLY=${${=${(f)"$(df -P . 2>/dev/null)"}[2]}[5]%%%} (( $+commands[df] )) && REPLY=${${=${(f)"$(df -P $1 2>/dev/null)"}[2]}[5]%%%}
} }
_p9k_prompt_disk_usage_sync() { _p9k_prompt_disk_usage_sync() {
@ -4035,8 +4035,14 @@ function _p9k_build_instant_segment() {
function _p9k_set_prompt() { function _p9k_set_prompt() {
local ifs=$IFS local ifs=$IFS
IFS=$' \t\n\0' IFS=$' \t\n\0'
_p9k__pwd=${(%):-%/}
_p9k__pwd_a=${_p9k__pwd:A} if [[ $_p9k_refresh_reason == precmd ]]; then
local f_init f_compute
for f_init f_compute in "${_p9k_async_segments[@]}"; do
$f_compute
done
fi
PROMPT= PROMPT=
RPROMPT= RPROMPT=
[[ $1 == instant_ ]] || PROMPT+='${$((_p9k_on_expand()))+}' [[ $1 == instant_ ]] || PROMPT+='${$((_p9k_on_expand()))+}'
@ -4846,10 +4852,8 @@ _p9k_precmd_impl() {
(( ++_p9k__prompt_idx )) (( ++_p9k__prompt_idx ))
fi fi
local f_init f_compute _p9k__pwd=${(%):-%/}
for f_init f_compute in "${_p9k_async_segments[@]}"; do _p9k__pwd_a=${_p9k__pwd:A}
$f_compute
done
_p9k_refresh_reason=precmd _p9k_refresh_reason=precmd
_p9k_set_prompt _p9k_set_prompt