nnimap.el (nnimap-wait-for-response): Wait for results in a more secure manner.
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 31 Jan 2011 04:41:38 +0000 (04:41 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Mon, 31 Jan 2011 04:41:38 +0000 (04:41 +0000)
gnus-art.el (article-update-date-lapsed): Try to avoid having point move around by not using save-window-excursion.  It seems to work...

lisp/gnus/ChangeLog
lisp/gnus/gnus-art.el
lisp/gnus/nnimap.el

index c1f687e..8e3db59 100644 (file)
@@ -1,3 +1,11 @@
+2011-01-31  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * nnimap.el (nnimap-wait-for-response): Wait for results in a more
+       secure manner.
+
+       * gnus-art.el (article-update-date-lapsed): Try to avoid having point
+       move around by not using save-window-excursion.  It seems to work...
+
 2011-01-31  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-art.el (article-make-date-line): Work for user-defined format.
index 71e9e18..0fdd6bd 100644 (file)
@@ -3646,31 +3646,31 @@ function and want to see what the date was before converting."
 (defun article-update-date-lapsed ()
   "Function to be run from a timer to update the lapsed time line."
   (save-match-data
-    (let (deactivate-mark)
-      (save-window-excursion
-       (ignore-errors
-        (walk-windows
-         (lambda (w)
-           (set-buffer (window-buffer w))
-           (when (eq major-mode 'gnus-article-mode)
-             (let ((old-line (count-lines (point-min) (point)))
-                   (old-column (current-column)))
-               (goto-char (point-min))
-               (while (re-search-forward "^Date:" nil t)
-                 (let ((type (get-text-property (match-beginning 0) 'gnus-date-type)))
-                   (when (memq type '(lapsed combined-lapsed user-format))
-                     (save-excursion
-                       (article-date-ut type t (match-beginning 0)))
-                     (forward-line 1))))
-               (goto-char (point-min))
-               (when (> old-column 0)
-                 (setq old-line (1- old-line)))
-               (forward-line old-line)
-               (end-of-line)
-               (when (> (current-column) old-column)
-                 (beginning-of-line)
-                 (forward-char old-column)))))
-         nil 'visible))))))
+    (let ((buffer (current-buffer)))
+      (ignore-errors
+       (walk-windows
+        (lambda (w)
+          (set-buffer (window-buffer w))
+          (when (eq major-mode 'gnus-article-mode)
+            (let ((old-line (count-lines (point-min) (point)))
+                  (old-column (current-column)))
+              (goto-char (point-min))
+              (while (re-search-forward "^Date:" nil t)
+                (let ((type (get-text-property (match-beginning 0) 'gnus-date-type)))
+                  (when (memq type '(lapsed combined-lapsed user-format))
+                    (save-excursion
+                      (article-date-ut type t (match-beginning 0)))
+                    (forward-line 1))))
+              (goto-char (point-min))
+              (when (> old-column 0)
+                (setq old-line (1- old-line)))
+              (forward-line old-line)
+              (end-of-line)
+              (when (> (current-column) old-column)
+                (beginning-of-line)
+                (forward-char old-column)))))
+        nil 'visible))
+      (set-buffer buffer))))
 
 (defun gnus-start-date-timer (&optional n)
   "Start a timer to update the Date headers in the article buffers.
index 04e4bd6..005f60b 100644 (file)
@@ -1589,17 +1589,14 @@ textual parts.")
          (goto-char (point-max))
          (while (and (setq openp (memq (process-status process)
                                        '(open run)))
-                     (not (re-search-backward
-                           (format "^%d .*\n" sequence)
-                           (if nnimap-streaming
-                               (max (point-min)
-                                    (min
-                                     (- (point) 500)
-                                     (save-excursion
-                                       (forward-line -3)
-                                       (point))))
-                             (point-min))
-                           t)))
+                     (progn
+                       ;; Skip past any "*" lines that the server has
+                       ;; output.
+                       (while (and (not (bobp))
+                                   (progn
+                                     (forward-line -1)
+                                     (looking-at "\\*"))))
+                       (not (looking-at (format "%d " sequence)))))
            (when messagep
              (nnheader-message 7 "nnimap read %dk" (/ (buffer-size) 1000)))
            (nnheader-accept-process-output process)