From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: floyd@barrow.com (Floyd L. Davidson) Newsgroups: gmane.emacs.help Subject: Re: customize messing up .emacs symlink? Date: Tue, 02 Mar 2004 07:24:34 -0900 Organization: __________ Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: <87hdx76wu5.fld@barrow.com> References: <873c8sdn3g.fsf@cs.uga.edu> <87u117cmlo.fsf@cs.uga.edu> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1078271494 16002 80.91.224.253 (2 Mar 2004 23:51:34 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 2 Mar 2004 23:51:34 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Mar 03 00:51:27 2004 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AyJfb-00086v-00 for ; Wed, 03 Mar 2004 00:51:27 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1AyJeI-0004lZ-LA for geh-help-gnu-emacs@m.gmane.org; Tue, 02 Mar 2004 18:50:06 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!logbridge.uoregon.edu!pln-e!spln!dex!extra.newsguy.com!newsp.newsguy.com!enews2 Original-Newsgroups: gnu.emacs.help Original-Lines: 109 Original-NNTP-Posting-Host: p-636.newsdawg.com User-Agent: gnus 5.10.6/XEmacs 21.4.15/Linux 2.6.0 Cancel-Lock: sha1:1IaL+mU7oemYgs+BJPxRjNLJ+lk= Original-Xref: shelby.stanford.edu gnu.emacs.help:121435 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:17391 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:17391 Ed L Cashin wrote: >"D. D. Brierton" writes: >> On Mon, 01 Mar 2004 21:00:51 -0500, Ed L Cashin wrote: >> >>> Hi. I have a .emacs file under version control and symlinked into my >>> home directory. Every once in a while, emacs replaces my symlink and >>> creates a regular file. >>> >>> Just now I sent some usenet news and saw a message flash by: >>> >>> Wrote /home/ecashin/.emacs >>> Sending news via news.gmane.org using nntp... >>> Opening nnimap server on 127.0.0.1... >>> >>> The difference between the old .emacs and the impostor is shown >>> below. It leads me to suspect that the customize code of the two >>> emacs versions I use are competing. >> >> Put your (two) customizations in (two) separate filesto .emacs. I don't >> know which two versions of emacs you use. > >They are (with formatting addeded) ... > > GNU Emacs 21.2.1 > (i386-debian-linux-gnu, X toolkit, Xaw3d scroll bars) > of 2002-\03-22 on raven, modified by Debian > >and > > GNU Emacs 21.2.1 > (i386-debian-linux-gnu, X toolkit, Xaw3d scroll bars) > of 2002-03-22 on raven, modified by Debian Apparently (unless that is an editing error) the two are the same. It appears there is more to this... as in, you are talking about two separate machines (but not really two versions of Emacs) that might be (?) sharing a filesystem which is network mounted for /home ? Or else the ~/.emacs is symlinked to a network mounted file system? >Maybe it's some add-on that is on one machine and not the other. I >ought to do a little more digging and create a bug report. > >To me it seems wrong for the default behavior of customize to be like >this, replacing a symlinked .emacs file with a modified regular file. >Does anyone know if this feature has been discussed to death already, >or would it be good to submit a bug report? > >> But assuming its Xemacs vs. >> Emacs, put at the end of your .emacs something like (excuse my probably >> crappy and very-unlisp-like lisp): >> >> (if (string-match "XEmacs" emacs-version) >> (load "~/.xemacs.customize.el") >> (load "~/.emacs.customize.el")) That can also be based on finer parts of the version than just the base name too. However, it appears that what you need is something based on the host your process is running on. (if (string-match "foo.a" (system-name)) (load "~/.fooa.custom.el") (if (string-match "foo.b" (system-name)) (load "~/.foob.custom.el") (if (string-match "foo.c" (system-name)) (load "~/.fooc.custom.el") (if (string-match "foo.d" (system-name)) (load "~/.food.custom.el") ;; otherwise, this is the default (load "~/.fooe.custom.el"))))) Obviously that can be extended or trimmed to match however large your network happens to be. It can also be based on virtually any environment or shell variable you might wish to use, even one you locally define. (if (string-match "foo.a" (getenv "HOSTNAME"))) (load "~/.fooa.custom.el") ... is essentially the same as using (system-name), and you could use (getenv "USER") or whatever is needed. Note that (string-match) is looking for a substring, and is not concerned with the entire string, so searching for "foo" will return true in both "foo.com" and "foo.bar.com". But the pattern is a regular expression, so you could search for "^bar.com$" and it would not return true for "foo.bar.com". >Looks like a good solution for me. > >> Each separate customize file will need to have a customization for >> custom-file in 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. >> [...] >> '(custom-file "") >> [...] > >I think it's mildly offensive that the comment says "don't edit this". Hmmm... maybe that's what is causing ..., nah, couldn't be, right? :-) -- Floyd L. Davidson Ukpeagvik (Barrow, Alaska) floyd@barrow.com