X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-edit.el;h=439707a125a10b100642d4d1c597dc3536e81e58;hb=1c81d0fee211b20aefd767b0dc5ad3d9dbf3520a;hp=929f850c7b71b12d06231bab1c4c32db5b650f3c;hpb=bc9be502a7550c1abcb3f0fb6cfabb0529733417;p=elisp%2Fsemi.git diff --git a/mime-edit.el b/mime-edit.el index 929f850..439707a 100644 --- a/mime-edit.el +++ b/mime-edit.el @@ -7,7 +7,7 @@ ;; Maintainer: MORIOKA Tomohiko ;; Created: 1994/08/21 renamed from mime.el ;; Renamed: 1997/2/21 from tm-edit.el -;; Version: $Revision: 0.94 $ +;; Version: $Revision: 0.100 $ ;; Keywords: MIME, multimedia, multilingual, mail, news ;; This file is part of SEMI (SEMI is Emacs MIME Interfaces). @@ -92,7 +92,7 @@ ;; ;; This is a conventional plain text. It should be translated into ;; text/plain. -;; +;; ;;--[[text/plain]] ;; This is also a plain text. But, it is explicitly specified as is. ;;--[[text/plain; charset=ISO-8859-1]] @@ -122,7 +122,7 @@ ;;; (defconst mime-edit-RCS-ID - "$Id: mime-edit.el,v 0.94 1997-11-04 14:24:59 morioka Exp $") + "$Id: mime-edit.el,v 0.100 1998-02-06 00:39:23 morioka Exp $") (defconst mime-edit-version `,(get-version-string mime-edit-RCS-ID)) @@ -458,17 +458,23 @@ Each elements are regexp of field-name.") ;;; @@ about message splitting ;;; -(defvar mime-edit-split-message t - "*Split large message if it is non-nil.") +(defcustom mime-edit-split-message t + "*Split large message if it is non-nil." + :group 'mime-edit + :type 'boolean) -(defvar mime-edit-message-default-max-lines 1000 - "*Default maximum lines of a message.") +(defcustom mime-edit-message-default-max-lines 1000 + "*Default maximum lines of a message." + :group 'mime-edit + :type 'integer) -(defvar mime-edit-message-max-lines-alist +(defcustom mime-edit-message-max-lines-alist '((news-reply-mode . 500)) "Alist of major-mode vs maximum lines of a message. If it is not specified for a major-mode, -`mime-edit-message-default-max-lines' is used.") +`mime-edit-message-default-max-lines' is used." + :group 'mime-edit + :type 'list) (defconst mime-edit-split-ignored-field-regexp "\\(^Content-\\|^Subject:\\|^Mime-Version:\\)") @@ -689,7 +695,7 @@ Tspecials means any character that matches with it in header must be quoted.") )) mime-edit-menu-list))) ))) - + ;; modified by Steven L. Baur ;; 1995/12/6 (c.f. [tm-en:209]) (or (boundp 'mime-edit-popup-menu-for-xemacs) @@ -889,20 +895,20 @@ User customizable variables (not documented all of them): (if mime-edit-mode-flag (error "You are already editing a MIME message.") (setq mime-edit-mode-flag t) - + ;; Set transfer level into mode line ;; (setq mime-transfer-level-string (mime-encoding-name mime-transfer-level 'not-omit)) (force-mode-line-update) - + ;; Define menu for XEmacs. (if running-xemacs (mime-edit-define-menu-for-xemacs) ) - + (enable-invisible) - + ;; I don't care about saving these. (setq paragraph-start (regexp-or mime-edit-single-part-tag-regexp @@ -977,7 +983,7 @@ Charset is automatically obtained from the `charsets-mime-charset-alist'." ) (enriched-mode t) (if (boundp 'enriched-mode) - (enriched-mode nil) + (enriched-mode -1) )))))) (defun mime-edit-insert-file (file &optional verbose) @@ -1197,7 +1203,7 @@ Optional argument ENCODING specifies an encoding method such as base64." (t (goto-char (point-max)) )) - ;; Then search for the beginning. + ;; Then search for the beginning. (re-search-backward mime-edit-end-tag-regexp nil t) (or (looking-at mime-edit-beginning-tag-regexp) ;; Restore previous point. @@ -2015,18 +2021,19 @@ Content-Transfer-Encoding: 7bit (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") - )))) + (let (case-fold-search) + (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 @@ -2135,7 +2142,7 @@ and insert data encoded as ENCODING." ;;; @ multipart enclosure ;;; -(defun mime-edit-enclose-region (type beg end) +(defun mime-edit-enclose-region-internal (type beg end) (save-excursion (goto-char beg) (let ((current (point))) @@ -2154,40 +2161,40 @@ and insert data encoded as ENCODING." (defun mime-edit-enclose-quote-region (beg end) (interactive "*r") - (mime-edit-enclose-region "quote" beg end) + (mime-edit-enclose-region-internal 'quote beg end) ) (defun mime-edit-enclose-mixed-region (beg end) (interactive "*r") - (mime-edit-enclose-region "mixed" beg end) + (mime-edit-enclose-region-internal 'mixed beg end) ) (defun mime-edit-enclose-parallel-region (beg end) (interactive "*r") - (mime-edit-enclose-region "parallel" beg end) + (mime-edit-enclose-region-internal 'parallel beg end) ) (defun mime-edit-enclose-digest-region (beg end) (interactive "*r") - (mime-edit-enclose-region "digest" beg end) + (mime-edit-enclose-region-internal 'digest beg end) ) (defun mime-edit-enclose-alternative-region (beg end) (interactive "*r") - (mime-edit-enclose-region "alternative" beg end) + (mime-edit-enclose-region-internal 'alternative beg end) ) (defun mime-edit-enclose-signed-region (beg end) (interactive "*r") (if mime-edit-signing-type - (mime-edit-enclose-region "signed" beg end) + (mime-edit-enclose-region-internal 'signed beg end) (message "Please specify signing type.") )) (defun mime-edit-enclose-encrypted-region (beg end) (interactive "*r") (if mime-edit-signing-type - (mime-edit-enclose-region "encrypted" beg end) + (mime-edit-enclose-region-internal 'encrypted beg end) (message "Please specify encrypting type.") )) @@ -2206,7 +2213,7 @@ and insert data encoded as ENCODING." (defun mime-edit-set-split (arg) (interactive (list - (y-or-n-p "Do you want to enable split?") + (y-or-n-p "Do you want to enable split? ") )) (setq mime-edit-split-message arg) (if arg @@ -2251,7 +2258,7 @@ Optional TRANSFER-LEVEL is a number of transfer-level, 7 or 8." (defun mime-edit-set-sign (arg) (interactive (list - (y-or-n-p "Do you want to sign?") + (y-or-n-p "Do you want to sign? ") )) (if arg (if mime-edit-signing-type @@ -2270,7 +2277,7 @@ Optional TRANSFER-LEVEL is a number of transfer-level, 7 or 8." (defun mime-edit-set-encrypt (arg) (interactive (list - (y-or-n-p "Do you want to encrypt?") + (y-or-n-p "Do you want to encrypt? ") )) (if arg (if mime-edit-encrypting-type @@ -2332,7 +2339,7 @@ Content-Type: message/partial; id=%s; number=%d; total=%d\n%s\n" (or (cdr (assq major-mode mime-edit-message-max-lines-alist)) mime-edit-message-default-max-lines)) ) - (let* ((mime-edit-draft-file-name + (let* ((mime-edit-draft-file-name (or (buffer-file-name) (make-temp-name (expand-file-name "mime-draft" mime-temp-directory)))) @@ -2463,7 +2470,7 @@ Content-Type: message/partial; id=%s; number=%d; total=%d\n%s\n" (setq mail-header-separator separator) (make-local-variable 'mime-edit-buffer) (setq mime-edit-buffer the-buf) - + (run-hooks 'mime-edit-translate-hook) (mime-edit-translate-buffer) (goto-char (point-min))