Sync to HEAD
[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
97ad35dd 3;; Copyright (C) 1986, 1988, 1994, 1999, 2000 Free Software Foundation, Inc.
3a801d0c 4
e5167999 5;; Maintainer: FSF
d7b4d18f 6;; Keywords: internal
e5167999 7
a0824fec 8;; This file is part of GNU Emacs.
9
10;; GNU Emacs is free software; you can redistribute it and/or modify
11;; it under the terms of the GNU General Public License as published by
e5167999 12;; the Free Software Foundation; either version 2, or (at your option)
a0824fec 13;; any later version.
14
15;; GNU Emacs is distributed in the hope that it will be useful,
16;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;; GNU General Public License for more details.
19
20;; You should have received a copy of the GNU General Public License
b578f267
EN
21;; along with GNU Emacs; see the file COPYING. If not, write to the
22;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23;; Boston, MA 02111-1307, USA.
a0824fec 24
e5167999 25;;; Commentary:
a0824fec 26
27;; These are default settings for names of certain files and directories
28;; that Emacs needs to refer to from time to time.
29
30;; If these settings are not right, override them with `setq'
31;; in site-init.el. Do not change this file.
32
e5167999
ER
33;;; Code:
34
e884c260
DL
35;; Docstrings in this file should, where reasonable, follow the
36;; conventions described in bindings.el, so that they get put in the
37;; DOC file rather than in memory.
38
97ad35dd
MB
39(defun prune-directory-list (dirs &optional keep reject)
40 "Returns a copy of DIRS with all non-existant directories removed.
41The optional argument KEEP is a list of directories to retain even if
42they don't exist, and REJECT is a list of directories to remove from
43DIRS, even if they exist; REJECT takes precedence over KEEP.
44
45Note that membership in REJECT and KEEP is checked using simple string
46comparision."
47 (apply #'nconc
48 (mapcar (lambda (dir)
49 (and (not (member dir reject))
50 (or (member dir keep) (file-directory-p dir))
51 (list dir)))
52 dirs)))
53
a755d8e5 54(defvar Info-default-directory-list
e103ef95
EZ
55 (let* ((config-dir
56 (file-name-as-directory configure-info-directory))
57 (config
58 (list config-dir))
97ad35dd
MB
59 (unpruned-prefixes
60 ;; Directory trees that may not exist at installation time, and
61 ;; so shouldn't be pruned based on existance.
62 '("/usr/local/"))
63 (prefixes
64 ;; Directory trees in which to look for info subdirectories
65 (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/")
66 unpruned-prefixes))
67 (suffixes
68 ;; Subdirectories in each directory tree that may contain info
69 ;; directories.
70 '("" "share/" "gnu/" "gnu/lib/" "gnu/lib/emacs/"
e103ef95
EZ
71 "emacs/" "lib/" "lib/emacs/"))
72 (standard-info-dirs
73 (apply #'nconc
74 (mapcar (lambda (pfx)
75 (let ((dirs
76 (mapcar (lambda (sfx)
77 (concat pfx sfx "info/"))
78 suffixes)))
79 (if (member pfx unpruned-prefixes)
80 dirs
81 (prune-directory-list dirs config))))
82 prefixes))))
83 ;; If $(prefix)/info is not one of the standard info directories,
84 ;; they are probably installing an experimental version of Emacs,
85 ;; so make sure that experimental version's Info files override
86 ;; the ones in standard directories.
87 (if (member config-dir standard-info-dirs)
b6348438 88 (nconc standard-info-dirs config)
e103ef95 89 (cons config-dir standard-info-dirs)))
d4ecdb6b
RS
90 "Default list of directories to search for Info documentation files.
91They are searched in the order they are given in the list.
feea21d1 92Therefore, the directory of Info files that come with Emacs
e103ef95
EZ
93normally should come last (so that local files override standard ones),
94unless Emacs is installed into a non-standard directory. In the latter
95case, the directory of Info files that come with Emacs should be
96first in this list.
d4ecdb6b
RS
97
98Once Info is started, the list of directories to search
99comes from the variable `Info-directory-list'.
100This variable `Info-default-directory-list' is used as the default
395f3b7f
GM
101for initializing `Info-directory-list' when Info is started, unless
102the environment variable INFOPATH is set.")
a0824fec 103
7cf202bd
KH
104(defvar news-path
105 (if (file-exists-p "/usr/spool/news/")
106 "/usr/spool/news/"
107 "/var/spool/news/")
a0824fec 108 "The root directory below which all news files are stored.")
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
a0824fec 139(defconst 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/")
d9fc020b 154 ((memq system-type '(dgux hpux usg-unix-v unisoft-unix rtu 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
160(defconst sendmail-program
9c85ef9f 161 (cond
9c85ef9f 162 ((file-exists-p "/usr/sbin/sendmail") "/usr/sbin/sendmail")
1e0fea28 163 ((file-exists-p "/usr/lib/sendmail") "/usr/lib/sendmail")
9c85ef9f
RS
164 ((file-exists-p "/usr/ucblib/sendmail") "/usr/ucblib/sendmail")
165 (t "fakemail")) ;In ../etc, to interface to /bin/mail.
a0824fec 166 "Program used to send messages.")
167
93a18127
KH
168(defconst remote-shell-program
169 (cond
170 ;; Some systems use rsh for the remote shell; others use that name for the
171 ;; restricted shell and use remsh for the remote shell. Let's try to guess
172 ;; based on what we actually find out there. The restricted shell is
173 ;; almost certainly in /bin or /usr/bin, so it's probably safe to assume
66263a7d
KH
174 ;; that an rsh found elsewhere is the remote shell program. The converse
175 ;; is not true: /usr/bin/rsh could be either one, so check that last.
93a18127 176 ((file-exists-p "/usr/ucb/remsh") "/usr/ucb/remsh")
66263a7d 177 ((file-exists-p "/usr/bsd/remsh") "/usr/bsd/remsh")
93a18127 178 ((file-exists-p "/bin/remsh") "/bin/remsh")
9ade6d5e 179 ((file-exists-p "/usr/bin/remsh") "/usr/bin/remsh")
66263a7d
KH
180 ((file-exists-p "/usr/local/bin/remsh") "/usr/local/bin/remsh")
181 ((file-exists-p "/usr/ucb/rsh") "/usr/ucb/rsh")
182 ((file-exists-p "/usr/bsd/rsh") "/usr/bsd/rsh")
93a18127 183 ((file-exists-p "/usr/local/bin/rsh") "/usr/local/bin/rsh")
fa195bce
KH
184 ((file-exists-p "/usr/bin/rcmd") "/usr/bin/rcmd")
185 ((file-exists-p "/bin/rcmd") "/bin/rcmd")
66263a7d
KH
186 ((file-exists-p "/bin/rsh") "/bin/rsh")
187 ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh")
a608ec1b
RS
188 (t "rsh"))
189 "File name for remote-shell program (often rsh or remsh).")
93a18127 190
e884c260
DL
191(defconst term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\
192If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\")))
a0824fec 193You may set this variable to nil in your `.emacs' file if you do not wish
194the terminal-initialization file to be loaded.")
195
f1180544 196(defconst abbrev-file-name
a0824fec 197 (if (eq system-type 'vax-vms)
198 "~/abbrev.def"
b33e350a 199 (convert-standard-filename "~/.abbrev_defs"))
a0824fec 200 "*Default name of file to read abbrevs from.")
6594deb0 201
6b61353c 202;;; arch-tag: bae27ffb-9944-4c87-b569-30d4635a99e1
6594deb0 203;;; paths.el ends here