From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: [jeff.dwork@amd.com: Re: customize] Date: Mon, 16 Sep 2002 11:16:53 -0400 Sender: emacs-devel-admin@gnu.org Message-ID: Reply-To: rms@gnu.org NNTP-Posting-Host: localhost.gmane.org X-Trace: main.gmane.org 1032189569 6745 127.0.0.1 (16 Sep 2002 15:19:29 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 16 Sep 2002 15:19:29 +0000 (UTC) Cc: emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 17qxep-0001kX-00 for ; Mon, 16 Sep 2002 17:19:27 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17qyID-0003iM-00 for ; Mon, 16 Sep 2002 18:00:09 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 17qxf3-0002lA-00; Mon, 16 Sep 2002 11:19:41 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 17qxcP-0002Zn-00 for emacs-devel@gnu.org; Mon, 16 Sep 2002 11:16:57 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 17qxcM-0002Z5-00 for emacs-devel@gnu.org; Mon, 16 Sep 2002 11:16:56 -0400 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by monty-python.gnu.org with esmtp (Exim 4.10) id 17qxcM-0002Yz-00 for emacs-devel@gnu.org; Mon, 16 Sep 2002 11:16:54 -0400 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.10) id 17qxcL-0003pv-00; Mon, 16 Sep 2002 11:16:53 -0400 Original-To: abraham@dina.kvl.dk Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:7950 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:7950 I looked at this message, and then studied custom-save-delete. It looks like the reason for this behavior is that custom-save-delete only deletes calls to custom-save-variables at top level in the file. Should we try to make it find and delete calls that are inside other constructs? To make that reliable, we would need to prevent it from deleting instances of `custom-save-variables' inside strings, or lists that have that symbol as car but are not expressions. Perhaps it should detect only calls inside a few standard constructs such as `if' and `progn'. What do you think? ------- Start of forwarded message ------- X-Server-Uuid: 02753650-11b0-11d5-bbc5-00508bf987eb From: "Jeff Dwork" Date: Fri, 2 Aug 2002 17:46:44 -0700 To: rms@gnu.org cc: eddy@opera.no, emacs-devel@gnu.org Subject: Re: customize In-Reply-To: <200207300100.g6U100I14581@aztec.santafe.edu> X-WSS-ID: 1155F87C3178096-01-01 Here is an example of my problem with customize writing to .emacs file. I use 19.34 and I'm transitioning to 21. Many things I do in my version 19 .emacs are done differently in version 21, so I don't want 21 to see my 19 stuff and my 19 stuff may not understand my version 21 stuff. So I tested the version in .emacs. This is: GNU Emacs 21.1.1 (i686-pc-linux-gnu, X toolkit) of 2002-02-19 on go002 All invocations are: emacs --no-site-file I start with this in .emacs: ******************************************** (if (< emacs-major-version 21) (progn ; here we set load-path for emacs 19 ; this is just a dummy for test (setq jrd-init-var "19") (setq jrd-init-var2 "xx") ) ; here we set load-path for emacs 21 and later ; this is just a dummy for test (setq jrd-init-var "21") (setq jrd-init-var2 "yy") ) ******************************************** I start emacs 21, customize a variable and save it for the future. I now have this: ******************************************** (if (< emacs-major-version 21) (progn ; here we set load-path for emacs 19 ; this is just a dummy for test (setq jrd-init-var "19") (setq jrd-init-var2 "xx") ) ; here we set load-path for emacs 21 and later ; this is just a dummy for test (setq jrd-init-var "21") (setq jrd-init-var2 "yy") ) (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(confirm-kill-emacs (quote y-or-n-p))) (custom-set-faces ;; custom-set-faces was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. ) ******************************************** But this won't work because the custom-set-variables is outside the if. I could write some code to make emacs 19 ignore this function, but I don't want to. So I move custom-set-* inside the if. ******************************************** (if (< emacs-major-version 21) (progn ; here we set load-path for emacs 19 ; this is just a dummy for test (setq jrd-init-var "19") (setq jrd-init-var2 "xx") ) ; here we set load-path for emacs 21 and later ; this is just a dummy for test (setq jrd-init-var "21") ; move custom stuff so only emacs 21 sees it (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(confirm-kill-emacs (quote y-or-n-p))) (custom-set-faces ;; custom-set-faces was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. ) (setq jrd-init-var2 "yy") ) ******************************************** I run emacs 21 again and customize another variable and I get this: ******************************************** (if (< emacs-major-version 21) (progn ; here we set load-path for emacs 19 ; this is just a dummy for test (setq jrd-init-var "19") (setq jrd-init-var2 "xx") ) ; here we set load-path for emacs 21 and later ; this is just a dummy for test (setq jrd-init-var "21") ; move custom stuff so only emacs 21 sees it (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(confirm-kill-emacs (quote y-or-n-p))) (custom-set-faces ;; custom-set-faces was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. ) (setq jrd-init-var2 "yy") ) (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(confirm-kill-emacs (quote y-or-n-p)) '(partial-completion-mode t nil (complete))) (custom-set-faces ;; custom-set-faces was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. ) ******************************************** Now we have two instances of custom-set-variables, which is not good. ... - -- Jeff Dwork | jeff.dwork@amd.com Advanced Micro Devices, M/S 45 | 408-749-5216 (voice) 408-774-8448 (fax) PO Box 3453 |---------------------------------------- Sunnyvale, Ca 94088-3453 | ------- End of forwarded message -------