X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/6875cf75e59086ca87d1d67c01fe2bf1da3cded1..a6d583c00a8079c98000fdc80c870f7cdcc9f291:/lisp/mail/blessmail.el diff --git a/lisp/mail/blessmail.el b/lisp/mail/blessmail.el index 25c888c6ec..41bad17d70 100644 --- a/lisp/mail/blessmail.el +++ b/lisp/mail/blessmail.el @@ -1,6 +1,7 @@ -;;; blessmail.el --- Decide whether movemail needs special privileges. +;;; blessmail.el --- decide whether movemail needs special privileges -*- no-byte-compile: t -*- -;;; Copyright (C) 1994 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2002, 2003, 2004, 2005, +;; 2006 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -18,8 +19,9 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to -;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -32,29 +34,38 @@ ;;; Code: -(message "Using load-path %s" load-path) -(load "paths.el") -(load "site-init" t) +;; These are no longer needed because we run this in emacs instead of temacs. +;; (message "Using load-path %s" load-path) +;; (load "paths.el") +;; It is not safe to load site-init.el here, because it might have things in it +;; that won't load properly unless all the rest of Emacs is loaded. -(let ((attr (file-attributes (file-truename rmail-spool-directory))) - modes) - (or (eq t (car attr)) - (signal 'error - (list (format "%s is not a directory" rmail-spool-directory)))) - (setq modes (nth 8 attr)) +(let ((dirname (directory-file-name rmail-spool-directory)) + linkname attr modes) + ;; Check for symbolic link + (while (setq linkname (file-symlink-p dirname)) + (setq dirname (if (file-name-absolute-p linkname) + linkname + (concat (file-name-directory dirname) linkname)))) (insert "#!/bin/sh\n") - (cond - ((= ?w (aref modes 8)) - (insert "exit 0")) - ((= ?w (aref modes 5)) - (insert "chgrp " (number-to-string (nth 3 attr)) - " $* && chmod g+s $*\n")) - ((= ?w (aref modes 2)) - (insert "chown " (number-to-string (nth 2 attr)) - " $* && chmod u+s $*\n")) - (t - (insert "chown root $* && chmod u+s $*\n")))) + (setq attr (file-attributes dirname)) + (if (not (eq t (car attr))) + (insert (format "echo %s is not a directory\n" rmail-spool-directory)) + (setq modes (nth 8 attr)) + (cond ((= ?w (aref modes 8)) + ;; Nothing needs to be done. + ) + ((= ?w (aref modes 5)) + (insert "chgrp " (number-to-string (nth 3 attr)) + " $* && chmod g+s $*\n")) + ((= ?w (aref modes 2)) + (insert "chown " (number-to-string (nth 2 attr)) + " $* && chmod u+s $*\n")) + (t + (insert "chown root $* && chmod u+s $*\n")))) + (insert "echo mail directory = " dirname "\n")) (write-region (point-min) (point-max) "blessmail") (kill-emacs) +;;; arch-tag: c3329fe2-f945-41a9-8b00-b4b038ff182f ;;; blessmail.el ends here