Function: logview--find-region-entries

logview--find-region-entries is a natively compiled function defined in logview.el.

Signature

(logview--find-region-entries REGION-START REGION-END &optional DONT-STOP-EARLY)

Source Code

;; Defined in /nix/store/3zkn9hgpv447zb8nrg55d9x2ynmmrk40-emacs-packages-deps/share/emacs/site-lisp/elpa/logview-20260218.2013/logview.el
(defun logview--find-region-entries (region-start region-end &optional dont-stop-early)
  (logview--std-altering
    (save-excursion
      (save-match-data
        (let ((case-fold-search         nil)
              (buffer-invisibility-spec nil))
          (goto-char region-start)
          (forward-line 0)
          (when (or (looking-at logview--entry-regexp)
                    (re-search-backward logview--entry-regexp nil t)
                    (re-search-forward  logview--entry-regexp nil t))
            (setq region-end (min region-end (point-max)))
            (let* ((match-data  (match-data t))
                   ;; The following depends on exact submode format, i.e. on how many
                   ;; groups there are in `logview--entry-regexp'.
                   (num-points  (- (length match-data) 2))
                   (entry-start (car match-data))
                   (have-level  (memq 'level logview--submode-features)))
              (while (and (or dont-stop-early (null (get-text-property entry-start 'logview-entry)))
                          (let* ((details-start   (progn (forward-line 1) (point)))
                                 (have-next-entry (re-search-forward logview--entry-regexp nil t))
                                 (entry-end       (if have-next-entry (match-beginning 0) (point-max)))
                                 ;; See description of `logview-entry' above.
                                 (logview-entry   (make-vector 13 nil)))
                            (aset logview-entry 0 (- entry-end entry-start))
                            (let ((points (cdr match-data)))
                              (dotimes (k num-points)
                                (let ((point (pop points)))
                                  (aset logview-entry (1+ k) (when point (- point entry-start))))))
                            (when (< details-start entry-end)
                              (aset logview-entry 10 (- details-start entry-start)))
                            (when have-level
                              (aset logview-entry 11 (cadr (assoc (logview--entry-group logview-entry entry-start logview--level-group)
                                                                  logview--submode-level-data))))
                            (setf match-data (match-data t match-data))
                            (put-text-property entry-start entry-end 'logview-entry logview-entry)
                            (setq entry-start entry-end)
                            (< entry-start region-end)))))))))))