From 7615da7fb2d3475df9c0d4fa954be294ab133798 Mon Sep 17 00:00:00 2001 From: javalsai Date: Tue, 2 Jun 2026 23:21:17 +0200 Subject: [PATCH] style: improve backtrace format (rust-like) --- src/mod/core.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/mod/core.sh b/src/mod/core.sh index f293071..7a590f3 100644 --- a/src/mod/core.sh +++ b/src/mod/core.sh @@ -16,7 +16,21 @@ std::backtrace() { std::eprintln $'\033[4m'"Backtrace:" for i in "${!FUNCNAME[@]}"; do - std::eprintln " ${FUNCNAME[$i]} called at ${BASH_SOURCE[$i]}:${BASH_LINENO[$i - 1]}" + ! [ "$i" -eq 0 ] || continue + + std::eprintln " $i: ${FUNCNAME[$i]}" + + local src + src=$(realpath --relative-to "$PWD" -e "${BASH_SOURCE[$i]}") + if [ "${src:0:1}" != "." ]; then + src=./$src + fi + + if [ "${BASH_LINENO[$i - 1]}" -eq 0 ]; then + std::eprintln $'\033[0m'" at "$'\033[1;35m'"$src" + else + std::eprintln $'\033[0m'" at "$'\033[1;35m'"$src:${BASH_LINENO[$i - 1]}" + fi done }