aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2006-11-24 18:51:40 +0000
committerStefan Monnier2006-11-24 18:51:40 +0000
commit3559aa8b6bb7848a1a48ca4fbaff6f848e9dbea7 (patch)
treef207332ef6c7908174483125b755485b4abbf2cf
parent053f45dd627fbbf0735029272cb77e2e1f44ed0b (diff)
downloademacs-3559aa8b6bb7848a1a48ca4fbaff6f848e9dbea7.tar.gz
emacs-3559aa8b6bb7848a1a48ca4fbaff6f848e9dbea7.zip
(pgg-pgp-process-region): Change `args' from a list of
strings to a single string. Quote `errors-file-name'. (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region, pgg-pgp-sign-region) (pgg-pgp-verify-region, pgg-pgp-insert-key, pgg-pgp-snarf-keys-region): Adjust calls. Use `shell-quote-argument'.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/pgg-pgp.el50
2 files changed, 30 insertions, 26 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1ed2f1bea43..c5f0c9aa9bb 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,11 @@
12006-11-24 Stefan Monnier <monnier@iro.umontreal.ca> 12006-11-24 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * pgg-pgp.el (pgg-pgp-process-region): Change `args' from a list of
4 strings to a single string. Quote `errors-file-name'.
5 (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region, pgg-pgp-sign-region)
6 (pgg-pgp-verify-region, pgg-pgp-insert-key, pgg-pgp-snarf-keys-region):
7 Adjust calls. Use `shell-quote-argument'.
8
3 * international/mule.el (load-with-code-conversion) 9 * international/mule.el (load-with-code-conversion)
4 (with-category-table): Use with-current-buffer. 10 (with-category-table): Use with-current-buffer.
5 (after-insert-file-set-coding): Use restore-buffer-modified-p. 11 (after-insert-file-set-coding): Use restore-buffer-modified-p.
diff --git a/lisp/pgg-pgp.el b/lisp/pgg-pgp.el
index e53a0c2c867..aa0cfcf7cb7 100644
--- a/lisp/pgg-pgp.el
+++ b/lisp/pgg-pgp.el
@@ -63,9 +63,9 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
63(defun pgg-pgp-process-region (start end passphrase program args) 63(defun pgg-pgp-process-region (start end passphrase program args)
64 (let* ((errors-file-name (pgg-make-temp-file "pgg-errors")) 64 (let* ((errors-file-name (pgg-make-temp-file "pgg-errors"))
65 (args 65 (args
66 (append args 66 (concat args
67 pgg-pgp-extra-args 67 pgg-pgp-extra-args
68 (list (concat "2>" errors-file-name)))) 68 " 2>" (shell-quote-argument errors-file-name)))
69 (shell-file-name pgg-pgp-shell-file-name) 69 (shell-file-name pgg-pgp-shell-file-name)
70 (shell-command-switch pgg-pgp-shell-command-switch) 70 (shell-command-switch pgg-pgp-shell-command-switch)
71 (process-environment process-environment) 71 (process-environment process-environment)
@@ -83,9 +83,8 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
83 (let ((coding-system-for-read 'binary) 83 (let ((coding-system-for-read 'binary)
84 (coding-system-for-write 'binary)) 84 (coding-system-for-write 'binary))
85 (setq process 85 (setq process
86 (apply #'funcall 86 (start-process-shell-command "*PGP*" output-buffer
87 #'start-process-shell-command "*PGP*" output-buffer 87 (concat program " " args))))
88 program args)))
89 (set-process-sentinel process #'ignore) 88 (set-process-sentinel process #'ignore)
90 (when passphrase 89 (when passphrase
91 (process-send-string process (concat passphrase "\n"))) 90 (process-send-string process (concat passphrase "\n")))
@@ -142,15 +141,14 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
142 pgg-pgp-user-id) 141 pgg-pgp-user-id)
143 pgg-pgp-user-id)))) 142 pgg-pgp-user-id))))
144 (args 143 (args
145 (append 144 (concat
146 `("+encrypttoself=off +verbose=1" "+batchmode" 145 "+encrypttoself=off +verbose=1 +batchmode +language=us -fate "
147 "+language=us" "-fate" 146 (if recipients
148 ,@(if recipients 147 (mapconcat 'shell-quote-argument
149 (mapcar (lambda (rcpt) (concat "\"" rcpt "\"")) 148 (append recipients
150 (append recipients 149 (if pgg-encrypt-for-me
151 (if pgg-encrypt-for-me 150 (list pgg-pgp-user-id)))))
152 (list pgg-pgp-user-id)))))) 151 (if sign (concat " -s -u " (shell-quote-argument pgg-pgp-user-id))))))
153 (if sign '("-s" "-u" pgg-pgp-user-id)))))
154 (pgg-pgp-process-region start end nil pgg-pgp-program args) 152 (pgg-pgp-process-region start end nil pgg-pgp-program args)
155 (pgg-process-when-success nil))) 153 (pgg-process-when-success nil)))
156 154
@@ -166,7 +164,7 @@ passphrase cache or user."
166 (pgg-read-passphrase 164 (pgg-read-passphrase
167 (format "PGP passphrase for %s: " pgg-pgp-user-id) key))) 165 (format "PGP passphrase for %s: " pgg-pgp-user-id) key)))
168 (args 166 (args
169 '("+verbose=1" "+batchmode" "+language=us" "-f"))) 167 "+verbose=1 +batchmode +language=us -f"))
170 (pgg-pgp-process-region start end passphrase pgg-pgp-program args) 168 (pgg-pgp-process-region start end passphrase pgg-pgp-program args)
171 (pgg-process-when-success 169 (pgg-process-when-success
172 (if pgg-cache-passphrase 170 (if pgg-cache-passphrase
@@ -184,9 +182,9 @@ passphrase cache or user."
184 (format "PGP passphrase for %s: " pgg-pgp-user-id) 182 (format "PGP passphrase for %s: " pgg-pgp-user-id)
185 (pgg-pgp-lookup-key pgg-pgp-user-id 'sign)))) 183 (pgg-pgp-lookup-key pgg-pgp-user-id 'sign))))
186 (args 184 (args
187 (list (if clearsign "-fast" "-fbast") 185 (concat (if clearsign "-fast" "-fbast")
188 "+verbose=1" "+language=us" "+batchmode" 186 " +verbose=1 +language=us +batchmode"
189 "-u" pgg-pgp-user-id))) 187 " -u " (shell-quote-argument pgg-pgp-user-id))))
190 (pgg-pgp-process-region start end passphrase pgg-pgp-program args) 188 (pgg-pgp-process-region start end passphrase pgg-pgp-program args)
191 (pgg-process-when-success 189 (pgg-process-when-success
192 (goto-char (point-min)) 190 (goto-char (point-min))
@@ -204,7 +202,7 @@ passphrase cache or user."
204(defun pgg-pgp-verify-region (start end &optional signature) 202(defun pgg-pgp-verify-region (start end &optional signature)
205 "Verify region between START and END as the detached signature SIGNATURE." 203 "Verify region between START and END as the detached signature SIGNATURE."
206 (let* ((orig-file (pgg-make-temp-file "pgg")) 204 (let* ((orig-file (pgg-make-temp-file "pgg"))
207 (args '("+verbose=1" "+batchmode" "+language=us")) 205 (args "+verbose=1 +batchmode +language=us")
208 (orig-mode (default-file-modes))) 206 (orig-mode (default-file-modes)))
209 (unwind-protect 207 (unwind-protect
210 (progn 208 (progn
@@ -216,8 +214,8 @@ passphrase cache or user."
216 (if (stringp signature) 214 (if (stringp signature)
217 (progn 215 (progn
218 (copy-file signature (setq signature (concat orig-file ".asc"))) 216 (copy-file signature (setq signature (concat orig-file ".asc")))
219 (setq args (append args (list signature orig-file)))) 217 (setq args (concat args " " (shell-quote-argument signature)))))
220 (setq args (append args (list orig-file)))) 218 (setq args (concat args " " (shell-quote-argument orig-file)))
221 (pgg-pgp-process-region (point)(point) nil pgg-pgp-program args) 219 (pgg-pgp-process-region (point)(point) nil pgg-pgp-program args)
222 (delete-file orig-file) 220 (delete-file orig-file)
223 (if signature (delete-file signature)) 221 (if signature (delete-file signature))
@@ -237,8 +235,8 @@ passphrase cache or user."
237 "Insert public key at point." 235 "Insert public key at point."
238 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) 236 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id))
239 (args 237 (args
240 (list "+verbose=1" "+batchmode" "+language=us" "-kxaf" 238 (concat "+verbose=1 +batchmode +language=us -kxaf "
241 (concat "\"" pgg-pgp-user-id "\"")))) 239 (shell-quote-argument pgg-pgp-user-id))))
242 (pgg-pgp-process-region (point)(point) nil pgg-pgp-program args) 240 (pgg-pgp-process-region (point)(point) nil pgg-pgp-program args)
243 (insert-buffer-substring pgg-output-buffer))) 241 (insert-buffer-substring pgg-output-buffer)))
244 242
@@ -247,8 +245,8 @@ passphrase cache or user."
247 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) 245 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id))
248 (key-file (pgg-make-temp-file "pgg")) 246 (key-file (pgg-make-temp-file "pgg"))
249 (args 247 (args
250 (list "+verbose=1" "+batchmode" "+language=us" "-kaf" 248 (concat "+verbose=1 +batchmode +language=us -kaf "
251 key-file))) 249 (shell-quote-argument key-file))))
252 (let ((coding-system-for-write 'raw-text-dos)) 250 (let ((coding-system-for-write 'raw-text-dos))
253 (write-region start end key-file)) 251 (write-region start end key-file))
254 (pgg-pgp-process-region start end nil pgg-pgp-program args) 252 (pgg-pgp-process-region start end nil pgg-pgp-program args)
@@ -257,5 +255,5 @@ passphrase cache or user."
257 255
258(provide 'pgg-pgp) 256(provide 'pgg-pgp)
259 257
260;;; arch-tag: 076b7801-37b2-49a6-97c3-218fdecde33c 258;; arch-tag: 076b7801-37b2-49a6-97c3-218fdecde33c
261;;; pgg-pgp.el ends here 259;;; pgg-pgp.el ends here