Function: imap-parse-data-list
imap-parse-data-list is a byte-compiled function defined in
imap.el.gz.
Signature
(imap-parse-data-list TYPE)
Source Code
;; Defined in /usr/src/emacs/lisp/net/imap.el.gz
;; mailbox-list = "(" [mbx-list-flags] ")" SP
;; (DQUOTE QUOTED-CHAR DQUOTE / nil) SP mailbox
;;
;; mbx-list-flags = *(mbx-list-oflag SP) mbx-list-sflag
;; *(SP mbx-list-oflag) /
;; mbx-list-oflag *(SP mbx-list-oflag)
;;
;; mbx-list-oflag = "\Noinferiors" / flag-extension
;; ; Other flags; multiple possible per LIST response
;;
;; mbx-list-sflag = "\Noselect" / "\Marked" / "\Unmarked"
;; ; Selectability flags; only one per LIST response
;;
;; QUOTED-CHAR = <any TEXT-CHAR except quoted-specials> /
;; "\" quoted-specials
;;
;; quoted-specials = DQUOTE / "\"
(defun imap-parse-data-list (type)
(let (flags delimiter mailbox)
(setq flags (imap-parse-flag-list))
(when (looking-at " NIL\\| \"\\\\?\\(.\\)\"")
(setq delimiter (match-string 1))
(goto-char (1+ (match-end 0)))
(when (setq mailbox (imap-parse-mailbox))
(imap-mailbox-put type t mailbox)
(imap-mailbox-put 'list-flags flags mailbox)
(imap-mailbox-put 'delimiter delimiter mailbox)))))