Function: filesets-build-menu-now

filesets-build-menu-now is a byte-compiled function defined in filesets.el.gz.

Signature

(filesets-build-menu-now FROM-SCRATCH-FLAG)

Documentation

Update the filesets menu.

Build all new if FROM-SCRATCH-FLAG is non-nil. (To really build from the bottom up, set filesets-submenus to nil, first.)

Source Code

;; Defined in /usr/src/emacs/lisp/filesets.el.gz
(defun filesets-build-menu-now (from-scratch-flag)
  "Update the filesets menu.
Build all new if FROM-SCRATCH-FLAG is non-nil.  (To really build from the
bottom up, set `filesets-submenus' to nil, first.)"
  (when (or from-scratch-flag
	    filesets-has-changed-flag
	    (not filesets-menu-cache))
    (setq filesets-menu-cache nil)
    (setq filesets-has-changed-flag nil)
    (setq filesets-updated-buffers nil)
    (setq filesets-update-cache-file-flag t)
    (cl-do ((data  (filesets-conditional-sort filesets-data (function car))
                   (cdr data))
            (count 1 (+ count 1)))
	((null data))
      (let* ((this    (car data))
	     (name    (filesets-data-get-name this))
	     (cached  (plist-get filesets-submenus name #'equal))
	     (submenu (or cached
			  (filesets-build-submenu count name this))))
	(unless cached
	  (setq filesets-submenus
		(plist-put filesets-submenus name submenu #'equal)))
	(unless (filesets-entry-get-dormant-flag this)
	  (setq filesets-menu-cache
		(append filesets-menu-cache (list submenu))))))
    (when filesets-cache-save-often-flag
      (filesets-menu-cache-file-save-maybe)))
  (let ((cb (current-buffer)))
    (when (not (member cb filesets-updated-buffers))
      (easy-menu-add-item (or filesets-menu-in-menu (current-global-map))
                          (cons "menu-bar" filesets-menu-path)
                          `(,filesets-menu-name
                            ("# Filesets"
                             ["Edit Filesets"   filesets-edit]
                             ["Save Filesets"   filesets-save-config]
                             ["Save Menu Cache" filesets-menu-cache-file-save]
                             ["Rebuild Menu"    filesets-build-menu]
                             ["Customize"       filesets-customize]
                             ["About"           filesets-info])
                            ,(filesets-get-cmd-menu)
                            "---"
                            ,@filesets-menu-cache)
                          filesets-menu-before)
      (setq filesets-updated-buffers
	    (cons cb filesets-updated-buffers))
      ;; This wipes out other messages in the echo area.
      ;; (message nil)
      ;;(message "Filesets updated: %s" cb)
      )))