From: Emanuel Berg <embe8573@student.uu.se>
To: help-gnu-emacs@gnu.org
Subject: factor out error message functions, access function stack to know location
Date: Mon, 26 Oct 2015 02:17:28 +0100 [thread overview]
Message-ID: <871tcio2c7.fsf@debian.uxu> (raw)
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
next reply other threads:[~2015-10-26 1:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-26 1:17 Emanuel Berg [this message]
[not found] <mailman.1053.1445821696.7904.help-gnu-emacs@gnu.org>
2015-10-26 2:42 ` factor out error message functions, access function stack to know location Dan Espen
2015-10-27 0:27 ` Emanuel Berg
2015-10-27 1:50 ` Emanuel Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871tcio2c7.fsf@debian.uxu \
--to=embe8573@student.uu.se \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.