(semi-modules-to-compile): Add `mime-mac' if running with Mac OS X.
[elisp/semi.git] / pgg-pgp5.el
index f4cfedc..034758f 100644 (file)
 
 ;; 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.
 
 ;;; Code:
 
+(require 'mel) ; binary-to-text-funcall, binary-write-decoded-region
 (eval-when-compile (require 'pgg))
 
 (defgroup pgg-pgp5 ()
@@ -82,9 +83,7 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
            (luna-make-entity 'pgg-scheme-pgp5))))
 
 (defun pgg-pgp5-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-pgp5-extra-args
@@ -103,11 +102,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")))
@@ -204,14 +202,13 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
 
 (luna-define-method pgg-scheme-verify-region ((scheme pgg-scheme-pgp5)
                                              start end &optional signature)
-  (let* ((basename (expand-file-name "pgg" temporary-file-directory))
-        (orig-file (make-temp-name basename))
-        (args '("+verbose=1" "+batchmode=1" "+language=us"))
-        (orig-mode (default-file-modes)))
+  (let ((orig-file (make-temp-file "pgg"))
+       (args '("+verbose=1" "+batchmode=1" "+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")))
@@ -239,8 +236,7 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
 (luna-define-method pgg-scheme-snarf-keys-region ((scheme pgg-scheme-pgp5)
                                                  start end)
   (let* ((pgg-pgp5-user-id (or pgg-pgp5-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=1" "+language=us" "-a"
                key-file)))