From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/67977 Path: news.gmane.org!not-for-mail From: Michael Olson Newsgroups: gmane.emacs.gnus.general Subject: [PATCH v2] Fix edge cases with no data being returned and Courier eccentricity. Date: Tue, 23 Dec 2008 10:39:50 -0800 Message-ID: <87lju6ag7d.fsf@grepfind.mwolson.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1230058020 6321 80.91.229.12 (23 Dec 2008 18:47:00 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 23 Dec 2008 18:47:00 +0000 (UTC) To: ding@gnus.org Original-X-From: ding-owner+M16423@lists.math.uh.edu Tue Dec 23 19:48:06 2008 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.50) id 1LFCIW-0001YK-Gw for ding-account@gmane.org; Tue, 23 Dec 2008 19:48:04 +0100 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 1LFCH4-0000fS-5g; Tue, 23 Dec 2008 12:46:34 -0600 Original-Received: from mx2.math.uh.edu ([129.7.128.33]) by util0.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1LFCAf-0000d1-0x for ding@lists.math.uh.edu; Tue, 23 Dec 2008 12:39:57 -0600 Original-Received: from quimby.gnus.org ([80.91.231.51]) by mx2.math.uh.edu with esmtp (Exim 4.69) (envelope-from ) id 1LFCAb-0004X5-TB for ding@lists.math.uh.edu; Tue, 23 Dec 2008 12:39:57 -0600 Original-Received: from deleuze.hcoop.net ([69.90.123.67] ident=Debian-exim) by quimby.gnus.org with esmtp (Exim 3.36 #1 (Debian)) id 1LFCAp-0003Xu-00 for ; Tue, 23 Dec 2008 19:40:07 +0100 Original-Received: from cpe-98-154-252-107.socal.res.rr.com ([98.154.252.107] helo=grepfind.mwolson.org) by deleuze.hcoop.net with esmtpsa (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from ) id 1LFCAa-0004fA-3R for ding@gnus.org; Tue, 23 Dec 2008 13:39:52 -0500 Original-Received: from mwolson by grepfind.mwolson.org with local (Exim 4.69) (envelope-from ) id 1LFCAY-0005yX-F9 for ding@gnus.org; Tue, 23 Dec 2008 10:39:50 -0800 X-Hashcash: 1:20:081223:ding@gnus.org::G0wmVFewRE6SAx1B:00007qxg Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEU1QytIVTlZY0dqc1N6 hGGJl3qZpZCtuKXsjxzFAAACW0lEQVR42l2UXXrqIBCGk67Aoe29Ac4CTPDcGwZ73wLdQDOuQLP9 8wHG9hT1Mc6bb/5jp7Xed92TVrqeCYfKRVc+XdfDbqbJ8TixG1UDu2a3xkf2H+z+A6Qn7Xk71AA8 kdJmZg4xpcTshgr2JQSurAswhwDFYQN9r4yxx1BIQqBTBbvqahw9hxRSLOBdFVA89TTOvgSoMaLf ABTWOg5Z8lLRNyD7x4WSVHU1DZurThn2HI9Oa561JhTSDUWxq64YqRlmrcdhA73y3rmJY1okotDT NzDO2XNGZPnS7A4b6NQ8foQFN2eJmEBR7Du1Q/DRh7R4O50BrGmu0F8i49Iya+ScvtDNqkADB8zD pwU9wTu9c8msdNYOO0JvYYyREd9xBOh7zSNc2WMZUYzIDHOpU0Kxe5o9o0eccsr5mNLcwHhC8DoM SQkJ5wbUxAdlbDELEpDbclc8sT2gV2HJIrj/si7hDgzPpY4sqxTV+pWkgt7EGesDIFWUnGuK7pkn erZoieCVZPGcG3jCJimLwS7IVZY4R3mvoNfzoCfOF0mIG1nna+TadAxzgF5u0b3JTaxcmZtCF1dn WSOv63oNl4U3BQCLXOQKWZIHUBWcUci6iuTL7eMOelVAKfp+NkA0kOElN3BbV26AiGZsXEqfa0EQ NtATvTAKCeHh7AEEi4knM6S3HwB2eo1zeZQ5fDbgNkCpbEwh8HUTqYDqwUhIG2NQ/k2WH+CVB9LK aINy0EeAvgF6KRK0wIaPiX8CioRNpQF7X/8EOnoAPpUvrX8DED7t8B/Bv8ErfnpSfxv4B9rx7BDd lxXRAAAAAElFTkSuQmCC Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEU2MSswMT5cXXJlX1CC hJObl4TMw7br49UydvpeAAACIUlEQVR42oXTTXObMBAG4FWJ7xKpczaYSa84fJw9doKvJLKUq6fA 8gtAf7+7CPwxnU537IsevYtWxmD+UfB/qAEEwN9Qg+KS8hFqkEqokEmIO6hBSHWrG0xtQhWG/FVy vUAtpo1RFHNFU2QCXg9jX8l7slVrD5/UKVLxIY4PySFOOOOBAlEYJ7R4oNUkiXdyAe4zA22hxIrh K4y4TfLOD474FLGHmvbQIgWug4g1w552HvhAtwklMKQJJ6K7yZWYYJPQER/WlZpAJA9tbokwmbfT LdG1y40QSjDA0icUAgQVoWS4NvixA7kD2JHAPchQQIDVB+7p13kAgI/eja3BDTwkxJPpnRuzoNqL O5CibNE5N+SNvYC4Szw3kFPC2aG/yNUVpCyDrOBWBM0EXx5+6ny0FHDd2/eFpzOfHl7ey7FiQDND 6uE0VGPufHmg+Rm+3bkzMzQTvPH1KHFyXcWHcv2SOJNIBad5t8MlYfQWpIyvYPs5Qa9JSvddLQF6 kJ7hnFLk1wwjPakO5nc320JQLkCf/Sqb/wbFRr66aw1p0HjQZg9PfrGz/fgbVjPkRstsGmKgi0Sd 5lgwZJk9gj/WaNC1Ji3wyFBoazIo7HJerF89lNq2KRQGJ2gLrEsseXLKdEf50hlLNGiLumoqBtsV qKFEnI6uES9lawkK2+XYyQJZMmtKbKoWGRA1tukzchXYldhhQ0A98UwPDCbQqKkn5vgHawMQkYJi arwAAAAASUVORK5CYII= User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) X-Spam-Score: -2.6 (--) List-ID: Precedence: bulk Xref: news.gmane.org gmane.emacs.gnus.general:67977 Archived-At: * lisp/gnus/nnimap.el (nnimap-retrieve-headers-progress): Handle edge case where `headers' is nil. This can occur if the IMAP server does not have permissions to read messages from a folder, but can write new messages to the folder. (nnimap-request-article-part): Do not insert `data' if it is nil. * lisp/net/imap.el (imap-parse-fetch): Courier can insert spurious blank characters which will confuse `read', so skip past them. --- This applies to Emacs CVS HEAD. This version backs up one char in order to appease nnimap-forward. lisp/gnus/nnimap.el | 9 +++++---- lisp/net/imap.el | 4 +++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index e0bb5ad..a38d354 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -620,7 +620,7 @@ If EXAMINE is non-nil the group is selected read-only." ;; to make it more clear. (mm-with-unibyte-buffer (buffer-disable-undo) - (insert headers) + (when headers (insert headers)) (let ((head (nnheader-parse-naked-head uid))) (mail-header-set-number head uid) (mail-header-set-chars head chars) @@ -950,9 +950,10 @@ function is generally only called when Gnus is shutting down." (erase-buffer) (let ((data (imap-fetch article part prop nil nnimap-server-buffer))) - (insert (nnimap-demule (if detail - (nth 2 (car data)) - data)))) + (when data + (insert (nnimap-demule (if detail + (nth 2 (car data)) + data))))) (nnheader-ms-strip-cr) (gnus-message 10 "nnimap: Fetching (part of) article %d from %s...done" diff --git a/lisp/net/imap.el b/lisp/net/imap.el index 6726bfd..85afffc 100644 --- a/lisp/net/imap.el +++ b/lisp/net/imap.el @@ -2493,7 +2493,9 @@ Return nil if no complete line has arrived." (when (eq (char-after) ?\() (let (uid flags envelope internaldate rfc822 rfc822header rfc822text rfc822size body bodydetail bodystructure flags-empty) - (while (not (eq (char-after) ?\))) + (while (let ((moved (skip-chars-forward " \t"))) + (prog1 (not (eq (char-after) ?\))) + (unless (= moved 0) (backward-char)))) (imap-forward) (let ((token (read (current-buffer)))) (imap-forward) -- 1.5.6.3 -- | Michael Olson | FSF Associate Member #652 | | http://mwolson.org/ | Hobbies: Lisp, HCoop | | Projects: Emacs, Muse, ERC, EMMS, ErBot, DVC, Planner | `-------------------------------------------------------'