diff lisp/replace.el @ 56520:feaa69f279aa

(occur-next-error): Call set-window-point. (occur-engine): Handle negative NLINES.
author Richard M. Stallman <rms@gnu.org>
date Sat, 24 Jul 2004 21:34:47 +0000
parents 84df5471b01e
children 6cfb1ef9200f c08afac24467
line wrap: on
line diff
--- a/lisp/replace.el	Sat Jul 24 20:56:59 2004 +0000
+++ b/lisp/replace.el	Sat Jul 24 21:34:47 2004 +0000
@@ -732,6 +732,8 @@
        #'previous-single-property-change
      #'next-single-property-change)
    "No more matches")
+  ;; In case the *Occur* buffer is visible in a nonselected window.
+  (set-window-point (get-buffer-window (current-buffer)) (point))
   (occur-mode-goto-occurrence))
 
 
@@ -1009,9 +1011,11 @@
 			      ;; concatenate them all together.
 			      (apply #'concat
 				     (nconc
-				      (occur-engine-add-prefix (nreverse (cdr (occur-accumulate-lines (- (1+ nlines)) keep-props))))
+				      (occur-engine-add-prefix (nreverse (cdr (occur-accumulate-lines (- (1+ (abs nlines))) keep-props))))
 				      (list out-line)
-				      (occur-engine-add-prefix (cdr (occur-accumulate-lines (1+ nlines) keep-props))))))))
+				      (if (> nlines 0)
+					  (occur-engine-add-prefix
+					   (cdr (occur-accumulate-lines (1+ nlines) keep-props)))))))))
 		      ;; Actually insert the match display data
 		      (with-current-buffer out-buf
 			(let ((beg (point))