diff options
| author | Chong Yidong | 2010-04-30 22:19:40 -0400 |
|---|---|---|
| committer | Chong Yidong | 2010-04-30 22:19:40 -0400 |
| commit | 84716442f070dbf91fd3a1db173e130b78de561a (patch) | |
| tree | ffc06855643a2a6a3566bdd48a9f0580f60f1708 | |
| parent | 07125a915e33a3a5cadea27f3f43647969ebf496 (diff) | |
| download | emacs-84716442f070dbf91fd3a1db173e130b78de561a.tar.gz emacs-84716442f070dbf91fd3a1db173e130b78de561a.zip | |
Avoid using trash for certain temp files (Bug#6070).
* server.el (server-sentinel, server-start, server-force-delete):
* jka-compr.el (jka-compr-partial-uncompress)
(jka-compr-call-process, jka-compr-write-region, jka-compr-load):
* epg.el (epg--make-temp-file, epg-decrypt-string)
(epg-encrypt-string, epg-verify-string, epg-sign-string):
* diff.el (diff-sentinel): Bind delete-by-moving-to-trash to nil
before deleting (Bug#6070).
| -rw-r--r-- | lisp/ChangeLog | 13 | ||||
| -rw-r--r-- | lisp/diff.el | 5 | ||||
| -rw-r--r-- | lisp/epg.el | 15 | ||||
| -rw-r--r-- | lisp/jka-compr.el | 16 | ||||
| -rw-r--r-- | lisp/server.el | 10 |
5 files changed, 42 insertions, 17 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 101ce8ec1d9..7cac121af0c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,16 @@ | |||
| 1 | 2010-05-01 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * server.el (server-sentinel, server-start, server-force-delete): | ||
| 4 | |||
| 5 | * jka-compr.el (jka-compr-partial-uncompress) | ||
| 6 | (jka-compr-call-process, jka-compr-write-region, jka-compr-load): | ||
| 7 | |||
| 8 | * epg.el (epg--make-temp-file, epg-decrypt-string) | ||
| 9 | (epg-encrypt-string, epg-verify-string, epg-sign-string): | ||
| 10 | |||
| 11 | * diff.el (diff-sentinel): Bind delete-by-moving-to-trash to nil | ||
| 12 | before deleting (Bug#6070). | ||
| 13 | |||
| 1 | 2010-05-01 Stefan Monnier <monnier@iro.umontreal.ca> | 14 | 2010-05-01 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 15 | ||
| 3 | * bindings.el (mode-line-abbrev-mode, mode-line-auto-fill-mode): | 16 | * bindings.el (mode-line-abbrev-mode, mode-line-auto-fill-mode): |
diff --git a/lisp/diff.el b/lisp/diff.el index 0206c17e770..37e52baaaac 100644 --- a/lisp/diff.el +++ b/lisp/diff.el | |||
| @@ -64,8 +64,9 @@ | |||
| 64 | "Code run when the diff process exits. | 64 | "Code run when the diff process exits. |
| 65 | CODE is the exit code of the process. It should be 0 only if no diffs | 65 | CODE is the exit code of the process. It should be 0 only if no diffs |
| 66 | were found." | 66 | were found." |
| 67 | (if diff-old-temp-file (delete-file diff-old-temp-file)) | 67 | (let (delete-by-moving-to-trash) |
| 68 | (if diff-new-temp-file (delete-file diff-new-temp-file)) | 68 | (if diff-old-temp-file (delete-file diff-old-temp-file)) |
| 69 | (if diff-new-temp-file (delete-file diff-new-temp-file))) | ||
| 69 | (save-excursion | 70 | (save-excursion |
| 70 | (goto-char (point-max)) | 71 | (goto-char (point-max)) |
| 71 | (let ((inhibit-read-only t)) | 72 | (let ((inhibit-read-only t)) |
diff --git a/lisp/epg.el b/lisp/epg.el index 9fde76d5f85..668043ebeb7 100644 --- a/lisp/epg.el +++ b/lisp/epg.el | |||
| @@ -1898,7 +1898,8 @@ You can then use `write-region' to write new data into the file." | |||
| 1898 | ;; Cleanup the tempfile. | 1898 | ;; Cleanup the tempfile. |
| 1899 | (and tempfile | 1899 | (and tempfile |
| 1900 | (file-exists-p tempfile) | 1900 | (file-exists-p tempfile) |
| 1901 | (delete-file tempfile)) | 1901 | (let (delete-by-moving-to-trash) |
| 1902 | (delete-file tempfile))) | ||
| 1902 | ;; Cleanup the tempdir. | 1903 | ;; Cleanup the tempdir. |
| 1903 | (and tempdir | 1904 | (and tempdir |
| 1904 | (file-directory-p tempdir) | 1905 | (file-directory-p tempdir) |
| @@ -1998,7 +1999,8 @@ If PLAIN is nil, it returns the result as a string." | |||
| 1998 | (epg-read-output context)) | 1999 | (epg-read-output context)) |
| 1999 | (epg-delete-output-file context) | 2000 | (epg-delete-output-file context) |
| 2000 | (if (file-exists-p input-file) | 2001 | (if (file-exists-p input-file) |
| 2001 | (delete-file input-file)) | 2002 | (let (delete-by-moving-to-trash) |
| 2003 | (delete-file input-file))) | ||
| 2002 | (epg-reset context)))) | 2004 | (epg-reset context)))) |
| 2003 | 2005 | ||
| 2004 | (defun epg-start-verify (context signature &optional signed-text) | 2006 | (defun epg-start-verify (context signature &optional signed-text) |
| @@ -2095,7 +2097,8 @@ successful verification." | |||
| 2095 | (epg-delete-output-file context) | 2097 | (epg-delete-output-file context) |
| 2096 | (if (and input-file | 2098 | (if (and input-file |
| 2097 | (file-exists-p input-file)) | 2099 | (file-exists-p input-file)) |
| 2098 | (delete-file input-file)) | 2100 | (let (delete-by-moving-to-trash) |
| 2101 | (delete-file input-file))) | ||
| 2099 | (epg-reset context)))) | 2102 | (epg-reset context)))) |
| 2100 | 2103 | ||
| 2101 | (defun epg-start-sign (context plain &optional mode) | 2104 | (defun epg-start-sign (context plain &optional mode) |
| @@ -2202,7 +2205,8 @@ Otherwise, it makes a cleartext signature." | |||
| 2202 | (epg-read-output context)) | 2205 | (epg-read-output context)) |
| 2203 | (epg-delete-output-file context) | 2206 | (epg-delete-output-file context) |
| 2204 | (if input-file | 2207 | (if input-file |
| 2205 | (delete-file input-file)) | 2208 | (let (delete-by-moving-to-trash) |
| 2209 | (delete-file input-file))) | ||
| 2206 | (epg-reset context)))) | 2210 | (epg-reset context)))) |
| 2207 | 2211 | ||
| 2208 | (defun epg-start-encrypt (context plain recipients | 2212 | (defun epg-start-encrypt (context plain recipients |
| @@ -2322,7 +2326,8 @@ If RECIPIENTS is nil, it performs symmetric encryption." | |||
| 2322 | (epg-read-output context)) | 2326 | (epg-read-output context)) |
| 2323 | (epg-delete-output-file context) | 2327 | (epg-delete-output-file context) |
| 2324 | (if input-file | 2328 | (if input-file |
| 2325 | (delete-file input-file)) | 2329 | (let (delete-by-moving-to-trash) |
| 2330 | (delete-file input-file))) | ||
| 2326 | (epg-reset context)))) | 2331 | (epg-reset context)))) |
| 2327 | 2332 | ||
| 2328 | (defun epg-start-export-keys (context keys) | 2333 | (defun epg-start-export-keys (context keys) |
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index 34ffcc90a76..6df57d710e1 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el | |||
| @@ -181,7 +181,9 @@ to keep: LEN chars starting BEG chars from the beginning." | |||
| 181 | null-device)) | 181 | null-device)) |
| 182 | jka-compr-acceptable-retval-list) | 182 | jka-compr-acceptable-retval-list) |
| 183 | (jka-compr-error prog args infile message err-file)) | 183 | (jka-compr-error prog args infile message err-file)) |
| 184 | (jka-compr-delete-temp-file err-file))) | 184 | (let (delete-by-moving-to-trash) |
| 185 | (delete-file err-file)))) | ||
| 186 | |||
| 185 | ;; Run the uncompression program directly. | 187 | ;; Run the uncompression program directly. |
| 186 | ;; We get the whole file and must delete what we don't want. | 188 | ;; We get the whole file and must delete what we don't want. |
| 187 | (jka-compr-call-process prog message infile t nil args)) | 189 | (jka-compr-call-process prog message infile t nil args)) |
| @@ -222,7 +224,8 @@ to keep: LEN chars starting BEG chars from the beginning." | |||
| 222 | ""))) | 224 | ""))) |
| 223 | jka-compr-acceptable-retval-list) | 225 | jka-compr-acceptable-retval-list) |
| 224 | (jka-compr-error prog args infile message err-file)) | 226 | (jka-compr-error prog args infile message err-file)) |
| 225 | (jka-compr-delete-temp-file err-file))) | 227 | (let (delete-by-moving-to-trash) |
| 228 | (delete-file err-file)))) | ||
| 226 | (or (eq 0 | 229 | (or (eq 0 |
| 227 | (apply 'call-process | 230 | (apply 'call-process |
| 228 | prog infile (if (stringp output) temp output) | 231 | prog infile (if (stringp output) temp output) |
| @@ -248,9 +251,6 @@ There should be no more than seven characters after the final `/'." | |||
| 248 | "This routine will return the name of a new file." | 251 | "This routine will return the name of a new file." |
| 249 | (make-temp-file jka-compr-temp-name-template)) | 252 | (make-temp-file jka-compr-temp-name-template)) |
| 250 | 253 | ||
| 251 | (defalias 'jka-compr-delete-temp-file 'delete-file) | ||
| 252 | |||
| 253 | |||
| 254 | (defun jka-compr-write-region (start end file &optional append visit) | 254 | (defun jka-compr-write-region (start end file &optional append visit) |
| 255 | (let* ((filename (expand-file-name file)) | 255 | (let* ((filename (expand-file-name file)) |
| 256 | (visit-file (if (stringp visit) (expand-file-name visit) filename)) | 256 | (visit-file (if (stringp visit) (expand-file-name visit) filename)) |
| @@ -337,7 +337,8 @@ There should be no more than seven characters after the final `/'." | |||
| 337 | (and append can-append) 'dont)) | 337 | (and append can-append) 'dont)) |
| 338 | (erase-buffer)) ) | 338 | (erase-buffer)) ) |
| 339 | 339 | ||
| 340 | (jka-compr-delete-temp-file temp-file) | 340 | (let (delete-by-moving-to-trash) |
| 341 | (delete-file temp-file)) | ||
| 341 | 342 | ||
| 342 | (and | 343 | (and |
| 343 | compress-message | 344 | compress-message |
| @@ -603,7 +604,8 @@ There should be no more than seven characters after the final `/'." | |||
| 603 | (setq file (file-name-sans-extension file))) | 604 | (setq file (file-name-sans-extension file))) |
| 604 | (setcar l file))) | 605 | (setcar l file))) |
| 605 | 606 | ||
| 606 | (jka-compr-delete-temp-file local-copy)) | 607 | (let (delete-by-moving-to-trash) |
| 608 | (delete-file local-copy))) | ||
| 607 | 609 | ||
| 608 | t)) | 610 | t)) |
| 609 | 611 | ||
diff --git a/lisp/server.el b/lisp/server.el index d36b99cc5b6..56819112639 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -344,7 +344,9 @@ If CLIENT is non-nil, add a description of it to the logged message." | |||
| 344 | ;; for possible servers before doing anything, so it *should* be ours. | 344 | ;; for possible servers before doing anything, so it *should* be ours. |
| 345 | (and (process-contact proc :server) | 345 | (and (process-contact proc :server) |
| 346 | (eq (process-status proc) 'closed) | 346 | (eq (process-status proc) 'closed) |
| 347 | (ignore-errors (delete-file (process-get proc :server-file)))) | 347 | (ignore-errors |
| 348 | (let (delete-by-moving-to-trash) | ||
| 349 | (delete-file (process-get proc :server-file))))) | ||
| 348 | (server-log (format "Status changed to %s: %s" (process-status proc) msg) proc) | 350 | (server-log (format "Status changed to %s: %s" (process-status proc) msg) proc) |
| 349 | (server-delete-client proc)) | 351 | (server-delete-client proc)) |
| 350 | 352 | ||
| @@ -517,7 +519,9 @@ To force-start a server, do \\[server-force-delete] and then | |||
| 517 | ;; Delete the socket files made by previous server invocations. | 519 | ;; Delete the socket files made by previous server invocations. |
| 518 | (if (not (eq t (server-running-p server-name))) | 520 | (if (not (eq t (server-running-p server-name))) |
| 519 | ;; Remove any leftover socket or authentication file | 521 | ;; Remove any leftover socket or authentication file |
| 520 | (ignore-errors (delete-file server-file)) | 522 | (ignore-errors |
| 523 | (let (delete-by-moving-to-trash) | ||
| 524 | (delete-file server-file))) | ||
| 521 | (setq server-mode nil) ;; already set by the minor mode code | 525 | (setq server-mode nil) ;; already set by the minor mode code |
| 522 | (display-warning | 526 | (display-warning |
| 523 | 'server | 527 | 'server |
| @@ -600,7 +604,7 @@ NAME defaults to `server-name'. With argument, ask for NAME." | |||
| 600 | server-auth-dir | 604 | server-auth-dir |
| 601 | server-socket-dir)))) | 605 | server-socket-dir)))) |
| 602 | (condition-case nil | 606 | (condition-case nil |
| 603 | (progn | 607 | (let (delete-by-moving-to-trash) |
| 604 | (delete-file file) | 608 | (delete-file file) |
| 605 | (message "Connection file %S deleted" file)) | 609 | (message "Connection file %S deleted" file)) |
| 606 | (file-error | 610 | (file-error |