From xemacs-m  Thu Mar 13 12:13:47 1997
Received: from synaptics.synaptics.com (synaptics.synaptics.com [207.92.223.3])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id MAA04022
	for <xemacs-beta@xemacs.org>; Thu, 13 Mar 1997 12:13:45 -0600 (CST)
Received: (from mail@localhost) by synaptics.synaptics.com (8.7.5/8.7.3) id JAA25917 for <xemacs-beta@xemacs.org>; Thu, 13 Mar 1997 09:11:31 -0800 (PST)
X-Authentication-Warning: synaptics.synaptics.com: mail set sender to <daveg@thymus> using -f
Received: from synaptx.synaptics.com(192.147.44.16) by synaptics.synaptics.com via smap (V1.3)
	id sma025911; Thu Mar 13 09:11:06 1997
Received: from thymus.synaptics.com by synaptx.synaptics.com (4.1/SMI-4.1)
	id AA11227; Thu, 13 Mar 97 10:12:34 PST
Received: by thymus.synaptics.com (4.1/SMI-4.1)
	id AA12062; Thu, 13 Mar 97 10:12:27 PST
Message-Id: <9703131812.AA12062@thymus.synaptics.com>
To: xemacs-beta@xemacs.org
Subject: Re: RETURN_UNGCPRO 
In-Reply-To: Your message of "Thu, 13 Mar 97 00:38:11 PST."
             <199703130838.AAA00861@xemacs.eng.sun.com> 
Reply-To: daveg@synaptics.com
Date: Thu, 13 Mar 97 10:12:26 -0800
From: Dave Gillespie <daveg@synaptics.com>

> #define RETURN_UNGCPRO(expr) do                                         \
> {                                                                       \
>   Lisp_Object ret_ungc_val = (expr);                                    \
>   UNGCPRO;                                                              \
>   return ret_ungc_val;                                                  \
> } while (0)

Another way to write this that doesn't involve loops is

  #define RETURN_UNGCPRO(expr) if (0) ; else                              \
  {                                                                       \
    Lisp_Object ret_ungc_val = (expr);                                    \
    UNGCPRO;                                                              \
    return ret_ungc_val;                                                  \
  }            

The latter form is also transparent to "break" and "continue," for
what it's worth.

								-- Dave

