diff miscellany/mhe/mh-forw.ml @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/miscellany/mhe/mh-forw.ml	Mon Apr 18 23:46:02 2005 +0900
@@ -0,0 +1,80 @@
+;  This autoloaded file implements the "f" command of mhe
+(defun 
+    (&mh-forw actn exfl sm annotate fn
+	(save-window-excursion 
+	    (progn
+		  (message  "Forwarding message " (&mh-get-msgnum) "...")
+		  (sit-for 0)
+		  (&mh-save-killbuffer)
+		  (pop-to-buffer (concat "+" mh-folder))
+		  (setq sm mode-line-format)
+		  (delete-other-windows)
+		  (setq annotate mh-annotate)
+		  (setq fn (&mh-get-fname))
+		  (pop-to-buffer "draft")
+		  (erase-buffer)
+		  (insert-string "One moment, please...")
+		  (unlink-file (concat mh-path "/draft"))
+		  (send-to-shell 
+		      (concat mh-progs "/forw -build +" mh-folder " "
+			      (&mh-get-msgnum))
+		  )
+		  (show-shell-errors)
+		  (read-file (concat mh-path "/draft"))
+		  (local-bind-to-key "exit-emacs" "\\")
+		  (mail-mode) (header-line-position)
+		  (sit-for 0) (setq exfl 0)
+		  (while (= exfl 0)
+			 (error-occured
+			     (save-window-excursion
+				 (pop-to-buffer (concat "+" mh-folder))
+				 (setq mode-line-format
+				       "{%b}	^X^C exits to top level")
+				 (pop-to-buffer "draft")
+				 (setq mode-line-format
+				       (concat "{%b}	%[%p of "
+					       mh-path "/draft%]	"
+					       "^X^C exits to top level"))
+				 (&mh-restore-killbuffer)
+				 (recursive-edit)
+				 (setq mode-line-format
+				       (concat "{%b}	%[%p of "
+					       mh-path "/draft%]"))
+				 (pop-to-buffer (concat "+" mh-folder))
+				 (setq mode-line-format " ")
+			     )
+			 )
+			 (setq actn (get-response "Ready to send. Action? (m, q, e, or ?) " "mMqQeE\" 
+					"m: mail it, q: quit, e: resume editing, ?: this msg."))
+			 (if (= actn 'm')
+			     (progn (message "Sending...") (sit-for 0)
+				    (write-current-file)
+				    (send-to-shell 
+					(concat mh-progs "/send -noverbose "
+						mh-path "/draft"
+					))
+				    (if annotate
+					(progn
+					      (temp-use-buffer "message")
+					      (read-file fn)
+					      (annotate "Replied" "Forwarded")
+					)
+				    )
+				    (setq exfl 1))
+			     (= actn 'q')
+			     (progn
+				   (&mh-restore-killbuffer)
+				   (pop-to-buffer (concat "+" mh-folder))
+				   (delete-other-windows)
+				   (setq mode-line-format sm)
+				   (error-message "Message not sent; its text remains in buffer 'draft'")
+			     )
+			 )
+		  )
+	    )
+	)
+	(pop-to-buffer (concat "+" mh-folder)) (delete-other-windows)
+	(setq mode-line-format sm)
+	(pop-to-buffer "draft") (previous-window)
+    )
+)