[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
factor out error message functions, access function stack to know locati
From: |
Emanuel Berg |
Subject: |
factor out error message functions, access function stack to know location |
Date: |
Mon, 26 Oct 2015 02:17:28 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
In the sweet science of shell scripting, I wrote some
zsh the other day (that appears last in this post),
along with a couple of other functions that will cover
other typical error situations. [1]
The thought is to have uniform error messages so that
when a function for example doesn't get sufficient
input, or cannot verity it, as those situations are
common to many functions, an error function will be
called to print a stderr message, rather than to have
that coded over and over in all those functions.
Only problem is, in order for debugging to be much
less painful, the location where the problem happens
must still be known. In the below zsh, the first line
handles this by accessing the function stack - pretty
clever, ey?
Note: arrays in zsh are *not* zero-indexed, so the
first element of funcstack is funcstack[1] and that is
the current function! Ergo, funcstack[2] is the
function that called the error handler!
My question is, how do I do the same in Lisp (Elisp)?
The zsh:
no-file-msg () {
local fun=$funcstack[2]
local file=$1
echo "$fun: no such file: $file" >&2
}
[1] http://user.it.uu.se/~embe8573/conf/.zsh/error
--
underground experts united
http://user.it.uu.se/~embe8573
- factor out error message functions, access function stack to know location,
Emanuel Berg <=