From xemacs-m  Tue Sep 23 15:59:22 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 PAA23505
	for <xemacs-beta@xemacs.org>; Tue, 23 Sep 1997 15:59:20 -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 WAA29994; Tue, 23 Sep 1997 22:53:21 +0200
Received: (abraham@localhost) by zuse.dina.kvl.dk (8.6.12/8.6.4) id WAA07291; Tue, 23 Sep 1997 22:59:19 +0200
To: xemacs-beta@xemacs.org, emacs-custom@sunsite.auc.dk
Subject: Re: undo in customize?
References: <E0xDUDS-0000lT-00@neal.ctd.comsat.com>
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: 23 Sep 1997 22:59:19 +0200
In-Reply-To: Neal Becker's message of "Tue, 23 Sep 1997 08:37:22 -0400"
Message-ID: <rjoh5jiw60.fsf@zuse.dina.kvl.dk>
Lines: 31
X-Mailer: Gnus v5.4.64/Emacs 19.34
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit


[ CC'ed to emacs-custom from xemacs-beta. ]

Neal Becker <neal@ctd.comsat.com> writes:

> I did customize-variable nnmail-split-methods.  After setting it and
> saving, I accidentally switched back to this buffer and types a
> character, which changed one of the fields (Regexp).  Then I tried to
> undo the change, but I can't.  "No further undo information".

Undo in customize buffers is very limited.  You can't undo any changes
made since a widget last changed state.  Since the first edit makes a
widget change state (from e.g. `set' to `modified'), that can't be
undone.

RMS changed the code to change the state of the widget *before*
changing the actual text in the buffer.  You get this behaviour by
setting `widget-field-use-before-change' to non-nil.  However, for
some reason this doesn't work on XEmacs.  It also doesn't work on
Emacs 19.34 and earlier, because of some bug in Emacs.  It might be
the same bug, I don't know.  RMS fixed the bug in Emacs 20.1.

If anyone wants to work on this, I can try to find and forward my
correspondence with RMS to him.

More generally, one of the features I never got implemented was full
undo for widget operation.  I planned to use gnus-undo.el for this
(and to ask Lars to give it a more generic name).

For the custom buffer this isn't too bad, because you have a fairly
complete set of reset operations.

