# HG changeset patch # User Katsumi Yamaoka # Date 1290728596 0 # Node ID 5b0bb82d5f67dca938e565bda61aa6fa9765a0de # Parent f6563e4356cb283f41cd4a61af9cfa840b85f7e5 nnimap.el (nnimap-last-response-string): Fix last unfolding fix. diff -r f6563e4356cb -r 5b0bb82d5f67 lisp/gnus/ChangeLog --- 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 diff -r f6563e4356cb -r 5b0bb82d5f67 lisp/gnus/nnimap.el --- 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)