emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: C-g while exiting the minibuffer


From: Stefan Monnier
Subject: Re: C-g while exiting the minibuffer
Date: Thu, 28 Nov 2013 20:38:16 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Found it:

    revno: 39564
    committer: Gerd Moellmann <address@hidden>
    timestamp: Fri 2001-10-05 09:48:47 +0000
    message:
      (LIST_END_P, FOREACH): New macros.


   /* Loop over Lisp list LIST.  Signal an error if LIST is not a proper
      list, or if it contains circles.
      
      HARE and TORTOISE should be the names of Lisp_Object variables, and
      N should be the name of an EMACS_INT variable declared in the
      function where the macro is used.  Each nested loop should use
      its own variables.
   
      In the loop body, HARE is set to each cons of LIST, and N is the
      length of the list processed so far.  */
   
   #define LIST_END_P(list, obj)                                \
     (NILP (obj)                                                \
      ? 1                                                       \
      : (CONSP (obj)                                    \
         ? 0                                            \
         : (wrong_type_argument (Qlistp, (list), 0)), 1))
   
   #define FOREACH(hare, list, tortoise, n)             \
     for (tortoise = hare = (list), n = 0;                      \
          !LIST_END_P (list, hare);                     \
          (hare = XCDR (hare), ++n,                     \
        ((n & 1) != 0                                   \
         ? (tortoise = XCDR (tortoise),                 \
            (EQ (hare, tortoise)                        \
             && (circular_list_error ((list)), 1)))     \
         : 0)))

Died in 2011:

    revno: 103880.1.17
    committer: Paul Eggert <address@hidden>
    branch nick: atest
    timestamp: Mon 2011-04-11 22:17:33 -0700
    message:
      * lisp.h (circular_list_error, FOREACH): Remove; unused.


-- Stefan



reply via email to

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