add iso-8859-14 also
[elisp/semi.git] / pgg-pgp.el
index 33f2481..d34445b 100644 (file)
@@ -25,6 +25,7 @@
 
 ;;; Code:
 
+(require 'mel) ; binary-to-text-funcall, binary-write-decoded-region
 (eval-when-compile (require 'pgg))
 
 (defgroup pgg-pgp ()
@@ -67,9 +68,7 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
            (luna-make-entity 'pgg-scheme-pgp))))
 
 (defun pgg-pgp-process-region (start end passphrase program args)
-  (let* ((errors-file-name
-         (concat temporary-file-directory
-                 (make-temp-name "pgg-errors")))
+  (let* ((errors-file-name (make-temp-file "pgg-errors"))
         (args
          (append args
                  pgg-pgp-extra-args
@@ -88,11 +87,10 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
       (setenv "PGPPASSFD" "0"))
     (unwind-protect
        (progn
-         (let ((coding-system-for-read 'binary)
-               (coding-system-for-write 'binary))
-           (setq process
-                 (apply #'start-process-shell-command "*PGP*" output-buffer
-                        program args)))
+         (setq process
+               (apply #'binary-funcall
+                      #'start-process-shell-command "*PGP*" output-buffer
+                      program args))
          (set-process-sentinel process #'ignore)
          (when passphrase
            (process-send-string process (concat passphrase "\n")))
@@ -192,14 +190,13 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
 
 (luna-define-method pgg-scheme-verify-region ((scheme pgg-scheme-pgp)
                                              start end &optional signature)
-  (let* ((basename (expand-file-name "pgg" temporary-file-directory))
-        (orig-file (make-temp-name basename))
+  (let* ((orig-file (make-temp-file "pgg"))
         (args '("+verbose=1" "+batchmode" "+language=us"))
         (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))
     (when (stringp signature)
       (copy-file signature (setq signature (concat orig-file ".asc")))
@@ -230,8 +227,7 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
 (luna-define-method pgg-scheme-snarf-keys-region ((scheme pgg-scheme-pgp)
                                                  start end)
   (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id))
-        (basename (expand-file-name "pgg" temporary-file-directory))
-        (key-file (make-temp-name basename))
+        (key-file (make-temp-file "pgg"))
         (args
          (list "+verbose=1" "+batchmode" "+language=us" "-kaf"
                key-file)))