[Mew-dist 3193] Re: mew-summary-reedit

Mito mit at example.com
1997年 12月 15日 (月) 21:37:25 JST


※ "元" こと motoki at example.com さんの
   『[Mew-dist 3118] Re: mew-summary-reedit』からの引用です。

元> マルチパートメールを作成しているときに、
元> ----
元> This is a test.
元> ----------- attachments -----------
元>        4/                Multipart/Mixed             
元>      1   CoverPage         Text/Plain(guess)         
元>      2   test.c            Text/Plain(guess)         
元>      3   .                                           
元> --------0-1-2-3-4-5-6-7-8-9--------
元> 
元> のような状況でそのまま保存すると、mew-summary-reedit をしたときに
元> ふつうのテキストになってしまい、マルチパート作成にはなりません。

# 今日、この不便さを感じました。

mew-save-buffer() で mew-draft-syntax-file だけ出力するよう
にしました。

ct がある場合は今まで通りで、ない場合は 
mew-draft-syntax-file を読み込み attachment を再構成するよう
になっているはずです。

おかしいところがあるはずですので、注意してください。(_ _)

# b7 へのパッチです。
-- 
12/15 21:35頃
NECソフトウェア新潟  水戸
mailto:mit at example.com
-------------- next part --------------
--- mew-draft.el	1997/12/15 10:48:16	1.1
+++ mew-draft.el	1997/12/15 10:52:14
@@ -999,7 +999,15 @@
 (defun mew-save-buffer ()
   (interactive)
   (mew-frwlet mew-cs-noconv mew-cs-draft
-    (save-buffer)))
+              (if (not (mew-attach-p))
+                  (save-buffer)
+                (mew-draft-make-syntax)
+                (save-excursion
+                  (write-region (point-min)
+                                (marker-position mew-draft-buffer-attach)
+                                (buffer-file-name))
+                  (set-buffer-modified-p nil)
+                  (set-visited-file-modtime nil)))))
 
 (defun mew-draft-rehighlight (arg)
   (interactive "P")
--- mew-encode.el	1997/12/15 10:48:16	1.1
+++ mew-encode.el	1997/12/15 10:51:26
@@ -109,6 +109,20 @@
   (mew-encode-singlepart (mew-encode-syntax-single "text-file") nil nil t)
   )
 
+(defun mew-draft-make-syntax ()
+  (let* ((path (mew-expand-folder (mew-draft-to-mime (buffer-name))))
+        (syntax-file (expand-file-name mew-draft-syntax-file path))
+        (syntax mew-encode-syntax))
+    (save-excursion
+      (set-buffer (find-file-noselect syntax-file))
+      (mew-erase-buffer)
+      (prin1 syntax (current-buffer)) ;; different buffer, so use syntax
+      (terpri (current-buffer))
+      (save-buffer)
+      (message "") ;; flush echo area
+      (kill-buffer (current-buffer))
+      )))
+
 (defun mew-draft-make-backup (&optional single)
   ;; back up the draft and its syntax
   (let* ((path (mew-expand-folder (mew-draft-to-mime (buffer-name))))
@@ -119,15 +133,7 @@
     (if (not (file-exists-p path)) (mew-make-directory path)) ;;for single part
     (write-region (point-min) (point-max) backup-file nil 'no-msg)
     (if (not single)
-	(save-excursion
-	  (set-buffer (find-file-noselect syntax-file))
-	  (mew-erase-buffer)
-	  (prin1 syntax (current-buffer)) ;; different buffer, so use syntax
-	  (terpri (current-buffer))
-	  (save-buffer)
-	  (message "") ;; flush echo area
-	  (kill-buffer (current-buffer))
-	  ))
+        (mew-draft-make-syntax))
     ))
 
 ;; xxx will be obsoleted?
--- mew-summary.el	1997/12/15 10:48:16	1.1
+++ mew-summary.el	1997/12/15 11:24:27
@@ -1401,6 +1401,21 @@
 ;;; Edit again
 ;;;
 
+(defun mew-draft-recover-syntax ()
+  (let* ((path (mew-expand-folder (mew-draft-to-mime (buffer-name))))
+        (syntax-file (expand-file-name mew-draft-syntax-file path)))
+    (if (not (file-exists-p syntax-file))
+        () ;; single
+      (save-excursion
+        (find-file-read-only syntax-file)
+        (goto-char (point-min))
+        (setq mew-encode-syntax (read (current-buffer)))
+        (kill-buffer (current-buffer))
+        )
+      (mew-draft-prepare-attachments)
+      (delete-file syntax-file)
+      )))
+
 (defun mew-summary-reedit ()
   "Edit this message again to send. Or edit this rfc822 part
 typically included MIME-encapsulated error message.
@@ -1475,7 +1490,9 @@
 	    (insert mew-header-separator "\n")
 	    (mew-draft-mode)
 	    )
-	(save-buffer))
+        (if (not (mew-header-get-value "Content-Type:"))
+            (mew-draft-recover-syntax))
+	(mew-save-buffer))
       (if mew-touch-folder-p (mew-touch-folder mew-draft-folder))
       (message "Draft is prepared"))
      )


Mew-dist メーリングリストの案内