diff options
author | Miles Bader <miles@gnu.org> | 2006-04-26 21:58:05 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2006-04-26 21:58:05 +0000 |
commit | 0565caebd9a781b845722fe8ea191eea90b45bb8 (patch) | |
tree | dcfd1d6be2e726bd6ea29bdb2a119f398156c296 /lisp/gnus/mml1991.el | |
parent | 8570ce80826e511612edc65b659466503c176b58 (diff) | |
download | emacs-0565caebd9a781b845722fe8ea191eea90b45bb8.tar.gz emacs-0565caebd9a781b845722fe8ea191eea90b45bb8.tar.bz2 emacs-0565caebd9a781b845722fe8ea191eea90b45bb8.zip |
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-249
Merge from gnus--rel--5.10
Patches applied:
* gnus--rel--5.10 (patch 91-95)
- Merge from emacs--devo--0
- Update from CVS
Diffstat (limited to 'lisp/gnus/mml1991.el')
-rw-r--r-- | lisp/gnus/mml1991.el | 86 |
1 files changed, 45 insertions, 41 deletions
diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el index 0c6bb675388..23953cd6208 100644 --- a/lisp/gnus/mml1991.el +++ b/lisp/gnus/mml1991.el @@ -229,23 +229,25 @@ (defvar pgg-output-buffer)) (defun mml1991-pgg-sign (cont) + ;; Make sure to load pgg.el before binding pgg-* variables. + (require 'pgg) (let ((pgg-text-mode t) + (pgg-default-user-id (or (message-options-get 'mml-sender) + pgg-default-user-id)) headers cte) ;; Don't sign headers. (goto-char (point-min)) - (while (not (looking-at "^$")) - (forward-line)) - (unless (eobp) ;; no headers? + (when (re-search-forward "^$" nil t) (setq headers (buffer-substring (point-min) (point))) - (forward-line) ;; skip header/body separator - (delete-region (point-min) (point))) - (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 'mml-sender) - pgg-default-user-id))) - (pgg-sign-region (point-min) (point-max) t)) + (save-restriction + (narrow-to-region (point-min) (point)) + (setq cte (mail-fetch-field "content-transfer-encoding"))) + (forward-line 1) + (delete-region (point-min) (point)) + (when cte + (setq cte (intern (downcase cte))) + (mm-decode-content-transfer-encoding cte))) + (unless (pgg-sign-region (point-min) (point-max) t) (pop-to-buffer pgg-errors-buffer) (error "Encrypt error")) (delete-region (point-min) (point-max)) @@ -254,7 +256,8 @@ (goto-char (point-min)) (while (re-search-forward "\r+$" nil t) (replace-match "" t t)) - (mm-encode-content-transfer-encoding cte) + (when cte + (mm-encode-content-transfer-encoding cte)) (goto-char (point-min)) (when headers (insert headers)) @@ -262,34 +265,35 @@ t)) (defun mml1991-pgg-encrypt (cont &optional sign) - (let ((pgg-text-mode t) - cte) - ;; Strip MIME Content[^ ]: headers since it will be ASCII ARMOURED - (goto-char (point-min)) - (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) - (split-string - (or - (message-options-get 'message-recipients) - (message-options-set 'message-recipients - (read-string "Recipients: "))) - "[ \f\t\n\r\v,]+") - sign) - (pop-to-buffer pgg-errors-buffer) - (error "Encrypt error")) - (delete-region (point-min) (point-max)) - ;;(insert "Content-Type: application/pgp-encrypted\n\n") - ;;(insert "Version: 1\n\n") - (insert "\n") - (insert-buffer-substring pgg-output-buffer) - t)) + (goto-char (point-min)) + (when (re-search-forward "^$" nil t) + (let ((cte (save-restriction + (narrow-to-region (point-min) (point)) + (mail-fetch-field "content-transfer-encoding")))) + ;; Strip MIME headers since it will be ASCII armoured. + (forward-line 1) + (delete-region (point-min) (point)) + (when cte + (mm-decode-content-transfer-encoding (intern (downcase cte)))))) + (unless (progn + ;; Make sure to load pgg.el before binding `pgg-text-mode'. + (require 'pgg) + (let ((pgg-text-mode t)) + (pgg-encrypt-region + (point-min) (point-max) + (split-string + (or + (message-options-get 'message-recipients) + (message-options-set 'message-recipients + (read-string "Recipients: "))) + "[ \f\t\n\r\v,]+") + sign))) + (pop-to-buffer pgg-errors-buffer) + (error "Encrypt error")) + (delete-region (point-min) (point-max)) + (insert "\n") + (insert-buffer-substring pgg-output-buffer) + t) ;;;###autoload (defun mml1991-encrypt (cont &optional sign) |