From f8edc67ee2346ad2a569bd0575208a2504cbc616 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 3 Jan 2008 09:52:45 +0000 Subject: [PATCH] (occur-context-lines): New subroutine, broken out of occur-engine. (occur-engine): Call it. --- lisp/ChangeLog | 6 ++++++ lisp/replace.el | 28 ++++++++++++++++++---------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 06972d33e23..da4dd53eda3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2008-01-03 Richard Stallman + + * replace.el (occur-context-lines): New subroutine, + broken out of occur-engine. + (occur-engine): Call it. + 2008-01-03 Alexandre Julliard * vc-git.el (vc-git--ls-files-state): New function. diff --git a/lisp/replace.el b/lisp/replace.el index b76c64085c2..8bf6da30386 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -1246,16 +1246,9 @@ See also `multi-occur'." (if (= nlines 0) ;; The simple display style out-line - ;; The complex multi-line display - ;; style. Generate a list of lines, - ;; concatenate them all together. - (apply #'concat - (nconc - (occur-engine-add-prefix (nreverse (cdr (occur-accumulate-lines (- (1+ (abs nlines))) keep-props)))) - (list out-line) - (if (> nlines 0) - (occur-engine-add-prefix - (cdr (occur-accumulate-lines (1+ nlines) keep-props))))))))) + ;; The complex multi-line display style. + (occur-context-lines out-line nlines keep-props) + ))) ;; Actually insert the match display data (with-current-buffer out-buf (let ((beg (point)) @@ -1293,6 +1286,21 @@ See also `multi-occur'." ;; Return the number of matches globalcount))) +;; Generate context display for occur. +;; OUT-LINE is the line where the match is. +;; NLINES and KEEP-PROPS are args to occur-engine. +;; Generate a list of lines, add prefixes to all but OUT-LINE, +;; then concatenate them all together. +(defun occur-context-lines (out-line nlines keep-props) + (apply #'concat + (nconc + (occur-engine-add-prefix + (nreverse (cdr (occur-accumulate-lines + (- (1+ (abs nlines))) keep-props)))) + (list out-line) + (if (> nlines 0) + (occur-engine-add-prefix + (cdr (occur-accumulate-lines (1+ nlines) keep-props))))))) ;; It would be nice to use \\[...], but there is no reasonable way ;; to make that display both SPC and Y. -- 2.39.2