From: Lars Ingebrigtsen Date: Sat, 29 Jan 2011 02:29:38 +0000 (+0000) Subject: gnus-art.el (article-update-date-lapsed): Try a better way to really keep point at... X-Git-Tag: emacs-pretest-24.0.90~104^2~618^2~1322^2~88 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bc68bd3998b317499fb5df713470f78fbdf3a78d;p=emacs.git gnus-art.el (article-update-date-lapsed): Try a better way to really keep point at the "same place". --- diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 2f272e89ee3..40aa931e62f 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,8 @@ +2011-01-29 Lars Ingebrigtsen + + * gnus-art.el (article-update-date-lapsed): Try a better way to really + keep point at the "same place". + 2011-01-28 Lars Ingebrigtsen * gnus-sum.el (gnus-select-newsgroup): Don't try to alter the active diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index bde599c5f04..0a9446a061c 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -3692,28 +3692,22 @@ function and want to see what the date was before converting." (lambda (w) (set-buffer (window-buffer w)) (when (eq major-mode 'gnus-article-mode) - (let ((mark (point-marker)) - (old-point (point))) + (let ((old-line (count-lines (point-min) (point))) + (old-column (current-column))) (goto-char (point-min)) (when (re-search-forward "^X-Sent:\\|^Date:" nil t) - ;; If the point is on the Date line, then use that - ;; absolute position. Otherwise, use the mark. - ;; This will ensure that point stays at the "same - ;; place". - (when (or (< old-point (match-beginning 0)) - (> old-point (progn - (forward-line 1) - (while (and (not (eobp)) - (looking-at "X-Sent:\\|Date:")) - (forward-line)) - (point)))) - (setq old-point nil)) (when gnus-treat-date-combined-lapsed (article-date-combined-lapsed t)) (when gnus-treat-date-lapsed (article-date-lapsed t))) - (goto-char (or old-point (marker-position mark))) - (move-marker mark nil)))) + (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)))))) (defun gnus-start-date-timer (&optional n)