Function: nnmaildir-request-create-group
nnmaildir-request-create-group is a byte-compiled function defined in
nnmaildir.el.gz.
Signature
(nnmaildir-request-create-group GNAME &optional SERVER ARGS)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnmaildir.el.gz
(defun nnmaildir-request-create-group (gname &optional server _args)
(nnmaildir--prepare server nil)
(catch 'return
(let ((target-prefix (nnmaildir--srv-target-prefix nnmaildir--cur-server))
srv-dir dir)
(when (zerop (length gname))
(setf (nnmaildir--srv-error nnmaildir--cur-server)
"Invalid (empty) group name")
(throw 'return nil))
(when (eq (aref "." 0) (aref gname 0))
(setf (nnmaildir--srv-error nnmaildir--cur-server)
"Group names may not start with \".\"")
(throw 'return nil))
(when (save-match-data (string-match "[\0/\t]" gname))
(setf (nnmaildir--srv-error nnmaildir--cur-server)
(concat "Invalid characters (null, tab, or /) in group name: "
gname))
(throw 'return nil))
(when (gethash
gname (nnmaildir--srv-groups nnmaildir--cur-server))
(setf (nnmaildir--srv-error nnmaildir--cur-server)
(concat "Group already exists: " gname))
(throw 'return nil))
(setq srv-dir (nnmaildir--srv-dir nnmaildir--cur-server))
(if (file-name-absolute-p target-prefix)
(setq dir (expand-file-name target-prefix))
(setq dir srv-dir
dir (file-truename dir)
dir (concat dir target-prefix)))
(setq dir (nnmaildir--subdir dir gname))
(nnmaildir--mkdir dir)
(nnmaildir--mkdir (nnmaildir--tmp dir))
(nnmaildir--mkdir (nnmaildir--new dir))
(nnmaildir--mkdir (nnmaildir--cur dir))
(unless (string= target-prefix "")
(make-symbolic-link (concat target-prefix gname)
(concat srv-dir gname)))
(nnmaildir-request-scan 'find-new-groups))))