X-Git-Url: http://git.chise.org/gitweb/?p=elisp%2Fsemi.git;a=blobdiff_plain;f=smime.el;h=c5d09c955ab1c10e32fe6d8e24f815ee8621a105;hp=afa46f8245c44cd91849840c1c67178fffe34051;hb=HEAD;hpb=a28d01665b35970dac62ceed66ad1fe5cd0b8545 diff --git a/smime.el b/smime.el index afa46f8..c5d09c9 100644 --- a/smime.el +++ b/smime.el @@ -20,8 +20,8 @@ ;; 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: @@ -39,6 +39,8 @@ ;;; Code: (require 'path-util) +(require 'mel) +;; binary-funcall, binary-write-decoded-region, binary-insert-encoded-file (eval-when-compile (require 'static)) (defgroup smime () @@ -191,9 +193,7 @@ (pop files))))) (defun smime-process-region (start end program args) - (let* ((errors-file-name - (concat temporary-file-directory - (make-temp-name "smime-errors"))) + (let* ((errors-file-name (make-temp-file "smime-errors")) (args (append args (list (concat "2>" errors-file-name)))) (shell-file-name smime-shell-file-name) (shell-command-switch smime-shell-command-switch) @@ -202,11 +202,10 @@ (with-current-buffer (get-buffer-create smime-output-buffer) (buffer-disable-undo) (erase-buffer)) - (let ((coding-system-for-read 'binary) - (coding-system-for-write 'binary)) - (setq process - (apply #'start-process-shell-command "*S/MIME*" - smime-output-buffer program args))) + (setq process + (apply #'binary-funcall #'start-process-shell-command + "*S/MIME*" smime-output-buffer + program args)) (set-process-sentinel process 'ignore) (process-send-region process start end) (process-send-eof process) @@ -296,18 +295,17 @@ a detached signature." "Verify the current region between START and END. If the optional 3rd argument SIGNATURE is non-nil, it is treated as the detached signature of the current region." - (let* ((basename (expand-file-name "smime" temporary-file-directory)) - (orig-file (make-temp-name basename)) + (let* ((orig-file (make-temp-file "smime")) (orig-mode (default-file-modes))) (unwind-protect (progn (set-default-file-modes 448) - (binary-write-region start end orig-file)) + (binary-write-decoded-region start end orig-file)) (set-default-file-modes orig-mode)) (with-temp-buffer - (binary-insert-file-contents signature) + (binary-insert-encoded-file signature) (goto-char (point-max)) - (binary-insert-file-contents + (binary-insert-encoded-file (or (smime-find-certificate (smime-query-signer (point-min)(point-max))) (expand-file-name