Commit 0ef84fc8 authored by Juri Linkov's avatar Juri Linkov

* replace.el (occur-accumulate-lines): Move occur-engine related

functions `occur-accumulate-lines' and `occur-engine-add-prefix'
to be located after `occur-engine'.
parent bd924a5d
......@@ -2,6 +2,12 @@
* dired-x.el (dired-omit-mode): Doc fix.
2010-03-30 Juri Linkov <juri@jurta.org>
* replace.el (occur-accumulate-lines): Move occur-engine related
functions `occur-accumulate-lines' and `occur-engine-add-prefix'
to be located after `occur-engine'.
2010-03-30 Juri Linkov <juri@jurta.org>
Make occur handle multi-line matches cleanly with context.
......
......@@ -1005,23 +1005,6 @@ which means to discard all text properties."
:group 'matching
:version "22.1")
(defun occur-accumulate-lines (count &optional keep-props pt)
(save-excursion
(when pt
(goto-char pt))
(let ((forwardp (> count 0))
result beg end moved)
(while (not (or (zerop count)
(if forwardp
(eobp)
(and (bobp) (not moved)))))
(setq count (+ count (if forwardp -1 1)))
(setq beg (line-beginning-position)
end (line-end-position))
(push (occur-engine-line beg end keep-props) result)
(setq moved (= 0 (forward-line (if forwardp 1 -1)))))
(nreverse result))))
(defun occur-read-primary-args ()
(list (read-regexp "List lines matching regexp"
(car regexp-history))
......@@ -1175,12 +1158,6 @@ See also `multi-occur'."
(set-buffer-modified-p nil)
(run-hooks 'occur-hook)))))))
(defun occur-engine-add-prefix (lines)
(mapcar
#'(lambda (line)
(concat " :" line "\n"))
lines))
(defun occur-engine (regexp buffers out-buf nlines case-fold-search
title-face prefix-face match-face keep-props)
(with-current-buffer out-buf
......@@ -1356,6 +1333,29 @@ See also `multi-occur'."
str)
(buffer-substring-no-properties beg end)))
(defun occur-engine-add-prefix (lines)
(mapcar
#'(lambda (line)
(concat " :" line "\n"))
lines))
(defun occur-accumulate-lines (count &optional keep-props pt)
(save-excursion
(when pt
(goto-char pt))
(let ((forwardp (> count 0))
result beg end moved)
(while (not (or (zerop count)
(if forwardp
(eobp)
(and (bobp) (not moved)))))
(setq count (+ count (if forwardp -1 1)))
(setq beg (line-beginning-position)
end (line-end-position))
(push (occur-engine-line beg end keep-props) result)
(setq moved (= 0 (forward-line (if forwardp 1 -1)))))
(nreverse result))))
;; Generate context display for occur.
;; OUT-LINE is the line where the match is.
;; NLINES and KEEP-PROPS are args to occur-engine.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment