X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/d7b4d18fd42a5f4cd81a2340bdcbbb3a15576857..bd9b2b20ef76bf76087f73c1b7977c908d920829:/lisp/paths.el diff --git a/lisp/paths.el b/lisp/paths.el index 39cd93801b..f0d5a8d5cd 100644 --- a/lisp/paths.el +++ b/lisp/paths.el @@ -1,11 +1,10 @@ -;;; paths.el --- define pathnames for use by various Emacs commands. +;;; paths.el --- define pathnames for use by various Emacs commands -*- no-byte-compile: t -*- + +;; Copyright (C) 1986, 1988, 1994, 1999, 2000 Free Software Foundation, Inc. ;; Maintainer: FSF -;; Last-Modified: 05 Dec 1991 ;; Keywords: internal -;; Copyright (C) 1986, 1988 Free Software Foundation, Inc. - ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify @@ -19,8 +18,9 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to -;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. ;;; Commentary: @@ -32,146 +32,171 @@ ;;; Code: -(defvar Info-default-directory-list - (list "/usr/local/lib/info/" - (expand-file-name "../info/" data-directory)) - "List of directories to search for Info documentation files.") +;; Docstrings in this file should, where reasonable, follow the +;; conventions described in bindings.el, so that they get put in the +;; DOC file rather than in memory. + +(defun prune-directory-list (dirs &optional keep reject) + "Returns a copy of DIRS with all non-existant directories removed. +The optional argument KEEP is a list of directories to retain even if +they don't exist, and REJECT is a list of directories to remove from +DIRS, even if they exist; REJECT takes precedence over KEEP. + +Note that membership in REJECT and KEEP is checked using simple string +comparision." + (apply #'nconc + (mapcar (lambda (dir) + (and (not (member dir reject)) + (or (member dir keep) (file-directory-p dir)) + (list dir))) + dirs))) -(defvar news-path "/usr/spool/news/" +(defvar Info-default-directory-list + (let* ((config-dir + (file-name-as-directory configure-info-directory)) + (config + (list config-dir)) + (unpruned-prefixes + ;; Directory trees that may not exist at installation time, and + ;; so shouldn't be pruned based on existance. + '("/usr/local/")) + (prefixes + ;; Directory trees in which to look for info subdirectories + (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/") + unpruned-prefixes)) + (suffixes + ;; Subdirectories in each directory tree that may contain info + ;; directories. + '("" "share/" "gnu/" "gnu/lib/" "gnu/lib/emacs/" + "emacs/" "lib/" "lib/emacs/")) + (standard-info-dirs + (apply #'nconc + (mapcar (lambda (pfx) + (let ((dirs + (mapcar (lambda (sfx) + (concat pfx sfx "info/")) + suffixes))) + (if (member pfx unpruned-prefixes) + dirs + (prune-directory-list dirs config)))) + prefixes)))) + ;; If $(prefix)/info is not one of the standard info directories, + ;; they are probably installing an experimental version of Emacs, + ;; so make sure that experimental version's Info files override + ;; the ones in standard directories. + (if (member config-dir standard-info-dirs) + (nconc standard-info-dirs config) + (cons config-dir standard-info-dirs))) + "Default list of directories to search for Info documentation files. +They are searched in the order they are given in the list. +Therefore, the directory of Info files that come with Emacs +normally should come last (so that local files override standard ones), +unless Emacs is installed into a non-standard directory. In the latter +case, the directory of Info files that come with Emacs should be +first in this list. + +Once Info is started, the list of directories to search +comes from the variable `Info-directory-list'. +This variable `Info-default-directory-list' is used as the default +for initializing `Info-directory-list' when Info is started, unless +the environment variable INFOPATH is set.") + +(defvar news-path + (if (file-exists-p "/usr/spool/news/") + "/usr/spool/news/" + "/var/spool/news/") "The root directory below which all news files are stored.") (defvar news-inews-program (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews") ((file-exists-p "/usr/local/inews") "/usr/local/inews") ((file-exists-p "/usr/local/bin/inews") "/usr/local/bin/inews") + ((file-exists-p "/usr/contrib/lib/news/inews") "/usr/contrib/lib/news/inews") ((file-exists-p "/usr/lib/news/inews") "/usr/lib/news/inews") (t "inews")) "Program to post news.") -(defvar gnus-default-nntp-server "" - ;; set this to your local server - "The name of the host running an NNTP server. -If it is a string such as \":DIRECTORY\", then ~/DIRECTORY -is used as a news spool. `gnus-nntp-server' is initialised from NNTPSERVER -environment variable or, if none, this value.") +;; set this to your local server +(defvar gnus-default-nntp-server "" "\ +The name of the host running an NNTP server. +The null string means use the local host as the server site.") (defvar gnus-nntp-service "nntp" "NNTP service name, usually \"nntp\" or 119). Go to a local news spool if its value is nil, in which case `gnus-nntp-server' should be set to `(system-name)'.") -(defvar gnus-your-domain nil - "Your domain name without your host name like: \"stars.flab.Fujitsu.CO.JP\" -The DOMAINNAME environment variable is used instead if defined. If -the function `system-name' returns a fully qualified domain name, there is no -need to define the name.") - -(defvar gnus-your-organization "" - "Your organization like: \"Fujitsu Laboratories Ltd., Kawasaki, Japan.\" +(defvar gnus-local-organization nil "\ +*The name of your organization, as a string. The `ORGANIZATION' environment variable is used instead if defined.") -(defvar mh-progs - (cond ((file-directory-p "/usr/new/mh") "/usr/new/mh/") - ((file-directory-p "/usr/local/bin/mh") "/usr/local/bin/mh/") - ((file-directory-p "/usr/local/mh/") "/usr/local/mh/") - (t "/usr/local/bin/")) - "Directory containing MH commands") - -(defvar mh-lib - (cond ((file-directory-p "/usr/new/lib/mh") "/usr/new/lib/mh/") - ((file-directory-p "/usr/local/lib/mh") "/usr/local/lib/mh/") - (t "/usr/local/bin/mh/")) - "Directory of MH library") - -(defvar rmail-file-name "~/RMAIL" - "Name of user's primary mail file.") - -(defvar gnus-startup-file "~/.newsrc" - "The file listing groups to which user is subscribed. -Will use `gnus-startup-file'-SERVER instead if exists.") +(defcustom rmail-file-name "~/RMAIL" + "*Name of user's primary mail file." + :type 'string + :group 'rmail + :version "21.1") (defconst rmail-spool-directory - (if (memq system-type '(hpux usg-unix-v unisoft-unix rtu irix)) - "/usr/mail/" - "/usr/spool/mail/") + (cond ((string-match "^[^-]+-[^-]+-sco3.2v4" system-configuration) + "/usr/spool/mail/") + ;; On The Bull DPX/2 /usr/spool/mail is used although + ;; it is usg-unix-v. + ((string-match "^m68k-bull-sysv3" system-configuration) + "/usr/spool/mail/") + ;; SVR4 and recent BSD are said to use this. + ;; Rather than trying to know precisely which systems use it, + ;; let's assume this dir is never used for anything else. + ((file-exists-p "/var/mail") + "/var/mail/") + ;; Many GNU/Linux systems use this name. + ((file-exists-p "/var/spool/mail") + "/var/spool/mail/") + ((memq system-type '(dgux hpux usg-unix-v unisoft-unix rtu irix)) + "/usr/mail/") + (t "/usr/spool/mail/")) "Name of directory used by system mailer for delivering new mail. Its name should end with a slash.") (defconst sendmail-program - (if (file-exists-p "/usr/lib/sendmail") - "/usr/lib/sendmail" - "fakemail") ;In ../etc, to interface to /bin/mail. + (cond + ((file-exists-p "/usr/sbin/sendmail") "/usr/sbin/sendmail") + ((file-exists-p "/usr/lib/sendmail") "/usr/lib/sendmail") + ((file-exists-p "/usr/ucblib/sendmail") "/usr/ucblib/sendmail") + (t "fakemail")) ;In ../etc, to interface to /bin/mail. "Program used to send messages.") -(defconst term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") - "If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\"))) +(defconst remote-shell-program + (cond + ;; Some systems use rsh for the remote shell; others use that name for the + ;; restricted shell and use remsh for the remote shell. Let's try to guess + ;; based on what we actually find out there. The restricted shell is + ;; almost certainly in /bin or /usr/bin, so it's probably safe to assume + ;; that an rsh found elsewhere is the remote shell program. The converse + ;; is not true: /usr/bin/rsh could be either one, so check that last. + ((file-exists-p "/usr/ucb/remsh") "/usr/ucb/remsh") + ((file-exists-p "/usr/bsd/remsh") "/usr/bsd/remsh") + ((file-exists-p "/bin/remsh") "/bin/remsh") + ((file-exists-p "/usr/bin/remsh") "/usr/bin/remsh") + ((file-exists-p "/usr/local/bin/remsh") "/usr/local/bin/remsh") + ((file-exists-p "/usr/ucb/rsh") "/usr/ucb/rsh") + ((file-exists-p "/usr/bsd/rsh") "/usr/bsd/rsh") + ((file-exists-p "/usr/local/bin/rsh") "/usr/local/bin/rsh") + ((file-exists-p "/usr/bin/rcmd") "/usr/bin/rcmd") + ((file-exists-p "/bin/rcmd") "/bin/rcmd") + ((file-exists-p "/bin/rsh") "/bin/rsh") + ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh") + (t "rsh")) + "File name for remote-shell program (often rsh or remsh).") + +(defconst term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\ +If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\"))) You may set this variable to nil in your `.emacs' file if you do not wish the terminal-initialization file to be loaded.") -(defconst manual-program (if (eq system-type 'berkeley-unix) - "/usr/ucb/man" "/usr/bin/man") - "Program to run to print man pages.") - -;; Note that /usr/man/cat is not really right for this on sysV; nothing is, -;; judging by the list of directories below. You can't get the dir -;; for a section by appending the section number to any one prefix. -;; But it turns out that a string that's wrong does no harm here. -(defconst manual-formatted-dir-prefix - (if (file-exists-p "/usr/man/cat.C") ;; Check for Xenix. - "/usr/man/cat." "/usr/man/cat") - "Prefix for directories containing formatted manual pages. -Append a section-number or section-name to get a directory name.") - -(defconst manual-formatted-dirlist - (cond ((eq system-type 'hpux) - '("/usr/man/cat1" "/usr/man/cat2" "/usr/man/cat3" - "/usr/man/cat4" "/usr/man/cat5" "/usr/man/cat6" - "/usr/man/cat7" "/usr/man/cat1m" "/usr/man/cat8" - "/usr/local/man/cat1" "/usr/local/man/cat2" "/usr/local/man/cat3" - "/usr/local/man/cat4" "/usr/local/man/cat5" "/usr/local/man/cat6" - "/usr/local/man/cat7" "/usr/local/man/cat1m" "/usr/local/man/cat8" - "/usr/contrib/man/cat1" "/usr/contrib/man/cat2" - "/usr/contrib/man/cat3" "/usr/contrib/man/cat4" - "/usr/contrib/man/cat5" "/usr/contrib/man/cat6" - "/usr/contrib/man/cat7" "/usr/contrib/man/cat1m" - "/usr/contrib/man/cat8")) - ((file-exists-p "/usr/man/cat.C") ; Xenix - '("/usr/man/cat.C" "/usr/man/cat.CP" "/usr/man/cat.CT" - "/usr/man/cat.DOS/" "/usr/man/cat.F" "/usr/man/cat.HW" - "/usr/man/cat.M/" "/usr/man/cat.S" "/usr/man/cat.LOCAL")) - ((file-exists-p "/usr/man/cat3/cat3") - ;; This is for UMAX. - '("/usr/man/cat1" "/usr/man/cat2" - "/usr/man/cat3" "/usr/man/cat3/cat3" - "/usr/man/cat3/cat3b" "/usr/man/cat3/cat3c" - "/usr/man/cat3/cat3f" "/usr/man/cat3/cat3m" - "/usr/man/cat3/cat3n" "/usr/man/cat3/cat3p" - "/usr/man/cat3/cat3s" "/usr/man/cat3/cat3u" - "/usr/man/cat3/cat3x" "/usr/man/cat4" - "/usr/man/cat5" "/usr/man/cat6" - "/usr/man/cat7" "/usr/man/cat8" - "/usr/man/catl" "/usr/man/catn")) - ((file-exists-p "/usr/man/cat1") - '("/usr/man/cat1" "/usr/man/cat2" "/usr/man/cat3" - "/usr/man/cat4" "/usr/man/cat5" "/usr/man/cat6" - "/usr/man/cat7" "/usr/man/cat8" "/usr/man/catl" "/usr/man/catn")) - (t - '("/usr/catman/u_man/man1" "/usr/catman/u_man/man6" - "/usr/catman/p_man/man2" "/usr/catman/p_man/man3" - "/usr/catman/p_man/man4" "/usr/catman/p_man/man5" - "/usr/catman/a_man/man1" "/usr/catman/a_man/man7" - "/usr/catman/a_man/man8" "/usr/catman/local" - "/usr/catman/a_man/man8" "/usr/catman/local/man1" - "/usr/catman/local/man2" "/usr/catman/local/man3" - "/usr/catman/local/man4" "/usr/catman/local/man5" - "/usr/catman/local/man6" "/usr/catman/local/man7" - "/usr/catman/local/man8"))) - "List of directories containing formatted manual pages.") - -(defconst abbrev-file-name +(defconst abbrev-file-name (if (eq system-type 'vax-vms) "~/abbrev.def" - "~/.abbrev_defs") + (convert-standard-filename "~/.abbrev_defs")) "*Default name of file to read abbrevs from.") ;;; paths.el ends here