- (let ((user (read-from-minibuffer (gnus-ofsetup-gettext 'setup-12)))
- (server (read-from-minibuffer
- (gnus-ofsetup-gettext 'setup-13)))
- (auth (completing-read
- (gnus-ofsetup-gettext 'setup-14)
- '(("password") ("apop")) nil t nil))
- (islisp (y-or-n-p (gnus-ofsetup-gettext 'setup-15)))
- source)
- (if (not islisp)
- (let ((prog (read-file-name (gnus-ofsetup-gettext 'setup-16)
- exec-directory "movemail"))
- (args (read-from-minibuffer
- (gnus-ofsetup-gettext 'setup-17)
- "-pf")))
- (setq source `(pop
- :user ,user
- :server ,server
- :program ,(format "%s %s %s %s %s"
- prog
- args
- "po:%u"
- "%t"
- "%p"))))
- (setq source `(pop
- :user ,user
- :server ,server)))
- (setq mail-source
- (nconc mail-source
- (list
- (if (string-equal "apop" auth)
- (nconc source '(:authentication apop))
- source)))))
+ (let* ((j (- n (1- i)))
+ (type (gnus-ofsetup-completing-read-symbol
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-12))
+ 'pop 'imap 'file 'directory 'maildir))
+ user server authentication stream islisp source
+ prog args program path)
+ ;; Prepare.
+ (when (or (string= type "pop") (string= type "imap"))
+ (setq user (read-from-minibuffer
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-13))))
+ (setq server (read-from-minibuffer
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-14)))))
+ (when (string= type "pop")
+ (setq authentication (gnus-ofsetup-completing-read-symbol
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-15))
+ 'password 'apop))
+ (setq islisp (y-or-n-p
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-16))))
+ (unless islisp
+ (setq prog (read-file-name
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-17))
+ exec-directory "movemail"))
+ (setq args (read-from-minibuffer
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-18) "-pf")))
+ (setq program (format "%s %s %s %s %s"
+ prog args "po:%u" "%t" "%p"))))
+ (when (string= type "imap")
+ (setq stream (gnus-ofsetup-completing-read-symbol
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-19))
+ 'kerberos4 'starttls 'ssl 'network))
+ (setq authentication (gnus-ofsetup-completing-read-symbol
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-14))
+ 'kerberos4 'digest-md5 'cram-md5 'login
+ 'anonymous)))
+ (when (string= type "file")
+ (setq path (read-file-name
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-20)))))
+ (when (or (string= type "directory") (string= type "maildir"))
+ (setq path (read-file-name
+ (format "<%d of %d> %s" j n
+ (gnus-ofsetup-gettext 'setup-21)))))
+ ;; Now set a mail source specifier.
+ (setq source `(,type))
+ (mapc
+ #'(lambda (sym)
+ (when (symbol-value sym)
+ (setq source
+ (nconc source
+ (list
+ (make-symbol
+ (format ":%s" sym))
+ (symbol-value sym))))))
+ '(path user server authentication stream program))
+ (setq mail-source (nconc mail-source (list source))))