Fix precision error
This commit is contained in:
parent
6deec61a1f
commit
6cbdffe340
27
.prompt
27
.prompt
|
@ -4,11 +4,12 @@
|
||||||
__debug_trap() {
|
__debug_trap() {
|
||||||
# Set necessary pre-command variables (PROMPT_COMMAND is a command
|
# Set necessary pre-command variables (PROMPT_COMMAND is a command
|
||||||
# so its excluded here)
|
# so its excluded here)
|
||||||
if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" ]]; then
|
if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" &&
|
||||||
LAST_EPOCH="$EPOCHSECONDS"
|
"$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then
|
||||||
LAST_REALTIME="$EPOCHREALTIME"
|
LAST_REALTIME="$EPOCHREALTIME"
|
||||||
INC_TIME=1
|
INC_TIME=1
|
||||||
fi
|
fi
|
||||||
|
LAST_BASH_COMMAND="$BASH_COMMAND"
|
||||||
}
|
}
|
||||||
|
|
||||||
trap '__debug_trap' DEBUG
|
trap '__debug_trap' DEBUG
|
||||||
|
@ -73,19 +74,31 @@ __sig() {
|
||||||
|
|
||||||
__prompt() {
|
__prompt() {
|
||||||
# Get exit code
|
# Get exit code
|
||||||
PEC=$?
|
local PEC=$?
|
||||||
# Reset time when prompt was first displayed after command
|
# Reset time when prompt was first displayed after command
|
||||||
if [ $INC_TIME -ne 0 ]; then
|
if [ $INC_TIME -ne 0 ]; then
|
||||||
PROMPT_EPOCH="$EPOCHSECONDS"
|
|
||||||
PROMPT_REALTIME="$EPOCHREALTIME"
|
PROMPT_REALTIME="$EPOCHREALTIME"
|
||||||
INC_TIME=0
|
INC_TIME=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get relative times
|
# Get relative times
|
||||||
CMD_TIME="$((PROMPT_EPOCH-LAST_EPOCH))"
|
|
||||||
|
# Remove decimal point, simulating multiplying by 1 million
|
||||||
|
PROMPT_RT1M="${PROMPT_REALTIME%.*}${PROMPT_REALTIME#*.}"
|
||||||
|
LAST_RT1M="${LAST_REALTIME%.*}${LAST_REALTIME#*.}"
|
||||||
|
# Subtract and divide by 1 million to get a more accurate difference
|
||||||
|
CMD_TIME="$(((PROMPT_RT1M-LAST_RT1M)/1000000))"
|
||||||
|
|
||||||
local LAST_US="$((10#${LAST_REALTIME: -6}))"
|
local LAST_US="$((10#${LAST_REALTIME: -6}))"
|
||||||
CMD_US="$((1${PROMPT_REALTIME: -6}-${LAST_US:-0}))"
|
local LAST_US="${LAST_US:-0}"
|
||||||
CMD_US="$((10#${CMD_US: -6}))"
|
local PROMPT_US="${PROMPT_REALTIME: -6}"
|
||||||
|
local PROMPT_US_CLN="$((10#$PROMPT_US))"
|
||||||
|
local PROMPT_US_CLN="${PROMPT_US_CLN:-0}"
|
||||||
|
|
||||||
|
[ $PROMPT_US_CLN -lt $LAST_US ] &&
|
||||||
|
CMD_US="$((1$PROMPT_US-$LAST_US))" ||
|
||||||
|
CMD_US="$(($PROMPT_US_CLN-$LAST_US))"
|
||||||
|
CMD_US="$((10#$CMD_US))"
|
||||||
|
|
||||||
# Set prompt sections
|
# Set prompt sections
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue