From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Nick Dokos Newsgroups: gmane.emacs.bugs Subject: bug#8827: Problem in url-cache Date: Wed, 08 Jun 2011 19:35:45 -0400 Message-ID: <24461.1307576145@alphaville.americas.hpqcorp.net> Reply-To: nicholas.dokos@hp.com NNTP-Posting-Host: lo.gmane.org X-Trace: dough.gmane.org 1307576252 26880 80.91.229.12 (8 Jun 2011 23:37:32 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 8 Jun 2011 23:37:32 +0000 (UTC) Cc: Julien Danjou , nicholas.dokos@hp.com To: 8827@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jun 09 01:37:27 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QUSJT-0002Cu-0w for geb-bug-gnu-emacs@m.gmane.org; Thu, 09 Jun 2011 01:37:27 +0200 Original-Received: from localhost ([::1]:33749 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QUSJS-0002Ia-0t for geb-bug-gnu-emacs@m.gmane.org; Wed, 08 Jun 2011 19:37:26 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:59238) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QUSJA-0002IS-2D for bug-gnu-emacs@gnu.org; Wed, 08 Jun 2011 19:37:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QUSJ5-0000S1-46 for bug-gnu-emacs@gnu.org; Wed, 08 Jun 2011 19:37:08 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:54289) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QUSJ5-0000Rx-1P for bug-gnu-emacs@gnu.org; Wed, 08 Jun 2011 19:37:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1QUSJ4-0004xM-8z; Wed, 08 Jun 2011 19:37:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Nick Dokos Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 08 Jun 2011 23:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 8827 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.130757616618989 (code B ref -1); Wed, 08 Jun 2011 23:37:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 8 Jun 2011 23:36:06 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QUSI9-0004wD-Cy for submit@debbugs.gnu.org; Wed, 08 Jun 2011 19:36:05 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QUSI7-0004vk-0A for submit@debbugs.gnu.org; Wed, 08 Jun 2011 19:36:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QUSI0-00006S-J5 for submit@debbugs.gnu.org; Wed, 08 Jun 2011 19:35:57 -0400 Original-Received: from lists.gnu.org ([140.186.70.17]:56123) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QUSI0-00006O-Al for submit@debbugs.gnu.org; Wed, 08 Jun 2011 19:35:56 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:59012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QUSHy-0002Fw-Mf for bug-gnu-emacs@gnu.org; Wed, 08 Jun 2011 19:35:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QUSHt-00005g-9j for bug-gnu-emacs@gnu.org; Wed, 08 Jun 2011 19:35:54 -0400 Original-Received: from g1t0028.austin.hp.com ([15.216.28.35]:12453) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QUSHs-00005M-KV for bug-gnu-emacs@gnu.org; Wed, 08 Jun 2011 19:35:48 -0400 Original-Received: from g1t0038.austin.hp.com (g1t0038.austin.hp.com [16.236.32.44]) by g1t0028.austin.hp.com (Postfix) with ESMTP id 96DD71C700; Wed, 8 Jun 2011 23:35:46 +0000 (UTC) Original-Received: from alphaville.americas.hpqcorp.net (alphaville.americas.hpqcorp.net [16.117.225.242]) by g1t0038.austin.hp.com (Postfix) with ESMTP id 1EE0C3047A; Wed, 8 Jun 2011 23:35:45 +0000 (UTC) Original-Received: by alphaville.americas.hpqcorp.net (Postfix, from userid 1000) id 5E71EE114B; Wed, 8 Jun 2011 19:35:45 -0400 (EDT) Original-Received: from alphaville.americas.hpqcorp.net (localhost [127.0.0.1]) by alphaville.americas.hpqcorp.net (Postfix) with ESMTP id 4A722E0B82; Wed, 8 Jun 2011 19:35:45 -0400 (EDT) X-Mailer: MH-E 8.2; nmh 1.3; GNU Emacs 24.0.50 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Wed, 08 Jun 2011 19:37:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:47048 Archived-At: I was chasing down some problems I was having with Julien Danjou's google-weather. The blow-by-blow description can be found in the following threads on the emacs and orgmode mailing lists: http://thread.gmane.org/gmane.emacs.help/81302 http://thread.gmane.org/gmane.emacs.orgmode/42565 This bug report (and possible patch) concern one aspect of this: google-weather uses the url package to retrieve icons in GIF format (but the problem may arise from any kind of binary data) from the server and caches them locally for 12 hours by default. It does that by calling url-store-in-cache: (defun url-store-in-cache (&optional buff) "Store buffer BUFF in the cache." (with-current-buffer (get-buffer (or buff (current-buffer))) (let ((fname (url-cache-create-filename (url-view-url t)))) (if (url-cache-prepare fname) (let ((coding-system-for-write 'binary)) (write-region (point-min) (point-max) fname nil 5)))))) While the cache is valid, it then fetches the cached data by calling url-cache-extract: (defun url-cache-extract (fnam) "Extract FNAM from the local disk cache." (erase-buffer) (insert-file-contents-literally fnam)) But it seems that in a multibyte context, what url-store-in-cache stores and what url-cache-extract retrieves are not identical: the former stores a sequence of bytes as they come from the network and the latter may combine individual bytes into multibyte entities. My workaround for this problem is --8<---------------cut here---------------start------------->8--- diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el index 1615920..80d7702 100644 --- a/lisp/url/url-cache.el +++ b/lisp/url/url-cache.el @@ -192,6 +192,7 @@ Very fast if you have an `md5' primitive function, suitably fast otherwise." (defun url-cache-extract (fnam) "Extract FNAM from the local disk cache." (erase-buffer) + (set-buffer-multibyte nil) (insert-file-contents-literally fnam)) (defun url-cache-expired (url &optional expire-time) --8<---------------cut here---------------end--------------->8--- It seems to work satisfactorily for google-weather. I don't know whether it causes problems in other ways. Thanks, Nick