mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 13:46:13 +00:00
run all functions in PROMPT_COMMAND (#144779)
This commit is contained in:
parent
e4cf231274
commit
8ca417c5ab
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue