Update copyright header.
[elisp/semi.git] / pgg-pgp.el
index 4f3fbd7..c64713e 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-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,10 +87,10 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
       (setenv "PGPPASSFD" "0"))
     (unwind-protect
        (progn
-         (as-binary-process
-          (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")))
@@ -172,10 +171,11 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
           (format "PGP passphrase for %s: " pgg-pgp-user-id)
           (pgg-scheme-lookup-key scheme pgg-pgp-user-id 'sign)))
         (args
-         (list (if clearsign "-fast" "-fbast")
+         (list (if clearsign "-fast" "-fbas")
                "+verbose=1" "+language=us" "+batchmode"
                "-u" pgg-pgp-user-id)))
-    (pgg-pgp-process-region start end passphrase pgg-pgp-program args)
+    (pgg-as-lbt start end 'CRLF
+      (pgg-pgp-process-region start end passphrase pgg-pgp-program args))
     (pgg-process-when-success
       (goto-char (point-min))
       (when (re-search-forward "^-+BEGIN PGP" nil t);XXX
@@ -191,14 +191,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))
-        (args '("+verbose=1" "+batchmode" "+language=us"))
-        (orig-mode (default-file-modes)))
+  (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)
-         (write-region-as-binary 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")))
@@ -229,12 +228,12 @@ 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)))
-    (write-region-as-raw-text-CRLF start end key-file)
+    (let ((coding-system-for-write 'raw-text-dos))
+      (write-region start end key-file))
     (pgg-pgp-process-region start end nil pgg-pgp-program args)
     (delete-file key-file)
     (pgg-process-when-success nil)))