Update years in copyright notice; nfc.
[bpt/emacs.git] / lisp / paths.el
CommitLineData
0a10297a 1;;; paths.el --- define pathnames for use by various Emacs commands -*- no-byte-compile: t -*-
6594deb0 2
0d30b337 3;; Copyright (C) 1986, 1988, 1994, 1999, 2000, 2002, 2003,
aaef169d 4;; 2004, 2005, 2006 Free Software Foundation, Inc.
3a801d0c 5
e5167999 6;; Maintainer: FSF
d7b4d18f 7;; Keywords: internal
e5167999 8
a0824fec 9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software; you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
e5167999 13;; the Free Software Foundation; either version 2, or (at your option)
a0824fec 14;; any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
b578f267 22;; along with GNU Emacs; see the file COPYING. If not, write to the
086add15
LK
23;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
24;; Boston, MA 02110-1301, USA.
a0824fec 25
e5167999 26;;; Commentary:
a0824fec 27
28;; These are default settings for names of certain files and directories
29;; that Emacs needs to refer to from time to time.
30
31;; If these settings are not right, override them with `setq'
32;; in site-init.el. Do not change this file.
33
e5167999
ER
34;;; Code:
35
e884c260
DL
36;; Docstrings in this file should, where reasonable, follow the
37;; conventions described in bindings.el, so that they get put in the
38;; DOC file rather than in memory.
39
97ad35dd 40(defun prune-directory-list (dirs &optional keep reject)
0d5f6046 41 "Returns a copy of DIRS with all non-existent directories removed.
97ad35dd
MB
42The optional argument KEEP is a list of directories to retain even if
43they don't exist, and REJECT is a list of directories to remove from
44DIRS, even if they exist; REJECT takes precedence over KEEP.
45
46Note that membership in REJECT and KEEP is checked using simple string
0d5f6046 47comparison."
97ad35dd
MB
48 (apply #'nconc
49 (mapcar (lambda (dir)
50 (and (not (member dir reject))
51 (or (member dir keep) (file-directory-p dir))
52 (list dir)))
53 dirs)))
54
a755d8e5 55(defvar Info-default-directory-list
e103ef95
EZ
56 (let* ((config-dir
57 (file-name-as-directory configure-info-directory))
58 (config
59 (list config-dir))
97ad35dd
MB
60 (unpruned-prefixes
61 ;; Directory trees that may not exist at installation time, and
62 ;; so shouldn't be pruned based on existance.
63 '("/usr/local/"))
64 (prefixes
65 ;; Directory trees in which to look for info subdirectories
66 (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/")
67 unpruned-prefixes))
68 (suffixes
69 ;; Subdirectories in each directory tree that may contain info
70 ;; directories.
71 '("" "share/" "gnu/" "gnu/lib/" "gnu/lib/emacs/"
e103ef95
EZ
72 "emacs/" "lib/" "lib/emacs/"))
73 (standard-info-dirs
74 (apply #'nconc
75 (mapcar (lambda (pfx)
76 (let ((dirs
77 (mapcar (lambda (sfx)
78 (concat pfx sfx "info/"))
79 suffixes)))
80 (if (member pfx unpruned-prefixes)
81 dirs
82 (prune-directory-list dirs config))))
83 prefixes))))
84 ;; If $(prefix)/info is not one of the standard info directories,
85 ;; they are probably installing an experimental version of Emacs,
86 ;; so make sure that experimental version's Info files override
87 ;; the ones in standard directories.
88 (if (member config-dir standard-info-dirs)
b6348438 89 (nconc standard-info-dirs config)
e103ef95 90 (cons config-dir standard-info-dirs)))
d4ecdb6b
RS
91 "Default list of directories to search for Info documentation files.
92They are searched in the order they are given in the list.
feea21d1 93Therefore, the directory of Info files that come with Emacs
e103ef95
EZ
94normally should come last (so that local files override standard ones),
95unless Emacs is installed into a non-standard directory. In the latter
96case, the directory of Info files that come with Emacs should be
97first in this list.
d4ecdb6b
RS
98
99Once Info is started, the list of directories to search
100comes from the variable `Info-directory-list'.
101This variable `Info-default-directory-list' is used as the default
395f3b7f
GM
102for initializing `Info-directory-list' when Info is started, unless
103the environment variable INFOPATH is set.")
a0824fec 104
d6fcf407 105(defvar news-directory
7cf202bd
KH
106 (if (file-exists-p "/usr/spool/news/")
107 "/usr/spool/news/"
108 "/var/spool/news/")
a0824fec 109 "The root directory below which all news files are stored.")
b18ba80e 110(defvaralias 'news-path 'news-directory)
a0824fec 111
112(defvar news-inews-program
113 (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews")
114 ((file-exists-p "/usr/local/inews") "/usr/local/inews")
115 ((file-exists-p "/usr/local/bin/inews") "/usr/local/bin/inews")
c40c2f9d 116 ((file-exists-p "/usr/contrib/lib/news/inews") "/usr/contrib/lib/news/inews")
a0824fec 117 ((file-exists-p "/usr/lib/news/inews") "/usr/lib/news/inews")
118 (t "inews"))
119 "Program to post news.")
120
e884c260
DL
121;; set this to your local server
122(defvar gnus-default-nntp-server "" "\
123The name of the host running an NNTP server.
d390e294 124The null string means use the local host as the server site.")
a0824fec 125
126(defvar gnus-nntp-service "nntp"
127 "NNTP service name, usually \"nntp\" or 119).
527a0f36 128Go to a local news spool if its value is nil, in which case `gnus-nntp-server'
129should be set to `(system-name)'.")
a0824fec 130
e884c260
DL
131(defvar gnus-local-organization nil "\
132*The name of your organization, as a string.
a0824fec 133The `ORGANIZATION' environment variable is used instead if defined.")
134
e306edef
GM
135(defcustom rmail-file-name "~/RMAIL"
136 "*Name of user's primary mail file."
137 :type 'string
138 :group 'rmail
139 :version "21.1")
5833af3a 140
d6fcf407 141(defvar rmail-spool-directory
d9fc020b
RS
142 (cond ((string-match "^[^-]+-[^-]+-sco3.2v4" system-configuration)
143 "/usr/spool/mail/")
f1180544 144 ;; On The Bull DPX/2 /usr/spool/mail is used although
b6c96aa0
RS
145 ;; it is usg-unix-v.
146 ((string-match "^m68k-bull-sysv3" system-configuration)
147 "/usr/spool/mail/")
7a41a2e2
RS
148 ;; SVR4 and recent BSD are said to use this.
149 ;; Rather than trying to know precisely which systems use it,
150 ;; let's assume this dir is never used for anything else.
151 ((file-exists-p "/var/mail")
fa8fb184 152 "/var/mail/")
7cf202bd
KH
153 ;; Many GNU/Linux systems use this name.
154 ((file-exists-p "/var/spool/mail")
c7de13da 155 "/var/spool/mail/")
d9fc020b 156 ((memq system-type '(dgux hpux usg-unix-v unisoft-unix rtu irix))
1eff7356 157 "/usr/mail/")
1eff7356 158 (t "/usr/spool/mail/"))
a0824fec 159 "Name of directory used by system mailer for delivering new mail.
160Its name should end with a slash.")
161
d6fcf407 162(defcustom sendmail-program
9c85ef9f 163 (cond
9c85ef9f 164 ((file-exists-p "/usr/sbin/sendmail") "/usr/sbin/sendmail")
1e0fea28 165 ((file-exists-p "/usr/lib/sendmail") "/usr/lib/sendmail")
9c85ef9f
RS
166 ((file-exists-p "/usr/ucblib/sendmail") "/usr/ucblib/sendmail")
167 (t "fakemail")) ;In ../etc, to interface to /bin/mail.
d6fcf407
RS
168 "Program used to send messages."
169 :group 'mail
170 :type 'file)
a0824fec 171
d6fcf407 172(defcustom remote-shell-program
93a18127
KH
173 (cond
174 ;; Some systems use rsh for the remote shell; others use that name for the
175 ;; restricted shell and use remsh for the remote shell. Let's try to guess
176 ;; based on what we actually find out there. The restricted shell is
177 ;; almost certainly in /bin or /usr/bin, so it's probably safe to assume
66263a7d
KH
178 ;; that an rsh found elsewhere is the remote shell program. The converse
179 ;; is not true: /usr/bin/rsh could be either one, so check that last.
93a18127 180 ((file-exists-p "/usr/ucb/remsh") "/usr/ucb/remsh")
66263a7d 181 ((file-exists-p "/usr/bsd/remsh") "/usr/bsd/remsh")
93a18127 182 ((file-exists-p "/bin/remsh") "/bin/remsh")
9ade6d5e 183 ((file-exists-p "/usr/bin/remsh") "/usr/bin/remsh")
66263a7d
KH
184 ((file-exists-p "/usr/local/bin/remsh") "/usr/local/bin/remsh")
185 ((file-exists-p "/usr/ucb/rsh") "/usr/ucb/rsh")
186 ((file-exists-p "/usr/bsd/rsh") "/usr/bsd/rsh")
93a18127 187 ((file-exists-p "/usr/local/bin/rsh") "/usr/local/bin/rsh")
fa195bce
KH
188 ((file-exists-p "/usr/bin/rcmd") "/usr/bin/rcmd")
189 ((file-exists-p "/bin/rcmd") "/bin/rcmd")
66263a7d
KH
190 ((file-exists-p "/bin/rsh") "/bin/rsh")
191 ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh")
a608ec1b 192 (t "rsh"))
d6fcf407
RS
193 "File name for remote-shell program (often rsh or remsh)."
194 :group 'environment
195 :type 'file)
93a18127 196
d6fcf407 197(defvar term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\
e884c260 198If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\")))
a0824fec 199You may set this variable to nil in your `.emacs' file if you do not wish
200the terminal-initialization file to be loaded.")
201
d6fcf407 202(defvar abbrev-file-name
a0824fec 203 (if (eq system-type 'vax-vms)
204 "~/abbrev.def"
b33e350a 205 (convert-standard-filename "~/.abbrev_defs"))
a0824fec 206 "*Default name of file to read abbrevs from.")
6594deb0 207
ab5796a9 208;;; arch-tag: bae27ffb-9944-4c87-b569-30d4635a99e1
6594deb0 209;;; paths.el ends here