Function: filesets-add-buffer

filesets-add-buffer is an interactive and byte-compiled function defined in filesets.el.gz.

Signature

(filesets-add-buffer &optional NAME BUFFER)

Documentation

Add BUFFER (or current buffer) to the fileset called NAME.

If no fileset name is provided, prompt for NAME.

View in manual

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/filesets.el.gz
(defun filesets-add-buffer (&optional name buffer)
  "Add BUFFER (or current buffer) to the fileset called NAME.
If no fileset name is provided, prompt for NAME."
  (interactive)
  (let* ((buffer (or buffer
		     (current-buffer)))
	 (name   (or name
		     (completing-read
		      (format-message "Add `%s' to fileset: " buffer)
		      filesets-data nil)))
         (entry  (or (assoc name filesets-data)
                     (when (y-or-n-p
                            (format "Fileset %s does not exist.  Create it?"
                                    name))
                       (progn
      (add-to-list 'filesets-data (list name '(:files)))
      (message
       (substitute-command-keys
        "Fileset %s created.  Call `\\[filesets-save-config]' to save.")
       name)
      (car filesets-data))))))
    (if entry
	(let* ((files  (filesets-entry-get-files entry))
	       (this   (buffer-file-name buffer))
	       (inlist (cl-member this files
				  :test #'filesets-files-equalp)))
	  (cond
	   (inlist
	    (message "Filesets: `%s' is already in `%s'" this name))
	   ((and (equal (filesets-entry-mode entry) ':files)
		 this)
	    (filesets-entry-set-files entry (cons this files) t)
	    (filesets-set-config name 'filesets-data filesets-data))
	   (t
	    (message "Filesets: Can't add `%s' to fileset `%s'" this name)))))))