From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.devel Subject: RE: always put Customizations in `custom-file', never in `user-init-file' Date: Mon, 10 Dec 2007 14:08:23 -0800 Message-ID: References: <873auadz8l.fsf@uwakimon.sk.tsukuba.ac.jp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1197324570 25812 80.91.229.12 (10 Dec 2007 22:09:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 10 Dec 2007 22:09:30 +0000 (UTC) Cc: Emacs-Devel To: "Stephen J. Turnbull" , "Lennart Borgman \(gmail\)" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Dec 10 23:09:39 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1J1qoe-0008QM-OE for ged-emacs-devel@m.gmane.org; Mon, 10 Dec 2007 23:09:33 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J1qoN-0001Sg-6V for ged-emacs-devel@m.gmane.org; Mon, 10 Dec 2007 17:09:15 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1J1qnt-00013O-Bt for emacs-devel@gnu.org; Mon, 10 Dec 2007 17:08:45 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1J1qnr-00011j-Ca for emacs-devel@gnu.org; Mon, 10 Dec 2007 17:08:44 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J1qnr-00011Y-96 for emacs-devel@gnu.org; Mon, 10 Dec 2007 17:08:43 -0500 Original-Received: from rgminet01.oracle.com ([148.87.113.118]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1J1qnr-0004ZY-GE for emacs-devel@gnu.org; Mon, 10 Dec 2007 17:08:43 -0500 Original-Received: from agmgw1.us.oracle.com (agmgw1.us.oracle.com [152.68.180.212]) by rgminet01.oracle.com (Switch-3.2.4/Switch-3.1.6) with ESMTP id lBAM8aCk005058; Mon, 10 Dec 2007 15:08:36 -0700 Original-Received: from acsmt350.oracle.com (acsmt350.oracle.com [141.146.40.150]) by agmgw1.us.oracle.com (Switch-3.2.0/Switch-3.2.0) with ESMTP id lB9MErgV018932; Mon, 10 Dec 2007 15:08:35 -0700 Original-Received: from dhcp-4op11-4op12-west-130-35-178-158.us.oracle.com by acsmt350.oracle.com with ESMTP id 3427745891197324500; Mon, 10 Dec 2007 14:08:20 -0800 X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) In-Reply-To: <873auadz8l.fsf@uwakimon.sk.tsukuba.ac.jp> Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 X-Brightmail-Tracker: AAAAAQAAAAI= X-Brightmail-Tracker: AAAAAQAAAAI= X-Whitelist: TRUE X-Whitelist: TRUE X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 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 Xref: news.gmane.org gmane.emacs.devel:84985 Archived-At: > Be very careful. In particular, the natural idea of migrating by > loading the init file and using Custom to save its internal state to a > custom-file caused no end of pain to users when it was implemented in > XEmacs. If there is any error in the init file, you can lose all > customizations. Why? And in what circumstance? Do you mean an error that pre-exists in the init file or one that is introduced during migration? If the former, then why would anything be different after the migration? If there is not already an error in the init file, then I guess you mean that an error is introduced by substituting (load-file custom-file) for the custom-set-* sexps in the init file. What kinds of errors were there? There could be a disk write error, for instance, but I'm curious what kinds of errors you are speaking of. A copy should be made of the original init file, of course, so that in case of error on next startup, the user can recuperate. Another possibility would be to copy the Customization code from `user-init-file' to `custom-file' and then comment-out that code in `user-init-file' (instead of removing it altogether). > > Great. And I guess custom-file should be run after .emacs, since that > > makes it possible to chose another custom-file. I am against that - see my separate response to Lennart. > Experience in XEmacs showed that users often want to use information > in the custom-file in their init files. There were issues (maybe > XEmacs-specific) with initial values for faces, too. After the init > file was run was too late. It's easy enough to load the custom-file > late for those users for whom that matters: don't use the default > name. Something like > > (defvar custom-file "custom.el") > (defvar default-custom-file-loaded-p nil) > (progn > (do-emacs-early-initializations) > (when (file-readable-p custom-file) > (load custom-file)) > (load user-init-file) > (when (and (not default-custom-file-loaded-p) > (file-readable-p custom-file)) > (load custom-file))) Where is such code? I assume it's not in `user-init-file', since this code loads `user-init-file'. In any case, IIUYC, users should be able to do whatever they like in the new situation also, because it would only load `custom-file' upon explicit request, never automatically. Users need to be able to control when Customizations get loaded. I, for example, load `custom-file' last, at the end of my .emacs. Others load it first. Still others load it somewhere in the middle. There should be no automatic loading of `custom-file'.