Function: filesets-ingroup-collect-build-menu

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

Signature

(filesets-ingroup-collect-build-menu FS FLIST &optional OTHER-COUNT)

Documentation

Helper function for filesets-ingroup-collect. Build the menu.

FS is a fileset's name. FLIST is a list returned by filesets-ingroup-collect-files.

Source Code

;; Defined in /usr/src/emacs/lisp/filesets.el.gz
(defun filesets-ingroup-collect-build-menu (fs flist &optional other-count)
  "Helper function for `filesets-ingroup-collect'.  Build the menu.
FS is a fileset's name.  FLIST is a list returned by
`filesets-ingroup-collect-files'."
  (if (null flist)
      nil
    (let ((count 0)
	  (fsn    fs))
      (mapcan (lambda (this)
                (setq count (+ count 1))
                (let* ((def    (if (listp this) (car this) (list this "")))
                       (files  (if (listp this) (cdr this) nil))
                       (master (nth 0 def))
                       (name   (nth 1 def))
                       (nm     (concat (filesets-get-shortcut
					(if (or (not other-count) files)
					    count other-count))
				       (if (or (null name) (equal name ""))
                                           ""
                                         (format "%s: " name))
				       (file-name-nondirectory master))))
		  (if files
		      `((,nm
			 [,(concat "Inclusion Group: "
				   (file-name-nondirectory master))
			  (filesets-open ':ingroup ',master ',fsn)]
			 "---"
			 [,master (filesets-file-open nil ',master ',fsn)]
			 "---"
			 ,@(let ((count 0))
			     (mapcar
			      (lambda (this)
				(setq count (+ count 1))
				(let ((ff (filesets-ingroup-collect-build-menu
					   fs (list this) count)))
				  (if (= (length ff) 1)
				      (car ff)
				    ff)))
			      files))
			 ,@(filesets-get-menu-epilog master ':ingroup fsn)))
		    `([,nm (filesets-file-open nil ',master ',fsn)]))))
	      flist))))