weiner@novavax.UUCP (Bob Weiner) (11/14/88)
I have seen quite a number of postings to this group that show that user's believe that any operation they perform in their GNU Emacs personal init files, e.g. .emacs, should override any system wide settings. I believe most people would want this behavior. I can only speak from my use of version 18.49, but the emacs startup code does not operate this way. Look in <GNUEMACS_DIR>/lisp/startup.el and I believe you will find that 'site-init' or 'site-load' is loaded AFTER your .emacs init file. This may account for the fact that your init file works only if you execute it manually after starting emacs. I changed the source myself, but if this is still the same in version 18.52 someone should send a message to the wonderful people at the Free Software Foundation to report it as a bug or at least an 'extremely non-intuitive feature.' I think the mailing list is gnu.bugs. -- Bob Weiner, Motorola, Inc., USENET: ...!gatech!uflorida!novavax!weiner (407) 738-2087
jr@bbn.com (John Robinson) (11/15/88)
In article <812@novavax.UUCP>, weiner@novavax (Bob Weiner) writes: >... >I can only speak from my use of version 18.49, but the emacs startup >code does not operate this way. Look in ><GNUEMACS_DIR>/lisp/startup.el and I believe you will find that >'site-init' or 'site-load' is loaded AFTER your .emacs init file. >... >I changed the source myself, but if this is still the same in version 18.52 >someone should send a message to the wonderful people at the Free Software Well, this isn't true for version 18.52, and I seriously doubt that it was in 18.49. I did read startup.el, and checked the Changelog back to well before 18.49. It does load one file after the user's .emacs, namely emacs/lisp/default. No such file comes with the distribution, so there is no system-wide default loaded after the user's .emacs. However, the terminal-specific inits DO happen after .emacs, and there is a hook (term-setup-hook) where you can hang code that wants to run after the terminal type is set. site-init and site-load are loaded by loadup.el, which should have already been run when you built your dumped emacs (i.e., their results are in the pure lisp code). If your system can't dump, I still believe that startup.el must run after loadup.el, hence after site-*.el. -- /jr jr@bbn.com or bbn!jr
jbw@bucsb.UUCP (Joe Wells) (11/15/88)
In article <812@novavax.UUCP> weiner@novavax.UUCP (Bob Weiner) writes: >... Look in ><GNUEMACS_DIR>/lisp/startup.el and I believe you will find that >'site-init' or 'site-load' is loaded AFTER your .emacs init file. >This may account for the fact that your init file works only if you >execute it manually after starting emacs. [stuff deleted] >-- >Bob Weiner, Motorola, Inc., USENET: ...!gatech!uflorida!novavax!weiner >(407) 738-2087 The code in lisp/startup.el does these things in this order: 1) Loads user's ~/.emacs file. 2) Loads system-wide lisp/default.el file. 3) Loads terminal-setup lisp/term/*.el file. 4) Processes most command-line arguments. 5) Runs term-setup-hook. 6) Runs window-setup-hook. Anyone who needs something executed after the code in lisp/default.el can put it on term-setup-hook or window-setup-hook. lisp/site-init.el and lisp/site-load.el are loaded from lisp/loadup.el which is normally loaded before Emacs is dumped, on machines that support unexec. -- Joe Wells INTERNET: jbw%bucsf.bu.edu@bu-it.bu.edu UUCP: ...!harvard!bu-cs!bucsf!jbw