Fix precision error

This commit is contained in:
The Cobra 2022-03-02 01:29:04 -05:00
parent 6deec61a1f
commit 6cbdffe340
1 changed files with 20 additions and 7 deletions

27
.prompt
View File

@ -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