[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SPECPDL_INDEX
From: |
Andreas Politz |
Subject: |
Re: SPECPDL_INDEX |
Date: |
Tue, 06 Jan 2009 16:03:58 +0100 |
User-agent: |
Mozilla-Thunderbird 2.0.0.17 (X11/20081018) |
A. Soare wrote:
Can someone illuminate me what is the purpose of the `count' variable in the
function `redisplay', please?
Thanks in advance.
DEFUN ("redisplay", Fredisplay, Sredisplay, 0, 1, 0,
doc: /* Perform redisplay if no input is available.
If optional arg FORCE is non-nil or `redisplay-dont-pause' is non-nil,
perform a full redisplay even if input is available.
Return t if redisplay was performed, nil otherwise. */)
(force)
Lisp_Object force;
{
int count;
swallow_events (1);
if ((detect_input_pending_run_timers (1)
&& NILP (force) && !redisplay_dont_pause)
|| !NILP (Vexecuting_kbd_macro))
return Qnil;
count = SPECPDL_INDEX ();
if (!NILP (force) && !redisplay_dont_pause)
specbind (Qredisplay_dont_pause, Qt);
redisplay_preserve_echo_area (2);
unbind_to (count, Qnil);
return Qt;
}
I think it's an index into the variable binding stack to which the
c-function unwind_to later restores state.
Maybe take a look at the definition of the let form in eval.c .
-ap
- SPECPDL_INDEX, A. Soare, 2009/01/06
- Re: SPECPDL_INDEX,
Andreas Politz <=