X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/4821e2af02e05e24dd06989e389e8ed6d5b2e934..d1b985ec39dc2a7e04b376b41bc717ee95244522:/lisp/startup.el diff --git a/lisp/startup.el b/lisp/startup.el index 2571f14abd..da88df9e8e 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1,10 +1,10 @@ ;;; startup.el --- process Emacs shell arguments -;; Maintainer: FSF -;; Last-Modified: 09 Jul 1992 - ;; Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc. +;; Maintainer: FSF +;; Keywords: internal + ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify @@ -86,9 +86,9 @@ The frame system uses this to open frames to display messages while Emacs loads the user's initialization file.") (defvar after-init-hook nil - "Functions to call after loading the init file (~/.emacs). + "Functions to call after loading the init file (`~/.emacs'). The call is not protected by a condition-case, so you can set `debug-on-error' -in .emacs, and put all the actual code on `after-init-hook'.") +in `.emacs', and put all the actual code on `after-init-hook'.") (defvar term-setup-hook nil "Functions to be called after loading terminal-specific lisp code. @@ -126,18 +126,21 @@ directory name of the directory where the `.emacs' file was looked for.") (if command-line-processed (message "Back to top level.") (setq command-line-processed t) - ;; In presence of symlinks, switch to cleaner form of default directory. (if (not (eq system-type 'vax-vms)) - (mapcar (function - (lambda (var) - (let ((value (getenv var))) - (if (and value - (< (length value) (length default-directory)) - (equal (file-attributes default-directory) - (file-attributes value))) - (setq default-directory - (file-name-as-directory value)))))) - '("PWD" "HOME"))) + (progn + ;; If the PWD environment variable isn't accurate, delete it. + (let ((pwd (getenv "PWD"))) + (and (stringp pwd) + ;; Use FOO/., so that if FOO is a symlink, file-attributes + ;; describes the directory linked to, not FOO itself. + (or (equal (file-attributes + (concat (file-name-as-directory pwd) ".")) + (file-attributes + (concat (file-name-as-directory default-directory) + "."))) + (setq process-environment + (delete (concat "PWD=" pwd) + process-environment))))))) (setq default-directory (abbreviate-file-name default-directory)) (unwind-protect (command-line) @@ -148,7 +151,7 @@ directory name of the directory where the `.emacs' file was looked for.") (run-hooks 'window-setup-hook))))) (defun command-line () - ;; See if we should import version-control from the envionment variable. + ;; See if we should import version-control from the environment variable. (let ((vc (getenv "VERSION_CONTROL"))) (cond ((eq vc nil)) ;don't do anything if not set ((or (string= vc "t") @@ -211,6 +214,11 @@ directory name of the directory where the `.emacs' file was looked for.") (run-hooks 'before-init-hook) + ;; Run the site-start library if it exists. The point of this file is + ;; that it is run before .emacs. There is no point in doing this after + ;; .emacs; that is useless. + (load "site-start" t t) + ;; Load that user's init file, or the default one, or none. (let ((debug-on-error init-file-debug) ;; This function actually reads the init files. @@ -286,7 +294,7 @@ directory name of the directory where the `.emacs' file was looked for.") (progn (insert (emacs-version) " -Copyright (C) 1991 Free Software Foundation, Inc.\n\n") +Copyright (C) 1993 Free Software Foundation, Inc.\n\n") ;; If keys have their default meanings, ;; use precomputed string to save lots of time. (if (and (eq (key-binding "\C-h") 'help-command) @@ -300,6 +308,7 @@ Copyright (C) 1991 Free Software Foundation, Inc.\n\n") "Type C-h for help; C-x u to undo changes. (`C-' means use CTRL key.) To kill the Emacs job, type C-x C-c. Type C-h t for a tutorial on using Emacs. +Type C-h i to enter Info, which you can use to read GNU documentation. GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for full details. You may give out copies of Emacs; type C-h C-c to see the conditions. @@ -308,6 +317,7 @@ Type C-h C-d for information on getting the latest version.") "Type \\[help-command] for help; \\[advertised-undo] to undo changes. (`C-' means use CTRL key.) To kill the Emacs job, type \\[save-buffers-kill-emacs]. Type \\[help-with-tutorial] for a tutorial on using Emacs. +Type \\[info] to enter Info, which you can use to read GNU documentation. GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for full details. You may give out copies of Emacs; type \\[describe-copying] to see the conditions.