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