aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Danjou2010-09-22 22:56:17 -0700
committerGlenn Morris2010-09-22 22:56:17 -0700
commit18d68e52f698880940afc3debd0072cb07e7e135 (patch)
treeef995204b8021eb3fbc28f37fdc6fab08e40a50b
parent7676efad0e6f8e90306950c8426a56928c4739e0 (diff)
downloademacs-18d68e52f698880940afc3debd0072cb07e7e135.tar.gz
emacs-18d68e52f698880940afc3debd0072cb07e7e135.zip
Small url-cache update.
* lisp/url/url-cache.el (url-cache-expire-time): New option. (url-cache-expired): Rewrite.
-rw-r--r--lisp/url/ChangeLog5
-rw-r--r--lisp/url/url-cache.el34
2 files changed, 24 insertions, 15 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 9bc9d3110f8..f19c639e930 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,8 @@
12010-09-23 Julien Danjou <julien@danjou.info>
2
3 * url-cache.el (url-cache-expire-time): New option.
4 (url-cache-expired): Rewrite.
5
12010-09-19 Julien Danjou <julien@danjou.info> 62010-09-19 Julien Danjou <julien@danjou.info>
2 7
3 * url-cache.el (url-fetch-from-cache): New function. 8 * url-cache.el (url-fetch-from-cache): New function.
diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el
index 28d0af761ea..834ad7c2530 100644
--- a/lisp/url/url-cache.el
+++ b/lisp/url/url-cache.el
@@ -32,6 +32,12 @@
32 :type 'directory 32 :type 'directory
33 :group 'url-file) 33 :group 'url-file)
34 34
35(defcustom url-cache-expire-time 3600
36 "Maximum time in seconds to keep the documents cached."
37 :version "24.1"
38 :type 'integer
39 :group 'url-cache)
40
35;; Cache manager 41;; Cache manager
36(defun url-cache-file-writable-p (file) 42(defun url-cache-file-writable-p (file)
37 "Follows the documentation of `file-writable-p', unlike `file-writable-p'." 43 "Follows the documentation of `file-writable-p', unlike `file-writable-p'."
@@ -186,21 +192,19 @@ Very fast if you have an `md5' primitive function, suitably fast otherwise."
186 (insert-file-contents-literally fnam)) 192 (insert-file-contents-literally fnam))
187 193
188;;;###autoload 194;;;###autoload
189(defun url-cache-expired (url mod) 195(defun url-cache-expired (url &optional expire-time)
190 "Return t if a cached file has expired." 196 "Return t if a cached URL is more than EXPIRE-TIME old.
191 (let* ((urlobj (if (vectorp url) url (url-generic-parse-url url))) 197If EXPIRE-TIME is not set, `url-cache-expire-time' is used instead."
192 (type (url-type urlobj))) 198 (cond (url-standalone-mode
193 (cond 199 (not (file-exists-p (url-cache-create-filename url))))
194 (url-standalone-mode 200 (t (let ((cache-time (url-is-cached url)))
195 (not (file-exists-p (url-cache-create-filename url)))) 201 (if cache-time
196 ((string= type "http") 202 (time-less-p
197 t) 203 (time-add
198 ((member type '("file" "ftp")) 204 (url-is-cached url)
199 (if (or (equal mod '(0 0)) (not mod)) 205 (seconds-to-time (or expire-time url-cache-expire-time)))
200 t 206 (current-time))
201 (or (> (nth 0 mod) (nth 0 (current-time))) 207 t)))))
202 (> (nth 1 mod) (nth 1 (current-time))))))
203 (t nil))))
204 208
205(provide 'url-cache) 209(provide 'url-cache)
206 210