Fix precision error
This commit is contained in:
parent
6deec61a1f
commit
6cbdffe340
27
.prompt
27
.prompt
|
@ -4,11 +4,12 @@
|
|||
__debug_trap() {
|
||||
# Set necessary pre-command variables (PROMPT_COMMAND is a command
|
||||
# so its excluded here)
|
||||
if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" ]]; then
|
||||
LAST_EPOCH="$EPOCHSECONDS"
|
||||
if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" &&
|
||||
"$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then
|
||||
LAST_REALTIME="$EPOCHREALTIME"
|
||||
INC_TIME=1
|
||||
fi
|
||||
LAST_BASH_COMMAND="$BASH_COMMAND"
|
||||
}
|
||||
|
||||
trap '__debug_trap' DEBUG
|
||||
|
@ -73,19 +74,31 @@ __sig() {
|
|||
|
||||
__prompt() {
|
||||
# Get exit code
|
||||
PEC=$?
|
||||
local PEC=$?
|
||||
# Reset time when prompt was first displayed after command
|
||||
if [ $INC_TIME -ne 0 ]; then
|
||||
PROMPT_EPOCH="$EPOCHSECONDS"
|
||||
PROMPT_REALTIME="$EPOCHREALTIME"
|
||||
INC_TIME=0
|
||||
fi
|
||||
|
||||
# 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}))"
|
||||
CMD_US="$((1${PROMPT_REALTIME: -6}-${LAST_US:-0}))"
|
||||
CMD_US="$((10#${CMD_US: -6}))"
|
||||
local LAST_US="${LAST_US:-0}"
|
||||
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
|
||||
|
||||
|
|
Loading…
Reference in New Issue