From xemacs-m  Wed May 28 10:24:39 1997
Received: from elc1.dina.kvl.dk (elc1.dina.kvl.dk [130.225.40.228])
	by xemacs.org (8.8.5/8.8.5) with SMTP id KAA05451
	for <xemacs-beta@xemacs.org>; Wed, 28 May 1997 10:24:38 -0500 (CDT)
Received: from zuse.dina.kvl.dk (zuse.dina.kvl.dk [130.225.40.245]) by elc1.dina.kvl.dk (8.6.12/8.6.4) with ESMTP id RAA10620; Wed, 28 May 1997 17:23:15 +0200
Received: (abraham@localhost) by zuse.dina.kvl.dk (8.6.12/8.6.4) id RAA23399; Wed, 28 May 1997 17:24:36 +0200
To: Hrvoje Niksic <hniksic@srce.hr>
Cc: XEmacs Developers <xemacs-beta@xemacs.org>
Subject: Re: Not dumping faces
References: <kig7mgjhd9n.fsf@jagor.srce.hr>
Organization: The Church of Emacs
X-Face: +kRV2]2q}lixHkE{U)mY#+6]{AH=yN~S9@IFiOa@X6?GM<U{B+4e{k79.Ya{~':DblFPCg$
 @60,BfLv2@SKZ19cMWK0/C'v;tM:|6B'R}U1rp6CL&kN({9<zF/V{:JCg27yC)9oZjeqcQawzKfiNL
 t9}`vjmK["dRQC/qGFQq"%u|Q`:6{"Rz}b(dnl_"3$Jtqimi>|8MBp/
From: Per Abrahamsen <abraham@dina.kvl.dk>
Date: 28 May 1997 17:24:35 +0200
In-Reply-To: Hrvoje Niksic's message of 28 May 1997 16:39:16 +0200
Message-ID: <rjd8qby5zg.fsf@zuse.dina.kvl.dk>
Lines: 23
X-Mailer: Gnus v5.4.46/Emacs 19.34
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit


Hrvoje Niksic <hniksic@srce.hr> writes:

> With Per Abrahamens's blessing, I am doing some work on XEmacsifying
> cus-face.el.  I'd like someone to explain me why dumping face
> definitions is not allowed.

Because `defface', under XEmacs[1], only creates a single face, which
is used on all frames.  It uses the attributes of the selected frame
at the time `defface' is evaluated to determine what the face should
look like.  The `currently selected frame' during dump is unlikely to
bear much resemblance to the frames used in the finished XEmacs.

If you instead create specifiers for the face that works on all frame
types, you can probably dump the face safely.  This will also make
faces declared with `defface' work right when you use different types
of frames in the same XEmacs session.  All in all, a big win.

Footnotes: 
[1]  In Emacs, it creates frame local faces for all frames that are
different from the frame used to initialize the global face.  I
couldn't make this work on XEmacs.  You can remove this code from the
XEmacs version if you decide to use specifiers.

