From f47b3b16676ec60d37cd6614b53844ebc26aad61 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sun, 17 Jan 2016 09:35:28 -0500 Subject: error(): Add variant that doesn't exit --- diff --git a/src/output.sh b/src/output.sh index 62d2095..320a46b 100644 --- a/src/output.sh +++ b/src/output.sh @@ -20,17 +20,28 @@ error() { - local status=${1} - local fmt="${2}" - shift 2 + case "${1}" in + *[!0-9]*) + local fmt="${1}" + shift 1 - printf '%s: Error: ' "${0##*/}" >&2 - printf "${fmt}\n" "${@}" >&2 - - # In a subshell, this will have no effect, so the shell's exit status - # will be 128+SIGINT. Meh. - exit_status=${status} - kill -s INT ${$} + printf '%s: Error: ' "${0##*/}" >&2 + printf "${fmt}\n" "${@}" >&2 + ;; + *) + local status=${1} + local fmt="${2}" + shift 2 + + printf '%s: Error: ' "${0##*/}" >&2 + printf "${fmt}\n" "${@}" >&2 + + # In a subshell, this will have no effect, so the + # shell's exit status will be 128+SIGINT. Meh. + exit_status=${status} + kill -s INT ${$} + ;; + esac } warn() -- cgit v0.9.1