;;; mml1991.el --- Old PGP message format (RFC 1991) support for MML
-;; Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Sascha Lüdecke <sascha@meta-x.de>,
;; Simon Josefsson <simon@josefsson.org> (Mailcrypt interface, Gnus glue)
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
(require 'cl)
(require 'mm-util))
+(defvar mc-pgp-always-sign)
+
(autoload 'quoted-printable-decode-region "qp")
(autoload 'quoted-printable-encode-region "qp")
(delete-region (point-min) (point)))
(mm-with-unibyte-current-buffer
(with-temp-buffer
- (flet ((gpg-encrypt-func
+ (flet ((gpg-encrypt-func
(sign plaintext ciphertext result recipients &optional
passphrase sign-with-key armor textmode)
(if sign
;; pgg wrapper
-(defvar pgg-output-buffer)
-(defvar pgg-errors-buffer)
+(eval-when-compile
+ (defvar pgg-default-user-id)
+ (defvar pgg-errors-buffer)
+ (defvar pgg-output-buffer))
(defun mml1991-pgg-sign (cont)
- (let (headers)
+ (let (headers cte)
;; Don't sign headers.
(goto-char (point-min))
(while (not (looking-at "^$"))
(setq headers (buffer-substring (point-min) (point)))
(forward-line) ;; skip header/body separator
(delete-region (point-min) (point)))
- (quoted-printable-decode-region (point-min) (point-max))
+ (when (string-match "^Content-Transfer-Encoding: \\(.+\\)" headers)
+ (setq cte (intern (match-string 1 headers))))
+ (mm-decode-content-transfer-encoding cte)
(unless (let ((pgg-default-user-id
- (or (message-options-get 'message-sender)
+ (or (message-options-get 'mml-sender)
pgg-default-user-id)))
(pgg-sign-region (point-min) (point-max) t))
(pop-to-buffer pgg-errors-buffer)
(error "Encrypt error"))
(delete-region (point-min) (point-max))
- (insert-buffer-substring pgg-output-buffer)
- (goto-char (point-min))
- (while (re-search-forward "\r+$" nil t)
- (replace-match "" t t))
- (quoted-printable-encode-region (point-min) (point-max))
- (goto-char (point-min))
- (if headers (insert headers))
- (insert "\n")
+ (mm-with-unibyte-current-buffer
+ (insert-buffer-substring pgg-output-buffer)
+ (goto-char (point-min))
+ (while (re-search-forward "\r+$" nil t)
+ (replace-match "" t t))
+ (mm-encode-content-transfer-encoding cte)
+ (goto-char (point-min))
+ (when headers
+ (insert headers))
+ (insert "\n"))
t))
(defun mml1991-pgg-encrypt (cont &optional sign)
- (let (headers)
+ (let (cte)
;; Strip MIME Content[^ ]: headers since it will be ASCII ARMOURED
(goto-char (point-min))
- (while (looking-at "^Content[^ ]+:") (forward-line))
+ (while (looking-at "^Content[^ ]+:")
+ (when (looking-at "^Content-Transfer-Encoding: \\(.+\\)")
+ (setq cte (intern (match-string 1))))
+ (forward-line))
(unless (bobp)
(delete-region (point-min) (point)))
+ (mm-decode-content-transfer-encoding cte)
(unless (pgg-encrypt-region
- (point-min) (point-max)
+ (point-min) (point-max)
(split-string
(or
(message-options-get 'message-recipients)
;; coding: iso-8859-1
;; End:
+;;; arch-tag: e542be18-ab28-4393-9b33-97fe9cf30706
;;; mml1991.el ends here