From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: Documentation for custom-file - is not (load custom-file) needed? Date: Fri, 10 Dec 2004 07:54:52 +0200 Organization: JURTA Message-ID: <874qiusno3.fsf@jurta.org> References: <075b01c4d9a4$52799460$0200a8c0@sedrcw11488> <00bb01c4daee$5eb81350$0200a8c0@sedrcw11488> <200412051733.iB5HXIX13206@raven.dms.auburn.edu> <000001c4db1a$8d3770f0$0200a8c0@sedrcw11488> <200412060046.iB60kZj15003@raven.dms.auburn.edu> <003e01c4db31$e45a2550$0200a8c0@sedrcw11488> <200412060402.iB6421q15173@raven.dms.auburn.edu> <200412070539.iB75dV924747@raven.dms.auburn.edu> <200412090220.iB92KHR16407@raven.dms.auburn.edu> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1102659163 17889 80.91.229.6 (10 Dec 2004 06:12:43 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 10 Dec 2004 06:12:43 +0000 (UTC) Cc: lennart.borgman.073@student.lu.se, teirllm@dms.auburn.edu, emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Dec 10 07:12:36 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1Cce15-0000Js-00 for ; Fri, 10 Dec 2004 07:12:35 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CceAF-0002lu-B0 for ged-emacs-devel@m.gmane.org; Fri, 10 Dec 2004 01:22:03 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1Cce9l-0002g4-HB for emacs-devel@gnu.org; Fri, 10 Dec 2004 01:21:33 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1Cce9h-0002e6-5K for emacs-devel@gnu.org; Fri, 10 Dec 2004 01:21:29 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1Cce9g-0002dp-VV for emacs-devel@gnu.org; Fri, 10 Dec 2004 01:21:28 -0500 Original-Received: from [194.126.101.100] (helo=MXR-2.estpak.ee) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CcdwJ-00039s-GG; Fri, 10 Dec 2004 01:07:39 -0500 Original-Received: from mail.neti.ee (80-235-41-2-dsl.mus.estpak.ee [80.235.41.2]) by MXR-2.estpak.ee (Postfix) with ESMTP id 7366F11BF76; Fri, 10 Dec 2004 08:07:34 +0200 (EET) Original-To: rms@gnu.org User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at neti.ee 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: main.gmane.org gmane.emacs.devel:30969 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:30969 Richard Stallman writes: > If the rest of you arrive at some sort of partial agreement, I'd like > one of you who can explain the most clearly to explain them to me, and > then I will think about what to do. Even though there is no full agreement, I want to make the following points with more arguments for further discussion: 1. The type of `custom-file' should be changed from defcustom to defvar since its customization causes self-reference problems. But its existence should be preserved for backward compatibility for users who have only (setq custom-file "...") without (load "...") in .emacs and expect that it is loaded by startup.el. However, after the changes there will be no more need to set `custom-file' in .emacs. It will be possible to define the location of the customization file by loading it with (load "..."). 2. `custom-set-variables' (a function call with saved customized values in its argument which is stored in one of the user init files) will record the names of the files where it was loaded from, when it is called during loading. It will read the value of the variable `load-file-name' during its loading. 3. `Custom-save' will use a list of file names where `custom-set-variables' was loaded from. When this list has multiple elements, it will ask the user where to save `custom-set-variables'. 4. Users can move the `custom-set-variables' customization list to another init file. In this case there is a need to tell Emacs about its new location. The user has to call either (setq custom-file (buffer-file-name)), or (push (buffer-file-name) custom-files), or a special function on a new file buffer. In any case, the comments in `custom-set-variables' should contain instructions for users what to do when `custom-set-variables' is moved manually. Or maybe just allow users to do `M-C-x' on `custom-set-variables'. But this might have bad effects of overwriting the values of variables that were changed outside of customize interface. 5. All these changes should be made before the next release to be able to fix a problem in startup.el. The problem is the following: When `custom-file' (which has an absolute file name) is not literally equal to the name of the loaded customization file, e.g. in the following configuration: (setq custom-file "~/emacs/lisp/custom-21.4.el") (load "custom-21.4.el") then custom-21.4.el is loaded twice. startup.el fails to see that it is already loaded, since it expects exactly the same absolute file name in `load-history' which is not the case. Instead of that, it should check the value of a new variable which is set to `load-file-name' during loading of the file with `custom-file-loaded'. -- Juri Linkov http://www.jurta.org/emacs/