From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.devel Subject: RE: Customize buttons that change user'scustomfileshouldaskforconfirmation Date: Wed, 9 Feb 2005 13:27:06 -0800 Message-ID: References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1107985473 19304 80.91.229.2 (9 Feb 2005 21:44:33 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 9 Feb 2005 21:44:33 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Feb 09 22:44:33 2005 Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1CyzdH-0004Wz-AH for ged-emacs-devel@m.gmane.org; Wed, 09 Feb 2005 22:44:24 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Cyzrr-00016G-Dy for ged-emacs-devel@m.gmane.org; Wed, 09 Feb 2005 16:59:27 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Cyzrg-00015h-71 for emacs-devel@gnu.org; Wed, 09 Feb 2005 16:59:16 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Cyzps-0000fD-Ki for emacs-devel@gnu.org; Wed, 09 Feb 2005 16:57:27 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Cyzpo-0000WV-Ql for emacs-devel@gnu.org; Wed, 09 Feb 2005 16:57:20 -0500 Original-Received: from [148.87.122.32] (helo=rgminet03.oracle.com) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.34) id 1CyzS5-00010a-T5 for emacs-devel@gnu.org; Wed, 09 Feb 2005 16:32:50 -0500 Original-Received: from rgminet03.oracle.com (localhost [127.0.0.1]) by rgminet03.oracle.com (Switch-3.1.6/Switch-3.1.6) with ESMTP id j19LWbBp023409; Wed, 9 Feb 2005 16:32:37 -0500 Original-Received: from rgmsgw301.us.oracle.com (rgmsgw301.us.oracle.com [138.1.191.50]) by rgminet03.oracle.com (Switch-3.1.6/Switch-3.1.6) with ESMTP id j19LR9gI018897; Wed, 9 Feb 2005 16:28:55 -0500 Original-Received: from rgmsgw301.us.oracle.com (localhost [127.0.0.1]) by rgmsgw301.us.oracle.com (Switch-3.1.4/Switch-3.1.0) with ESMTP id j19LR8A9032426; Wed, 9 Feb 2005 14:27:08 -0700 Original-Received: from dradamslap (dradams-lap.us.oracle.com [130.35.177.126]) by rgmsgw301.us.oracle.com (Switch-3.1.4/Switch-3.1.0) with SMTP id j19LR764032416 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Wed, 9 Feb 2005 14:27:07 -0700 Original-To: , X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 In-Reply-To: Importance: Normal X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org X-MailScanner-To: ged-emacs-devel@m.gmane.org Xref: main.gmane.org gmane.emacs.devel:33157 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:33157 I don't understand this. Set All (F=>C) means set all current values (C) to the values shown in the edit fields (F). What does this have to do with the init file? Everything is written to the init file (or files loaded from it); that is where customization forms are evaluated. So `Set All (F=>C)' means to set in the init file those values changed by customize. I don't think so. I don't think that's what happens now, at least, for Set. "Setting" something in the init file is really (automatically editing and) _saving_ it. The term "set" refers today to setting the _current value_. Or are you suggesting that the form be evaluated in some place a user cannot see? I can understand doing that; but it makes it less likely that the person will learn to write simple forms. Customization is, after all, an automatic expression writing and evaluating function. Not only do people like to see what the Lisp expression looks like, we want to encourage them to do so! After all, that leads to hacking. See above. AFAIK, Set is not involved with custom-set* in any way; it simply does F=>C. The customize automatic expression writing action is rather like the (not very good) function that came with Calc mode more than a decade ago and since been removed. The difference is that the Calc mode automatic expression writing function wrote `defun' expressions and could handle anything you could put in a keyboard macro of the time; the Customization functions write `custom-set-*' expressions instead. Presumably, `Save All' means simply `automatically write custom-set-* values into your initialization file, write that file, and then evaluate it'. I was with you up until the last clause, "and then evaluate it". Well, when you `Save for Future Sessions' the new value takes effect right away. The expression is evaluated. At least, that is what happens now. (I just checked.) So save `all' must mean that _all_ customizations are saved and also evaluated. That means saving and evaluating your .emacs file. Perhaps the button should be reworded to `Set and Save All'. That is clearer to me; I prefer this wording. But it takes more room. The help (or `tip') on the button or function should explain that saving the init file also involves evaluating it, so the new valued become effective, that is, they become set as well as saved. Save does mean set and save, so, yes, the current value is updated to the same value that is written to your custom file. That is not the same thing as evaluating your entire .emacs file, however. I personally think that "Save" is clear enough, but you are correct that the semantics behind the button are set and save. The tooltip and doc string could make that explicit, as you suggest. Actually, the more I think about it, the more I like the rewording to `Set and Save All' even if it is longer. After all, you can set values in your initialization file without saving it; and you can save it without evaluating it. You have led to a good point. How can you save Customize settings without also setting their current values (today)? And, again, changing a value in your init file is not what is meant currently by "set"; "set" refers to setting the current values.