Function: logview--do-save-filters-as-view

logview--do-save-filters-as-view is a natively compiled function defined in logview.el.

Signature

(logview--do-save-filters-as-view NAME GLOBAL)

Source Code

;; Defined in /nix/store/3zkn9hgpv447zb8nrg55d9x2ynmmrk40-emacs-packages-deps/share/emacs/site-lisp/elpa/logview-20260218.2013/logview.el
(defun logview--do-save-filters-as-view (name global)
  (unless (caar (car logview--effective-filter))
    (user-error "There are currently no filters"))
  (unless name
    (setq name (read-string "Save as: " nil 'logview--view-name-history)))
  (when (= (length name) 0)
    (user-error "View name may not be empty"))
  (let ((matches (lambda (view)
                   (and (string= (plist-get view :name) name)
                        (or global (null (plist-get view :submode)) (string= (plist-get view :submode) logview--submode-name))))))
    (dolist (view (logview--views))
      (when (funcall matches view)
        (unless (y-or-n-p (format-message (if global
                                              "There is already a view named `%s'. Replace it?"
                                            "There is already a view named `%s' for this submode. Replace it?")
                                          name))
          (user-error "View named `%s' already exists; try a different name" name))))
    (let (new-views)
      (dolist (view (logview--views))
        (unless (funcall matches view)
          (push view new-views)))
      (push (list :name name :filters logview--main-filter-text) new-views)
      (unless global
        (plist-put (car new-views) :submode logview--submode-name))
      (setq logview--views             (nreverse new-views)
            logview--views-need-saving t)
      (logview--after-updating-view-definitions)
      (logview--update-mode-name)
      (message (if global "Saved filters as a global view named `%s'" "Saved filters as a submode view named `%s'") name))))