X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/ce1d7b61f12dcc1b67535b68d9b0655b45fcadb6..d43b5e84066afe4ee7100ab957438a1c41141492:/lisp/epa-file.el diff --git a/lisp/epa-file.el b/lisp/epa-file.el index 6041234459..20d34f8222 100644 --- a/lisp/epa-file.el +++ b/lisp/epa-file.el @@ -1,5 +1,5 @@ ;;; epa-file.el --- the EasyPG Assistant, transparent file encryption -*- lexical-binding: t -*- -;; Copyright (C) 2006-2013 Free Software Foundation, Inc. +;; Copyright (C) 2006-2014 Free Software Foundation, Inc. ;; Author: Daiki Ueno ;; Keywords: PGP, GnuPG @@ -211,7 +211,8 @@ encryption is used." (recipients (cond ((listp epa-file-encrypt-to) epa-file-encrypt-to) - ((stringp epa-file-encrypt-to) (list epa-file-encrypt-to))))) + ((stringp epa-file-encrypt-to) (list epa-file-encrypt-to)))) + buffer) (epg-context-set-passphrase-callback context (cons #'epa-file-passphrase-callback-function @@ -230,8 +231,18 @@ encryption is used." (unless start (setq start (point-min) end (point-max))) - (epa-file--encode-coding-string (buffer-substring start end) - coding-system)) + (setq buffer (current-buffer)) + (with-temp-buffer + (insert-buffer-substring buffer start end) + ;; Translate the region according to + ;; `buffer-file-format', as `write-region' would. + ;; We can't simply do `write-region' (into a + ;; temporary file) here, since it writes out + ;; decrypted contents. + (format-encode-buffer (with-current-buffer buffer + buffer-file-format)) + (epa-file--encode-coding-string (buffer-string) + coding-system))) (if (or (eq epa-file-select-keys t) (and (null epa-file-select-keys) (not (local-variable-p 'epa-file-encrypt-to