diff options
| author | Stefan Monnier | 2006-11-24 18:51:40 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2006-11-24 18:51:40 +0000 |
| commit | 3559aa8b6bb7848a1a48ca4fbaff6f848e9dbea7 (patch) | |
| tree | f207332ef6c7908174483125b755485b4abbf2cf | |
| parent | 053f45dd627fbbf0735029272cb77e2e1f44ed0b (diff) | |
| download | emacs-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/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/pgg-pgp.el | 50 |
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 @@ | |||
| 1 | 2006-11-24 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2006-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 |