diff --git a/.prompt b/.prompt index 6190574..9096c9f 100644 --- a/.prompt +++ b/.prompt @@ -4,11 +4,10 @@ __debug_trap() { # Set necessary pre-command variables (PROMPT_COMMAND is a # command so its excluded here) - if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" ]]; then - if [[ "$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then - LAST_RT="$EPOCHREALTIME" - INC_TIME=1 - fi + if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" + && "$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then + LAST_RT="$EPOCHREALTIME" + INC_TIME=1 fi LAST_BASH_COMMAND="$BASH_COMMAND" } @@ -18,10 +17,10 @@ trap '__debug_trap' DEBUG __get_cmd_time() { # Set hours minutes seconds and remove preceding zeros local YEAR=$((10#0$(($(TZ=UTC printf '%(%Y)T' $CMD_TIME)))-1970)) - local DAYS=$((10#$(TZ=UTC printf '%(%j)T' $CMD_TIME))) - local HOUR=$((10#$(TZ=UTC printf '%(%H)T' $CMD_TIME))) - local MINS=$((10#$(TZ=UTC printf '%(%M)T' $CMD_TIME))) - local SECS=$((10#$(TZ=UTC printf '%(%S)T' $CMD_TIME))) + local DAYS=$((10#0$(TZ=UTC printf '%(%j)T' $CMD_TIME))) + local HOUR=$((10#0$(TZ=UTC printf '%(%H)T' $CMD_TIME))) + local MINS=$((10#0$(TZ=UTC printf '%(%M)T' $CMD_TIME))) + local SECS=$((10#0$(TZ=UTC printf '%(%S)T' $CMD_TIME))) # Choose whether or not to print hours minutes and seconds [[ $CMD_TIME -ge 31536000 ]] && printf '%sy ' ${YEAR:-0} @@ -103,24 +102,20 @@ __prompt() { # Get relative times - # Remove decimal point, simulating multiplying by 1 million - local PROMPT_RT1M="${PROMPT_RT%.*}${PROMPT_RT#*.}" - local LAST_RT1M="${LAST_RT%.*}${LAST_RT#*.}" - # Subtract and divide by 1 million to get a more accurate difference CMD_TIME="$(((PROMPT_RT1M-LAST_RT1M)/1000000))" CMD_TIME="${CMD_TIME:-0}" - local LAST_US="$((10#${LAST_RT: -6}))" + local LAST_US="$((10#0${LAST_RT: -6}))" local LAST_US="${LAST_US:-0}" local PROMPT_US="${PROMPT_RT: -6}" - local PROMPT_US_CLN="$((10#$PROMPT_US))" + local PROMPT_US_CLN="$((10#0$PROMPT_US))" local PROMPT_US_CLN="${PROMPT_US_CLN:-0}" [[ $PROMPT_US_CLN < $LAST_US ]] && CMD_US="$((1$PROMPT_US-$LAST_US))" || CMD_US="$(($PROMPT_US_CLN-$LAST_US))" - CMD_US="$((10#$CMD_US))" + CMD_US="$((10#0$CMD_US))" # Set prompt sections