Function: archive-add-new-member
archive-add-new-member is an interactive and byte-compiled function
defined in arc-mode.el.gz.
Signature
(archive-add-new-member ARCBUF NAME)
Documentation
Add current buffer to the archive in ARCBUF naming it NAME.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/arc-mode.el.gz
(defun archive-add-new-member (arcbuf name)
"Add current buffer to the archive in ARCBUF naming it NAME."
(interactive
(list (get-buffer
(read-buffer "Buffer containing archive: "
;; Find first archive buffer and suggest that
(let ((bufs (buffer-list)))
(while (and bufs
(not (with-current-buffer (car bufs)
(derived-mode-p 'archive-mode))))
(setq bufs (cdr bufs)))
(if bufs
(car bufs)
(error "There are no archive buffers")))
t))
(read-string "File name in archive: "
(if buffer-file-name
(file-name-nondirectory buffer-file-name)
""))))
(with-current-buffer arcbuf
(or (derived-mode-p 'archive-mode)
(error "Buffer is not an archive buffer"))
(if archive-read-only
(error "Archive is read-only")))
(if (eq arcbuf (current-buffer))
(error "An archive buffer cannot be added to itself"))
(if (string= name "")
(error "Archive members may not be given empty names"))
(let ((func (with-current-buffer arcbuf
(archive-name "add-new-member")))
(membuf (current-buffer)))
(if (fboundp func)
(with-current-buffer arcbuf
(funcall func buffer-file-name membuf name))
(error "Adding a new member is not supported for this archive type"))))