Gnus development mailing list
 help / color / mirror / Atom feed
* [PATCH] Fix edge cases with no data being returned and Courier eccentricity.
@ 2008-12-23 17:47 Michael Olson
  2008-12-23 18:18 ` Michael Olson
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Olson @ 2008-12-23 17:47 UTC (permalink / raw)
  To: ding

* 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.
---

NOTE: This patch applies to Emacs CVS HEAD.

 lisp/gnus/nnimap.el |    9 +++++----
 lisp/net/imap.el    |    3 ++-
 2 files changed, 7 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..3c51895 100644
--- a/lisp/net/imap.el
+++ b/lisp/net/imap.el
@@ -2493,7 +2493,8 @@ 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 (progn (skip-chars-forward " \t")
+		    (not (eq (char-after) ?\))))
 	(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 |
`-------------------------------------------------------'



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Fix edge cases with no data being returned and Courier eccentricity.
  2008-12-23 17:47 [PATCH] Fix edge cases with no data being returned and Courier eccentricity Michael Olson
@ 2008-12-23 18:18 ` Michael Olson
  2008-12-23 19:02   ` jidanni
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Olson @ 2008-12-23 18:18 UTC (permalink / raw)
  To: ding

Michael Olson <mwolson@gnu.org> writes:

> * 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.

Don't apply this just yet.  There appears to be some weird side effect
with new messages, possibly due to the debugging I was doing at the time
messing up some cache.

-- 
|       Michael Olson  |  FSF Associate Member #652     |
| http://mwolson.org/  |  Hobbies: Lisp, HCoop          |
| Projects: Emacs, Muse, ERC, EMMS, ErBot, DVC, Planner |
`-------------------------------------------------------'



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Fix edge cases with no data being returned and Courier eccentricity.
  2008-12-23 18:18 ` Michael Olson
@ 2008-12-23 19:02   ` jidanni
  0 siblings, 0 replies; 3+ messages in thread
From: jidanni @ 2008-12-23 19:02 UTC (permalink / raw)
  To: mwolson; +Cc: ding

BTW, I'm not sure gnus is affected by this, but you better watch out:
#464016 - clients will truncate on bad multipart/digest RFC822.SIZE
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=464016



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-12-23 19:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-23 17:47 [PATCH] Fix edge cases with no data being returned and Courier eccentricity Michael Olson
2008-12-23 18:18 ` Michael Olson
2008-12-23 19:02   ` jidanni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).