Function: nnmh-request-rename-group
nnmh-request-rename-group is a byte-compiled function defined in
nnmh.el.gz.
Signature
(nnmh-request-rename-group GROUP NEW-NAME &optional SERVER)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnmh.el.gz
(deffoo nnmh-request-rename-group (group new-name &optional server)
(nnmh-possibly-change-directory group server)
(let ((new-dir (nnmail-group-pathname new-name nnmh-directory))
(old-dir (nnmail-group-pathname group nnmh-directory)))
(when (ignore-errors
(make-directory new-dir t)
t)
;; We move the articles file by file instead of renaming
;; the directory -- there may be subgroups in this group.
;; One might be more clever, I guess.
(let ((files (nnheader-article-to-file-alist old-dir)))
(while files
(rename-file
(concat old-dir (cdar files))
(concat new-dir (cdar files)))
(pop files)))
(when (<= (length (directory-files old-dir)) 2)
(ignore-errors
(delete-directory old-dir)))
;; That went ok, so we change the internal structures.
(let ((entry (assoc group nnmh-group-alist)))
(when entry
(setcar entry new-name))
(setq nnmh-current-directory nil)
t))))