changeset 111717:5b0bb82d5f67

nnimap.el (nnimap-last-response-string): Fix last unfolding fix.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Thu, 25 Nov 2010 23:43:16 +0000
parents f6563e4356cb
children 641811f5af6b
files lisp/gnus/ChangeLog lisp/gnus/nnimap.el
diffstat 2 files changed, 21 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Thu Nov 25 23:20:19 2010 +0000
+++ b/lisp/gnus/ChangeLog	Thu Nov 25 23:43:16 2010 +0000
@@ -7,6 +7,7 @@
 
 	* nnimap.el (nnimap-unfold-quoted-lines): Refactor out.
 	(nnimap-last-response-string): Unfold quoted lines, if they exist.
+	(nnimap-last-response-string): Fix last unfolding fix.
 
 2010-11-25  Katsumi Yamaoka  <yamaoka@jpl.org>
 
--- a/lisp/gnus/nnimap.el	Thu Nov 25 23:20:19 2010 +0000
+++ b/lisp/gnus/nnimap.el	Thu Nov 25 23:43:16 2010 +0000
@@ -180,7 +180,14 @@
 	  (when (eobp)
 	    (return)))
 	(setq article (match-string 1))
-	(nnimap-unfold-quoted-lines)
+	;; Unfold quoted {number} strings.
+	(while (re-search-forward "[^]][ (]{\\([0-9]+\\)}\r?\n"
+				  (1+ (line-end-position)) t)
+	  (setq size (string-to-number (match-string 1)))
+	  (delete-region (+ (match-beginning 0) 2) (point))
+	  (setq string (buffer-substring (point) (+ (point) size)))
+	  (delete-region (point) (+ (point) size))
+	  (insert (format "%S" string)))
 	(setq bytes (nnimap-get-length)
 	      lines nil)
 	(beginning-of-line)
@@ -212,12 +219,13 @@
 
 (defun nnimap-unfold-quoted-lines ()
   ;; Unfold quoted {number} strings.
-  (while (re-search-forward "[^]][ (]{\\([0-9]+\\)}\r\n"
-			    (1+ (line-end-position)) t)
-    (setq size (string-to-number (match-string 1)))
-    (delete-region (+ (match-beginning 0) 2) (point))
-    (setq string (delete-region (point) (+ (point) size)))
-    (insert (format "%S" string))))
+  (let (size string)
+    (while (re-search-forward " {\\([0-9]+\\)}\r?\n" nil t)
+      (setq size (string-to-number (match-string 1)))
+      (delete-region (1+ (match-beginning 0)) (point))
+      (setq string (buffer-substring (point) (+ (point) size)))
+      (delete-region (point) (+ (point) size))
+      (insert (format "%S" string)))))
 
 (defun nnimap-get-length ()
   (and (re-search-forward "{\\([0-9]+\\)}" (line-end-position) t)
@@ -1607,11 +1615,11 @@
     (let ((end (point)))
       ;; Unfold quoted {num} lines, if they exist.
       (when (search-backward "}" nil t)
-	(save-excursion
-	  (save-restriction
-	    (narrow-to-region (point-min) end)
-	    (goto-char (point-min))
-	    (nnimap-unfold-quoted-lines))))
+	(save-restriction
+	  (narrow-to-region (point-min) end)
+	  (goto-char (point-min))
+	  (nnimap-unfold-quoted-lines)
+	  (goto-char (setq end (point-max)))))
       (forward-line -1)
       (when (not (bobp))
 	(forward-line -1)