From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/71026 Path: news.gmane.org!not-for-mail From: Julien Danjou Newsgroups: gmane.emacs.gnus.general Subject: [PATCH] (gnus-html-schedule-image-fetching): Fetch all images in parallel. Date: Sat, 18 Sep 2010 23:05:27 +0200 Message-ID: <1284843927-943-1-git-send-email-julien@danjou.info> NNTP-Posting-Host: lo.gmane.org X-Trace: dough.gmane.org 1284843976 561 80.91.229.12 (18 Sep 2010 21:06:16 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 18 Sep 2010 21:06:16 +0000 (UTC) Cc: Julien Danjou To: ding@gnus.org Original-X-From: ding-owner+M19399@lists.math.uh.edu Sat Sep 18 23:06:14 2010 Return-path: Envelope-to: ding-account@gmane.org Original-Received: from util0.math.uh.edu ([129.7.128.18]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Ox4br-0002QE-6n for ding-account@gmane.org; Sat, 18 Sep 2010 23:06:11 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by util0.math.uh.edu with smtp (Exim 4.63) (envelope-from ) id 1Ox4bq-0003UB-0C; Sat, 18 Sep 2010 16:06:10 -0500 Original-Received: from mx1.math.uh.edu ([129.7.128.32]) by util0.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1Ox4bo-0003U0-Lp for ding@lists.math.uh.edu; Sat, 18 Sep 2010 16:06:08 -0500 Original-Received: from quimby.gnus.org ([80.91.231.51]) by mx1.math.uh.edu with esmtp (Exim 4.72) (envelope-from ) id 1Ox4bk-00048Z-EN for ding@lists.math.uh.edu; Sat, 18 Sep 2010 16:06:08 -0500 Original-Received: from prometheus.naquadah.org ([212.85.154.174] helo=mx1.naquadah.org) by quimby.gnus.org with esmtp (Exim 3.36 #1 (Debian)) id 1Ox4bj-0007E0-00 for ; Sat, 18 Sep 2010 23:06:03 +0200 Original-Received: by mx1.naquadah.org (Postfix, from userid 8) id F2A0B5C125; Sat, 18 Sep 2010 23:05:32 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on prometheus.naquadah.org X-Spam-Level: X-Spam-Status: No, score=-1.4 required=4.5 tests=ALL_TRUSTED,BAYES_00, URIBL_RHS_DOB autolearn=no version=3.3.1 Original-Received: from keller.adm.naquadah.org (unknown [IPv6:2a01:e35:2e39:e900:222:faff:fe9d:ce44]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.naquadah.org (Postfix) with ESMTPSA id 8BFC45C125; Sat, 18 Sep 2010 23:05:28 +0200 (CEST) Original-Received: from jd by keller.adm.naquadah.org with local (Exim 4.72) (envelope-from ) id 1Ox4b9-0000Fs-T7; Sat, 18 Sep 2010 23:05:27 +0200 X-Mailer: git-send-email 1.7.1 X-Spam-Score: -0.4 (/) List-ID: Precedence: bulk Xref: news.gmane.org gmane.emacs.gnus.general:71026 Archived-At: Signed-off-by: Julien Danjou --- lisp/ChangeLog | 5 +++++ lisp/gnus-html.el | 46 ++++++++++++++++++++++------------------------ 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 12a7a07..468f621 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2010-09-18 Julien Danjou + + * gnus-html.el (gnus-html-schedule-image-fetching): Fetch all images in + parallel. + 2010-09-18 Lars Magne Ingebrigtsen * nnimap.el (nnimap-update-info): When doing partial marks update, get diff --git a/lisp/gnus-html.el b/lisp/gnus-html.el index 40b74c2..b2ecb5c 100644 --- a/lisp/gnus-html.el +++ b/lisp/gnus-html.el @@ -297,34 +297,32 @@ fit these criteria." (defun gnus-html-schedule-image-fetching (buffer images) (gnus-message 8 "gnus-html-schedule-image-fetching: buffer %s, images %s" buffer images) - (url-retrieve (caar images) - 'gnus-html-image-fetched - (list buffer images))) + (dolist (image images) + (url-retrieve (car image) + 'gnus-html-image-fetched + (list buffer image)))) (defun gnus-html-image-id (url) (expand-file-name (sha1 url) gnus-html-cache-directory)) -(defun gnus-html-image-fetched (status buffer images) - (let ((spec (pop images))) - (when (and (buffer-live-p buffer) - ;; If the position of the marker is 1, then that - ;; means that the text it was in has been deleted; - ;; i.e., that the user has selected a different - ;; article before the image arrived. - (not (= (marker-position (cadr spec)) (point-min)))) - (let ((file (gnus-html-image-id (car spec)))) - ;; Search the start of the image data - (search-forward "\n\n") - ;; Write region (image) silently - (write-region (point) (point-max) file nil 1) - (kill-buffer) - (with-current-buffer buffer - (let ((inhibit-read-only t) - (string (buffer-substring (cadr spec) (caddr spec)))) - (delete-region (cadr spec) (caddr spec)) - (gnus-html-put-image file (cadr spec) string)))) - (when images - (gnus-html-schedule-image-fetching buffer images))))) +(defun gnus-html-image-fetched (status buffer image) + (when (and (buffer-live-p buffer) + ;; If the position of the marker is 1, then that + ;; means that the text it was in has been deleted; + ;; i.e., that the user has selected a different + ;; article before the image arrived. + (not (= (marker-position (cadr image)) (point-min)))) + (let ((file (gnus-html-image-id (car image)))) + ;; Search the start of the image data + (search-forward "\n\n") + ;; Write region (image) silently + (write-region (point) (point-max) file nil 1) + (kill-buffer) + (with-current-buffer buffer + (let ((inhibit-read-only t) + (string (buffer-substring (cadr image) (caddr image)))) + (delete-region (cadr image) (caddr image)) + (gnus-html-put-image file (cadr image) string)))))) (defun gnus-html-put-image (file point string &optional url alt-text) (when (gnus-graphic-display-p) -- 1.7.1