updated.
[elisp/semi.git] / mime-edit.el
index 4952369..f526fbb 100644 (file)
@@ -7,7 +7,7 @@
 ;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1994/08/21 renamed from mime.el
 ;;     Renamed: 1997/2/21 from tm-edit.el
-;; Version: $Revision: 0.81 $
+;; Version: $Revision: 0.85 $
 ;; Keywords: MIME, multimedia, multilingual, mail, news
 
 ;; This file is part of SEMI (SEMI is Emacs MIME Interfaces).
 ;;;
 
 (defconst mime-edit-RCS-ID
-  "$Id: mime-edit.el,v 0.81 1997-05-27 03:12:56 morioka Exp $")
+  "$Id: mime-edit.el,v 0.85 1997-07-05 17:18:02 morioka Exp $")
 
-(defconst mime-edit-version (get-version-string mime-edit-RCS-ID))
+(defconst mime-edit-version `,(get-version-string mime-edit-RCS-ID))
 
 (defconst mime-edit-version-name
-  (concat "SEMI MIME-Edit " mime-edit-version))
+  `,(concat "SEMI MIME-Edit " mime-edit-version
+           " \"" semi-version-name "\""))
 
 
 ;;; @ variables
@@ -1605,8 +1606,9 @@ Parameter must be '(PROMPT CHOICE1 (CHOISE2 ...))."
            (insert (format "Content-Transfer-Encoding: %s\n" encoding))
          )
        (insert "\n")
-       (or (funcall (pgp-function 'mime-sign)
-                    (point-min)(point-max) nil nil pgp-boundary)
+       (or (as-binary-process
+            (funcall (pgp-function 'mime-sign)
+                     (point-min)(point-max) nil nil pgp-boundary))
            (throw 'mime-edit-error 'pgp-error)
            )
        ))))
@@ -1977,6 +1979,33 @@ Content-Transfer-Encoding: 7bit
                   )
              (encode-mime-charset-region beg (mime-edit-content-end)
                                          charset)
+             ;; Protect "From " in beginning of line
+             (save-restriction
+               (narrow-to-region beg (mime-edit-content-end))
+               (goto-char beg)
+               (if (re-search-forward "^From " nil t)
+                   (unless encoding
+                     (if (memq charset '(iso-2022-jp
+                                         iso-2022-jp-2
+                                         iso-2022-int-1
+                                         x-ctext))
+                         (while (progn
+                                  (replace-match "\e(BFrom ")
+                                  (re-search-forward "^From " nil t)
+                                  ))
+                       (setq encoding "quoted-printable")
+                       ))))
+             ;; canonicalize line break code
+             (or (member encoding '(nil "7bit" "8bit" "quoted-printable"))
+                 (save-restriction
+                   (narrow-to-region beg (mime-edit-content-end))
+                   (goto-char beg)
+                   (while (re-search-forward "\\([^\r]\\)\n" nil t)
+                     (replace-match
+                      (concat (buffer-substring (match-beginning 0)
+                                                (match-end 1)) "\r\n"))
+                     )))
+             (goto-char beg)
              (mime-encode-region beg (mime-edit-content-end) encoding)
              (mime-edit-define-encoding encoding)
              ))