help-gnu-emacs
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]