From: Lars Ingebrigtsen Date: Mon, 6 Feb 2012 21:37:56 +0000 (+0100) Subject: Add extra checks before expiring the URL cache X-Git-Tag: emacs-pretest-24.0.94~274 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7dd679eb09f65d0a83e14168b005ffc8270e7d05;p=emacs.git Add extra checks before expiring the URL cache (url-cache-prune-cache): Check that the directory exists before trying to delete it. --- diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 4e748fbd99e..f4cca618b49 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,6 +1,8 @@ 2012-02-06 Lars Ingebrigtsen * url-cache.el (url-cache-prune-cache): New function. + (url-cache-prune-cache): Check that the directory exists before + trying to delete it. * url.el (url-retrieve-number-of-calls): New variable. (url-retrieve-internal): Use it to expire the cache once in a diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el index 8fec2495675..6559de4deb7 100644 --- a/lisp/url/url-cache.el +++ b/lisp/url/url-cache.el @@ -216,24 +216,26 @@ considered \"expired\"." (let ((current-time (current-time)) (total-files 0) (deleted-files 0)) - (dolist (file (directory-files (or directory url-cache-directory) t)) - (unless (member (file-name-nondirectory file) '("." "..")) - (setq total-files (1+ total-files)) - (cond - ((file-directory-p file) - (when (url-cache-prune-cache file) - (setq deleted-files (1+ deleted-files)))) - ((time-less-p - (time-add - (nth 5 (file-attributes file)) - (seconds-to-time url-cache-expire-time)) - current-time) - (delete-file file) - (setq deleted-files (1+ deleted-files)))))) - (if (< deleted-files total-files) - nil - (delete-directory directory) - t))) + (setq directory (or directory url-cache-directory)) + (when (file-exists-p directory) + (dolist (file (directory-files directory t)) + (unless (member (file-name-nondirectory file) '("." "..")) + (setq total-files (1+ total-files)) + (cond + ((file-directory-p file) + (when (url-cache-prune-cache file) + (setq deleted-files (1+ deleted-files)))) + ((time-less-p + (time-add + (nth 5 (file-attributes file)) + (seconds-to-time url-cache-expire-time)) + current-time) + (delete-file file) + (setq deleted-files (1+ deleted-files)))))) + (if (< deleted-files total-files) + nil + (delete-directory directory) + t)))) (provide 'url-cache)