diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2022-05-11 03:35:52 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2022-05-11 03:49:04 -0400 |
commit | dbdda40f279bd7fd7cc414960b716cb75abcd1bf (patch) | |
tree | 7502396fec0e5adb27005c230cc5b4ac6790faa9 | |
parent | 377d2fe006c04f8f3275a57036abe91dccc09202 (diff) |
bugfix error loggingwip-2022-05-11
-rwxr-xr-x | install.sh | 4 | ||||
-rw-r--r-- | session-common.sh.inc | 10 |
2 files changed, 8 insertions, 6 deletions
@@ -531,8 +531,8 @@ Cleanup() ## error logging ## set -o errexit -o errtrace -trap 'trap - ERR ; clear ; LogError() { : ; } ; Cleanup ;' EXIT INT TERM -trap 'trap - EXIT INT TERM ; clear ; LogError "${FUNCNAME[0]}" ${LINENO} ;' ERR +trap 'trap - ERR ; LogError() { : ; } ; Cleanup ;' EXIT INT TERM +trap 'trap - EXIT INT TERM ; LogError "${FUNCNAME[0]}" ${LINENO} ;' ERR ## main entry ## diff --git a/session-common.sh.inc b/session-common.sh.inc index 5ab52d4..a49762f 100644 --- a/session-common.sh.inc +++ b/session-common.sh.inc @@ -269,16 +269,18 @@ RemoveOption() # (part_n) LogError() # (source_file func_name line_n) { - local SOURCE_FILE="$1" - local FUNC_NAME="$( [[ -n "$2" ]] && echo "$2" || echo "${SOURCE_FILE}" )" - local LINE_N=$3 + local SOURCE_FILE="${BASH_SOURCE[1]}" + local FUNC_NAME="$( [[ -n "$1" ]] && echo "$1" || echo "FUNC_NAME" )" + local LINE_N=$2 local N_CONTEXT_LINES=3 local N_LINES=$(( 1 + (2 * N_CONTEXT_LINES) )) local BEGIN_LINE_N=$(( LINE_N - N_CONTEXT_LINES )) local END_LINE_N=$(( LINE_N + N_CONTEXT_LINES )) local marker line - echo "ERROR: in ${FUNC_NAME}::${LINE_N}" >&2 + (( BEGIN_LINE_N < 0 )) && BEGIN_LINE_N=0 + + echo "ERROR: in ${SOURCE_FILE} ${FUNC_NAME}()::${LINE_N}" >&2 sed 's|\\$||' "${SOURCE_FILE}" | pr -tn | \ tail -n +${BEGIN_LINE_N} | head -n ${N_LINES} | tr '\n' '\n' | \ while read line |