aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2010-04-30 22:19:40 -0400
committerChong Yidong2010-04-30 22:19:40 -0400
commit84716442f070dbf91fd3a1db173e130b78de561a (patch)
treeffc06855643a2a6a3566bdd48a9f0580f60f1708
parent07125a915e33a3a5cadea27f3f43647969ebf496 (diff)
downloademacs-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/ChangeLog13
-rw-r--r--lisp/diff.el5
-rw-r--r--lisp/epg.el15
-rw-r--r--lisp/jka-compr.el16
-rw-r--r--lisp/server.el10
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 @@
12010-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
12010-05-01 Stefan Monnier <monnier@iro.umontreal.ca> 142010-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.
65CODE is the exit code of the process. It should be 0 only if no diffs 65CODE is the exit code of the process. It should be 0 only if no diffs
66were found." 66were 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