changeset 13398:2b18ef667bde

(mail): Don't change directory for *mail* buffer. (sendmail-send-it, mail-recover): Instead, temporarily change to a safe directory for just the subprocess.
author Karl Heuer <kwzh@gnu.org>
date Sat, 04 Nov 1995 00:39:03 +0000
parents aac6ac5b87fd
children ac7b3d7dafe8
files lisp/mail/sendmail.el
diffstat 1 files changed, 28 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/sendmail.el	Sat Nov 04 00:21:08 1995 +0000
+++ b/lisp/mail/sendmail.el	Sat Nov 04 00:39:03 1995 +0000
@@ -580,30 +580,31 @@
 		(save-excursion
 		  (set-buffer errbuf)
 		  (erase-buffer))))
-	  (apply 'call-process-region
-		 (append (list (point-min) (point-max)
-			       (if (boundp 'sendmail-program)
-				   sendmail-program
-				 "/usr/lib/sendmail")
-			       nil errbuf nil "-oi")
-			 ;; Always specify who from,
-			 ;; since some systems have broken sendmails.
-			 (list "-f" (user-login-name))
-;;;			 ;; Don't say "from root" if running under su.
-;;;			 (and (equal (user-real-login-name) "root")
-;;;			      (list "-f" (user-login-name)))
-			 (and mail-alias-file
-			      (list (concat "-oA" mail-alias-file)))
-			 ;; These mean "report errors by mail"
-			 ;; and "deliver in background".
-			 (if (null mail-interactive) '("-oem" "-odb"))
-			 ;; Get the addresses from the message
-			 ;; unless this is a resend.
-			 ;; We must not do that for a resend
-			 ;; because we would find the original addresses.
-			 ;; For a resend, include the specific addresses.
-			 (or resend-to-addresses
-			     '("-t"))))
+	  (let ((default-directory "/"))
+	    (apply 'call-process-region
+		   (append (list (point-min) (point-max)
+				 (if (boundp 'sendmail-program)
+				     sendmail-program
+				   "/usr/lib/sendmail")
+				 nil errbuf nil "-oi")
+			   ;; Always specify who from,
+			   ;; since some systems have broken sendmails.
+			   (list "-f" (user-login-name))
+;;;			   ;; Don't say "from root" if running under su.
+;;;			   (and (equal (user-real-login-name) "root")
+;;;				(list "-f" (user-login-name)))
+			   (and mail-alias-file
+				(list (concat "-oA" mail-alias-file)))
+			   ;; These mean "report errors by mail"
+			   ;; and "deliver in background".
+			   (if (null mail-interactive) '("-oem" "-odb"))
+			   ;; Get the addresses from the message
+			   ;; unless this is a resend.
+			   ;; We must not do that for a resend
+			   ;; because we would find the original addresses.
+			   ;; For a resend, include the specific addresses.
+			   (or resend-to-addresses
+			       '("-t")))))
 	  (if mail-interactive
 	      (save-excursion
 		(set-buffer errbuf)
@@ -993,8 +994,6 @@
 ;;;	      (message "Auto save file for draft message exists; consider M-x mail-recover"))
 ;;;          t))
   (pop-to-buffer "*mail*")
-  (if (file-exists-p (expand-file-name "~/"))
-      (setq default-directory (expand-file-name "~/")))
   (auto-save-mode auto-save-default)
   (mail-mode)
   ;; Disconnect the buffer from its visited file
@@ -1020,7 +1019,9 @@
 	     (if (not (eq system-type 'vax-vms))
 		 (with-output-to-temp-buffer "*Directory*"
 		   (buffer-disable-undo standard-output)
-		   (call-process "ls" nil standard-output nil "-l" file-name)))
+		   (let ((default-directory "/"))
+		     (call-process
+		      "ls" nil standard-output nil "-l" file-name))))
 	     (yes-or-no-p (format "Recover auto save file %s? " file-name)))
 	   (let ((buffer-read-only nil))
 	     (erase-buffer)