Function: logview-filter-edit--do

logview-filter-edit--do is a natively compiled function defined in logview.el.

Signature

(logview-filter-edit--do PROCESS-FILTERS QUIT)

Source Code

;; Defined in /nix/store/3zkn9hgpv447zb8nrg55d9x2ynmmrk40-emacs-packages-deps/share/emacs/site-lisp/elpa/logview-20260218.2013/logview.el
(defun logview-filter-edit--do (process-filters quit)
  (let* ((mode    logview-filter-edit--mode)
         (parent  logview-filter-edit--parent-buffer)
         (windows logview-filter-edit--window-configuration)
         filters-changed)
    (when quit
      (with-current-buffer parent
        (when logview--preview-filter-text
          (setf logview--preview-filter-text nil
                filters-changed              t))))
    (when process-filters
      (if (eq mode 'views)
          (let ((new-views (save-excursion
                             (goto-char (point-min))
                             (logview--parse-view-definitions t))))
            (setf logview--views
                  (if logview-filter-edit--editing-views-for-submode
                      (let ((combined-views (nreverse new-views)))
                        (dolist (view (logview--views))
                          (unless (equal (plist-get view :submode) logview-filter-edit--editing-views-for-submode)
                            (push view combined-views)))
                        (nreverse combined-views))
                    new-views))
            (setf logview--views-need-saving t)
            (logview--after-updating-view-definitions)
            (with-current-buffer parent
              (logview--update-mode-name)))
        (let ((filters      (buffer-substring-no-properties
                             (point-min) (point-max)))
              (hint-comment (logview-filter-edit--hint-comment)))
            (when (string-prefix-p hint-comment filters)
              (setf filters (substring filters (length hint-comment))))
            (with-current-buffer parent
              (if (eq process-filters 'preview)
                  (setf logview--preview-filter-text `(,(eq mode 'main-filters) . ,filters))
                (setf (if (eq mode 'main-filters) logview--main-filter-text logview--thread-narrowing-filter-text) filters))
              (setf filters-changed t)))))
    (when filters-changed
      (with-current-buffer parent
        (logview--parse-filters)))
    (when quit
      (kill-buffer)
      (switch-to-buffer parent)
      (set-window-configuration windows))))