Mercurial > emacs
annotate lisp/mail/blessmail.el @ 9449:d11a719d7bde
(rmail-find-all-files): Fix several errors and make faster.
Always return a single-level list of file names.
(rmail-construct-io-menu): If FILES is null, turn off the menus.
(rmail-disable-menu): A phony "command", always disabled in menus.
(rmail-list-to-menu): Reverse the list L.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 11 Oct 1994 17:38:48 +0000 |
parents | d04f5eb7098b |
children | 83f275dcd93a |
rev | line source |
---|---|
6977 | 1 ;;; blessmail.el --- Decide whether movemail needs special privileges. |
2 | |
3 ;;; Copyright (C) 1994 Free Software Foundation, Inc. | |
4 | |
5 ;; Maintainer: FSF | |
6 ;; Keywords: internal | |
7 | |
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 | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
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 | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
22 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
23 | |
24 ;;; Commentary: | |
25 | |
26 ;; This is loaded into a bare Emacs to create the blessmail script, | |
27 ;; which (on systems that need it) is used during installation | |
28 ;; to give appropriate permissions to movemail. | |
29 ;; | |
30 ;; It has to be done from lisp in order to be sure of getting the | |
31 ;; correct value of rmail-spool-directory. | |
32 | |
33 ;;; Code: | |
34 | |
7244
5420c14c9169
Don't load site-init.el.
Richard M. Stallman <rms@gnu.org>
parents:
7166
diff
changeset
|
35 ;; These are no longer needed because we run this in emacs instead of temacs. |
5420c14c9169
Don't load site-init.el.
Richard M. Stallman <rms@gnu.org>
parents:
7166
diff
changeset
|
36 ;; (message "Using load-path %s" load-path) |
5420c14c9169
Don't load site-init.el.
Richard M. Stallman <rms@gnu.org>
parents:
7166
diff
changeset
|
37 ;; (load "paths.el") |
5420c14c9169
Don't load site-init.el.
Richard M. Stallman <rms@gnu.org>
parents:
7166
diff
changeset
|
38 ;; It is not safe to load site-init.el here, because it might have things in it |
5420c14c9169
Don't load site-init.el.
Richard M. Stallman <rms@gnu.org>
parents:
7166
diff
changeset
|
39 ;; that won't load properly unless all the rest of Emacs is loaded. |
6977 | 40 |
7166 | 41 (let ((dirname (directory-file-name rmail-spool-directory)) |
42 linkname attr modes) | |
7149 | 43 ;; Check for symbolic link |
44 (while (setq linkname (file-symlink-p dirname)) | |
45 (setq dirname (if (file-name-absolute-p linkname) | |
46 linkname | |
47 (concat (file-name-directory dirname) linkname)))) | |
7375
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
48 (insert "#!/bin/sh\n") |
7149 | 49 (setq attr (file-attributes dirname)) |
7375
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
50 (if (not (eq t (car attr))) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
51 (insert (format "echo %s is not a directory\n" rmail-spool-directory)) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
52 (setq modes (nth 8 attr)) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
53 (cond ((= ?w (aref modes 8)) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
54 ;; Nothing needs to be done. |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
55 ) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
56 ((= ?w (aref modes 5)) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
57 (insert "chgrp " (number-to-string (nth 3 attr)) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
58 " $* && chmod g+s $*\n")) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
59 ((= ?w (aref modes 2)) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
60 (insert "chown " (number-to-string (nth 2 attr)) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
61 " $* && chmod u+s $*\n")) |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
62 (t |
d04f5eb7098b
If rmail-spool-directory is not a directory,
Richard M. Stallman <rms@gnu.org>
parents:
7244
diff
changeset
|
63 (insert "chown root $* && chmod u+s $*\n")))) |
7244
5420c14c9169
Don't load site-init.el.
Richard M. Stallman <rms@gnu.org>
parents:
7166
diff
changeset
|
64 (insert "echo mail directory = " dirname "\n")) |
6977 | 65 (write-region (point-min) (point-max) "blessmail") |
66 (kill-emacs) | |
67 | |
68 ;;; blessmail.el ends here |