XEmacs 21.2.11
[chise/xemacs-chise.git.1] / lisp / paths.el
1 ;;; paths.el --- define pathnames for use by various Emacs commands.
2
3 ;; Copyright (C) 1986, 1988, 1993, 1994, 1997 Free Software Foundation, Inc.
4
5 ;; Maintainer: FSF
6 ;; Keywords: internal, dumped
7
8 ;; This file is part of XEmacs.
9
10 ;; XEmacs is free software; you can redistribute it and/or modify it
11 ;; under the terms of the GNU General Public License as published by
12 ;; the Free Software Foundation; either version 2, or (at your option)
13 ;; any later version.
14
15 ;; XEmacs is distributed in the hope that it will be useful, but
16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 ;; General Public License for more details.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with XEmacs; see the file COPYING.  If not, write to the Free
22 ;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
23
24 ;;; Synched up with: FSF 19.30.
25
26 ;;; Commentary:
27
28 ;; This file is dumped with XEmacs.
29
30 ;; These are default settings for names of certain files and directories
31 ;; that Emacs needs to refer to from time to time.
32
33 ;; If these settings are not right, override them with `setq'
34 ;; in site-start.el.  Do not change this file.
35
36 ;;; Code:
37
38 ;Note: FSF's version is:
39 ;(defvar Info-default-directory-list
40 ;  (let ((start (list "/usr/local/lib/info/"
41 ;                     ;; This comes second so that, if it is the same
42 ;                     ;; as configure-info-directory (which is usually true)
43 ;                     ;; and Emacs has been installed (also usually true)
44 ;                     ;; then the list will end with two copies of this;
45 ;                     ;; which means that the last dir file Info-insert-dir
46 ;                     ;; finds will be the one in this directory.
47 ;                     "/usr/local/info/"))
48 ;        (configdir (file-name-as-directory configure-info-directory)))
49 ;    (setq start (nconc start (list configdir)))
50 ;    start)
51 ;  "List of directories to search for Info documentation files.
52 ;They are searched in the order they are given in this list.
53 ;Therefore, the directory of Info files that come with Emacs
54 ;normally should come last (so that local files override standard ones).")
55
56 ;Our commented-out version is:
57 ;(defvar Info-default-directory-list
58 ;  (let ((start (list "/usr/local/info/"
59 ;                    "/usr/local/lib/info/"))
60 ;       (configdir (file-name-as-directory configure-info-directory)))
61 ;    (or (member configdir start)
62 ;       (setq start (nconc start (list configdir))))
63 ;    (or (member (expand-file-name "../info/" data-directory) start)
64 ;       (setq start
65 ;             (nconc start
66 ;                    (list (expand-file-name "../info/" data-directory)))))
67 ;    start)
68 ;  "List of directories to search for Info documentation files.")
69
70 (defvar news-path "/usr/spool/news/"
71   "The root directory below which all news files are stored.")
72
73 (defvar news-inews-program nil
74   "Program to post news.")
75
76 ;(defvar gnus-default-nntp-server ""
77 ;  ;; set this to your local server
78 ;  "The name of the host running an NNTP server.
79 ;If it is a string such as \":DIRECTORY\", then ~/DIRECTORY
80 ;is used as a news spool.  `gnus-nntp-server' is initialized from NNTPSERVER
81 ;environment variable or, if none, this value.")
82
83 ;(defvar gnus-nntp-service "nntp"
84 ;  "NNTP service name, usually \"nntp\" or 119).
85 ;Go to a local news spool if its value is nil, in which case `gnus-nntp-server'
86 ;should be set to `(system-name)'.")
87
88 (defvar gnus-local-domain nil
89   "*Your domain name without a host name: for example, \"ai.mit.edu\".
90 The DOMAINNAME environment variable is used instead if defined.
91 If the function `system-name' returns a fully qualified domain name,
92 there is no need to set this variable.")
93
94 (defvar gnus-local-organization nil
95   "*The name of your organization, as a string.
96 The `ORGANIZATION' environment variable is used instead if defined.")
97
98 (defvar mh-progs nil
99   "Directory containing MH commands.")
100
101 (defvar mh-lib nil
102   "Directory of MH library.")
103
104 (defvar rmail-file-name (purecopy "~/RMAIL")
105   "Name of user's primary mail file.")
106
107 (defvar gnus-startup-file (purecopy "~/.newsrc")
108   "The file listing groups to which user is subscribed.
109 Will use `gnus-startup-file'-SERVER instead if exists.")
110
111 (defconst rmail-spool-directory nil
112   "Name of directory used by system mailer for delivering new mail.
113 Its name should end with a slash.")
114
115 (defconst sendmail-program nil
116   "Program used to send messages.")
117
118 (defconst remote-shell-program nil
119   "Program used to execute shell commands on a remote machine.")
120
121 (defconst term-file-prefix (purecopy "term/")
122   "If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\")))
123 You may set this variable to nil in your `.emacs' file if you do not wish
124 the terminal-initialization file to be loaded.")
125
126 (defconst manual-program nil
127   "Program to run to print man pages.")
128
129 (defconst abbrev-file-name (purecopy "~/.abbrev_defs")
130   "*Default name of file to read abbrevs from.")
131
132 (defconst directory-abbrev-alist nil)
133
134 ;; Formerly, the values of these variables were computed once
135 ;; (at dump time).  However, with the advent of pre-compiled binaries
136 ;; and homebrewed systems such as Linux where who knows where the
137 ;; hell the various programs may be located (if they even exist at all),
138 ;; it's clear that we need to recompute these values at run time.
139 ;; In typical short-sightedness, site administrators have been told up
140 ;; till now to do `setq's in site-init.el, which is run only once --
141 ;; at dump time.  So we have to do contortions to make sure we don't
142 ;; override values set in site-init.el.
143
144 (defun initialize-xemacs-paths ()
145   "Initialize the XEmacs path variables from the environment.
146 Called automatically at dump time and run time.  Do not call this.
147 Will not override settings in site-init.el or site-run.el."
148   (let ((l #'(lambda (var value)
149                (let ((origsym (intern (concat "paths-el-original-"
150                                               (symbol-name var)))))
151                  (if (running-temacs-p)
152                      (progn
153                        (set var value)
154                        (set origsym value))
155                    (and (eq (symbol-value var) (symbol-value origsym))
156                         (set var value)))))))
157     (funcall
158      l 'news-inews-program
159      (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews")
160            ((file-exists-p "/usr/local/inews") "/usr/local/inews")
161            ((file-exists-p "/usr/local/bin/inews") "/usr/local/bin/inews")
162            ((file-exists-p "/usr/lib/news/inews") "/usr/lib/news/inews")
163            (t "inews")))
164
165     (funcall
166      l 'mh-progs
167      (cond ((file-directory-p "/usr/bin/mh") "/usr/bin/mh/") ;Ultrix 4.2
168            ((file-directory-p "/usr/new/mh") "/usr/new/mh/") ;Ultrix <4.2
169            ((file-directory-p "/usr/local/bin/mh") "/usr/local/bin/mh/")
170            ((file-directory-p "/usr/local/mh") "/usr/local/mh/")
171            (t "/usr/local/bin/")))
172
173     (funcall
174      l 'mh-libs
175      (cond ((file-directory-p "/usr/lib/mh") "/usr/lib/mh/") ;Ultrix 4.2
176            ((file-directory-p "/usr/new/lib/mh")
177             "/usr/new/lib/mh/") ;Ultrix <4.2
178            ((file-directory-p "/usr/local/lib/mh") "/usr/local/lib/mh/")
179            (t "/usr/local/bin/mh/")))
180
181     (funcall
182      l 'rmail-spool-directory
183      (cond ((string-match "^[^-]+-[^-]+-sco3.2v4" system-configuration)
184             "/usr/spool/mail/")
185            ;; On The Bull DPX/2 /usr/spool/mail is used although
186            ;; it is usg-unix-v.
187            ((string-match "^m68k-bull-sysv3" system-configuration)
188             "/usr/spool/mail/")
189            ;; SVR4 and recent BSD are said to use this.
190            ;; Rather than trying to know precisely which systems use it,
191            ;; let's assume this dir is never used for anything else.
192            ((file-exists-p "/var/mail")
193             "/var/mail/")
194            ((memq system-type '(dgux hpux usg-unix-v unisoft-unix rtu irix))
195             "/usr/mail/")
196            ((memq system-type '(linux))
197             "/var/spool/mail/")
198            (t "/usr/spool/mail/")))
199
200     (funcall
201      l 'sendmail-program
202      (cond
203       ((file-exists-p "/usr/lib/sendmail") "/usr/lib/sendmail")
204       ((file-exists-p "/usr/sbin/sendmail") "/usr/sbin/sendmail")
205       ((file-exists-p "/usr/ucblib/sendmail") "/usr/ucblib/sendmail")
206       (t "fakemail")))          ;In ../etc, to interface to /bin/mail.
207
208     (funcall
209      l 'remote-shell-program
210      (cond
211       ;; Some systems use rsh for the remote shell; others use that
212       ;; name for the restricted shell and use remsh for the remote
213       ;; shell.  Let's try to guess based on what we actually find
214       ;; out there.  The restricted shell is almost certainly in
215       ;; /bin or /usr/bin, so it's probably safe to assume that an
216       ;; rsh found elsewhere is the remote shell program.  The
217       ;; converse is not true: /usr/bin/rsh could be either one, so
218       ;; check that last.
219       ((file-exists-p "/usr/ucb/remsh") "/usr/ucb/remsh")
220       ((file-exists-p "/usr/bsd/remsh") "/usr/bsd/remsh")
221       ((file-exists-p "/bin/remsh") "/bin/remsh")
222       ((file-exists-p "/usr/bin/remsh") "/usr/bin/remsh")
223       ((file-exists-p "/usr/local/bin/remsh") "/usr/local/bin/remsh")
224       ((file-exists-p "/usr/ucb/rsh") "/usr/ucb/rsh")
225       ((file-exists-p "/usr/bsd/rsh") "/usr/bsd/rsh")
226       ((file-exists-p "/usr/local/bin/rsh") "/usr/local/bin/rsh")
227       ((file-exists-p "/usr/bin/rcmd") "/usr/bin/rcmd")
228       ((file-exists-p "/bin/rcmd") "/bin/rcmd")
229       ((file-exists-p "/bin/rsh") "/bin/rsh")
230       ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh")
231       (t "rsh")))
232
233     (funcall
234      l 'manual-program
235      ;; Solaris 2 has both of these files; prefer /usr/ucb/man
236      ;; because the other has nonstandard argument conventions.
237      (if (file-exists-p "/usr/ucb/man")
238          "/usr/ucb/man" "/usr/bin/man"))
239
240     (funcall
241      l 'directory-abbrev-alist
242      ;; Try to match various conventions for automounter temporary
243      ;; mount points.  These temporary mount points may go away, so
244      ;; it's important that we only try to read files under the
245      ;; "advertised" mount point, rather than the temporary one, or it
246      ;; will look like files have been deleted on us.  Whoever came up
247      ;; with this design is clearly a moron of the first order, but
248      ;; now we're stuck with it, no doubt until the end of time.
249      ;;
250      ;; For best results, automounter junk should go near the front of this
251      ;; list, and other user translations should come after it.
252      ;;
253      ;; Our code handles the following empirically observed conventions:
254      ;; /net is an actual directory! (some systems are not broken!)
255      ;; /net/HOST -> /tmp_mnt/net/HOST (`standard' old Sun automounter)
256      ;; /net/HOST -> /tmp_mnt/HOST (BSDI 4.0)
257      ;; /net/HOST -> /a/HOST (Freebsd 2.2.x)
258      ;; /net/HOST -> /amd/HOST (seen in amd sample config files)
259      ;;
260      ;; If your system has a different convention, you may have to change this.
261      ;; Don't forget to send in a patch!
262      (when (file-directory-p "/net")
263        (append
264         (when (file-directory-p "/tmp_mnt")
265           (if (file-directory-p "/tmp_mnt/net")
266               '(("\\`/tmp_mnt/net/" . "/net/"))
267             '(("\\`/tmp_mnt/" . "/net/"))))
268         (when (file-directory-p "/a")
269           '(("\\`/a/" . "/net/")))
270         (when (file-directory-p "/amd")
271           '(("\\`/amd/" . "/net/")))
272         )))
273 ))
274
275 (if (running-temacs-p)
276     (initialize-xemacs-paths))
277
278 ;;; paths.el ends here