From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Julien Danjou Newsgroups: gmane.emacs.devel Subject: [PATCH 1/5] url-cache.el (url-cache-expired): Handle any type of cached object Date: Wed, 15 Sep 2010 10:51:24 +0200 Message-ID: <1284540688-7912-2-git-send-email-julien@danjou.info> References: <1284540688-7912-1-git-send-email-julien@danjou.info> NNTP-Posting-Host: lo.gmane.org X-Trace: dough.gmane.org 1284540745 24959 80.91.229.12 (15 Sep 2010 08:52:25 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 15 Sep 2010 08:52:25 +0000 (UTC) Cc: Julien Danjou To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Sep 15 10:52:23 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Ovnj3-00079l-Rd for ged-emacs-devel@m.gmane.org; Wed, 15 Sep 2010 10:52:22 +0200 Original-Received: from localhost ([127.0.0.1]:37629 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ovnj3-0001w1-8Z for ged-emacs-devel@m.gmane.org; Wed, 15 Sep 2010 04:52:21 -0400 Original-Received: from [140.186.70.92] (port=58716 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OvniQ-0001hg-9L for emacs-devel@gnu.org; Wed, 15 Sep 2010 04:51:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OvniN-00020S-P5 for emacs-devel@gnu.org; Wed, 15 Sep 2010 04:51:42 -0400 Original-Received: from coquelicot-s.easter-eggs.com ([213.215.37.94]:43168) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OvniN-0001zO-FZ for emacs-devel@gnu.org; Wed, 15 Sep 2010 04:51:39 -0400 Original-Received: from cigue.easter-eggs.fr (cigue.easter-eggs.fr [10.0.0.33]) by rose.easter-eggs.fr (Postfix) with ESMTPS id 4A9891427B; Wed, 15 Sep 2010 10:51:35 +0200 (CEST) Original-Received: from jdanjou by cigue.easter-eggs.fr with local (Exim 4.72) (envelope-from ) id 1OvniK-00024R-JO; Wed, 15 Sep 2010 10:51:36 +0200 X-Mailer: git-send-email 1.7.1 In-Reply-To: <1284540688-7912-1-git-send-email-julien@danjou.info> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:130183 Archived-At: Signed-off-by: Julien Danjou --- lisp/url/ChangeLog | 1 + lisp/url/url-cache.el | 27 ++++++++++++--------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 7726f6c..a5e5c26 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,6 +1,7 @@ 2010-09-14 Julien Danjou * url-cache (url-store-in-cache): Make `buff' argument really optional. + (url-cache-expired): Handle any type of cached object. 2010-09-14 Glenn Morris diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el index 3a6f00d..015a1ff 100644 --- a/lisp/url/url-cache.el +++ b/lisp/url/url-cache.el @@ -180,21 +180,18 @@ Very fast if you have an `md5' primitive function, suitably fast otherwise." (insert-file-contents-literally fnam)) ;;;###autoload -(defun url-cache-expired (url mod) - "Return t if a cached file has expired." - (let* ((urlobj (if (vectorp url) url (url-generic-parse-url url))) - (type (url-type urlobj))) - (cond - (url-standalone-mode - (not (file-exists-p (url-cache-create-filename url)))) - ((string= type "http") - t) - ((member type '("file" "ftp")) - (if (or (equal mod '(0 0)) (not mod)) - t - (or (> (nth 0 mod) (nth 0 (current-time))) - (> (nth 1 mod) (nth 1 (current-time)))))) - (t nil)))) +(defun url-cache-expired (url expire-time) + "Return t if a cached URL is more than EXPIRE-TIME old." + (cond (url-standalone-mode + (not (file-exists-p (url-cache-create-filename url)))) + (t (let ((cache-time (url-is-cached url))) + (if cache-time + (time-less-p + (time-add + (url-is-cached url) + (seconds-to-time expire-time)) + (current-time)) + t))))) (provide 'url-cache) -- 1.7.1