(eval-and-compile
(require 'nnheader))
+(eval-when-compile
+ (require 'cl))
+
+(require 'netrc)
+
(nnoo-declare nnimap)
(defvoo nnimap-address nil
(nnimap-article-ranges (gnus-compress-sequence articles))
(format "(UID RFC822.SIZE BODYSTRUCTURE %s)"
(format
- (if (member "IMAP4rev1"
+ (if (member "IMAP4REV1"
(nnimap-capabilities nnimap-object))
"BODY.PEEK[HEADER.FIELDS %s]"
"RFC822.HEADER.LINES %s")
(cond
((eq nnimap-stream 'network)
(open-network-stream "*nnimap*" (current-buffer) nnimap-address
- (or nnimap-server-port "imap"))
+ (or nnimap-server-port
+ (if (netrc-find-service-number "imap")
+ "imap"
+ "143")))
(netrc-credentials nnimap-address "imap"))
((eq nnimap-stream 'stream)
(nnimap-open-shell-stream
(netrc-credentials nnimap-address "imap"))
((eq nnimap-stream 'ssl)
(open-tls-stream "*nnimap*" (current-buffer) nnimap-address
- (or nnimap-server-port "imaps"))
+ (or nnimap-server-port
+ (if (netrc-find-service-number "imaps")
+ "imaps"
+ "993")))
(netrc-credentials nnimap-address "imaps" "imap")))))
(setf (nnimap-process nnimap-object)
(get-buffer-process (current-buffer)))
(error "Unable to login to the server: %s"
(mapconcat #'identity (cadr result) " ")))
(setf (nnimap-capabilities nnimap-object)
- (or (nnimap-find-parameter "CAPABILITY" (cdr result))
- (nnimap-find-parameter
- "CAPABILITY" (cdr (nnimap-command "CAPABILITY")))))
+ (mapcar
+ #'upcase
+ (or (nnimap-find-parameter "CAPABILITY" (cdr result))
+ (nnimap-find-parameter
+ "CAPABILITY" (cdr (nnimap-command "CAPABILITY"))))))
(when (member "QRESYNC" (nnimap-capabilities nnimap-object))
(nnimap-command "ENABLE QRESYNC"))
t)))))
(erase-buffer)
(setq result
(nnimap-command
- (if (member "IMAP4rev1" (nnimap-capabilities nnimap-object))
+ (if (member "IMAP4REV1" (nnimap-capabilities nnimap-object))
"UID FETCH %d BODY.PEEK[]"
"UID FETCH %d RFC822.PEEK")
article)))
(when (car result)
(dolist (line (cdr result))
(when (and (equal (car line) "LIST")
- (not (string-match "noselect" (caadr line))))
+ (not (and (caadr line)
+ (string-match "noselect" (caadr line)))))
(push (car (last line)) groups)))
(nreverse groups))))
(nnimap-article-ranges articles)
(format "(UID %s%s)"
(format
- (if (member "IMAP4rev1"
+ (if (member "IMAP4REV1"
(nnimap-capabilities nnimap-object))
"BODY.PEEK[HEADER] BODY.PEEK"
"RFC822.PEEK"))
(provide 'nnimap)
;;; nnimap.el ends here
-bash: imapd: command not found
-
-Process name exited abnormally with code 127