From 7dd679eb09f65d0a83e14168b005ffc8270e7d05 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Mon, 6 Feb 2012 22:37:56 +0100 Subject: [PATCH] Add extra checks before expiring the URL cache (url-cache-prune-cache): Check that the directory exists before trying to delete it. --- lisp/url/ChangeLog | 2 ++ lisp/url/url-cache.el | 38 ++++++++++++++++++++------------------ 2 files changed, 22 insertions(+), 18 deletions(-) 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) -- 2.39.5