run all functions in PROMPT_COMMAND (#144779)

This commit is contained in:
Megan Rogge 2022-03-11 20:34:17 -05:00 committed by GitHub
parent e4cf231274
commit 8ca417c5ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -83,14 +83,34 @@ preexec() {
update_prompt
prompt_cmd_original() {
STATUS="$?"
$ORIGINAL_PROMPT_COMMAND
if [[ "$ORIGINAL_PROMPT_COMMAND" =~ .+\;.+ ]]; then
IFS=';'
read -ra ADDR <<<"$ORIGINAL_PROMPT_COMMAND"
for ((i = 0; i < ${#ADDR[@]}; i++)); do
eval ${ADDR[i]}
done
IFS=''
else
for i in "${ORIGINAL_PROMPT_COMMAND[@]}"; do
eval $i
done
fi
precmd
}
prompt_cmd() {
STATUS="$?"
precmd
}
ORIGINAL_PROMPT_COMMAND=$PROMPT_COMMAND
if [[ "$PROMPT_COMMAND" =~ (.+\;.+) ]]; then
# item1;item2...
ORIGINAL_PROMPT_COMMAND="$PROMPT_COMMAND"
else
# (item1, item2...)
ORIGINAL_PROMPT_COMMAND=${PROMPT_COMMAND[@]}
fi
if [[ -n "$ORIGINAL_PROMPT_COMMAND" && "$ORIGINAL_PROMPT_COMMAND" != "prompt_cmd" ]]; then
PROMPT_COMMAND=prompt_cmd_original
else