[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
nnimap 0.91 -> 0.92 patches
Index: nnimap/ChangeLog
diff -c nnimap/ChangeLog:1.168 nnimap/ChangeLog:1.169
*** nnimap/ChangeLog:1.168 Thu Jan 7 13:26:01 1999
--- nnimap/ChangeLog Thu Jan 7 16:18:25 1999
***************
*** 1,3 ****
--- 1,17 ----
+ 1999-01-08 Simon Josefsson <jas@pdc.kth.se>
+
+ * nnimap 0.92 released.
+
+ * imap.el (imap-parse-response-data-cb): Removed.
+ (imap-parse-response-data-*): Removed or renamed to imap-parse-*.
+ (imap-parse-*): Clean up.
+
+ * imap.el (imap-mailbox-create): New function.
+ (imap-message-copy): New function.
+
+ * imap.el (imap-error): New variable.
+ (imap-ok-p): Set it.
+
1999-01-07 22:23:35 Simon Josefsson <jas@pdc.kth.se>
* nnimap 0.91 released.
Index: nnimap/imap.el
diff -c nnimap/imap.el:1.105 nnimap/imap.el:1.106
*** nnimap/imap.el:1.105 Thu Jan 7 13:23:00 1999
--- nnimap/imap.el Thu Jan 7 16:17:35 1999
***************
*** 153,158 ****
--- 153,161 ----
(defvar imap-default-user (user-login-name)
"Default username to use.")
+ (defvar imap-error nil
+ "Error codes from the last command.")
+
;; Various variables.
(defvar imap-fetch-data-hook nil
***************
*** 217,241 ****
imap-process
imap-mailbox-data))
- (defconst imap-parse-response-data-cb
- '((OK . imap-response-data-text-code)
- (NO . imap-response-data-text-code)
- (BAD . imap-response-data-text-code)
- (BYE . imap-response-data-bye)
- (EXISTS . imap-response-data-exists)
- (EXPUNGE . imap-response-data-expunge)
- (RECENT . imap-response-data-recent)
- (CAPABILITY . imap-response-data-capability)
- (LIST . imap-response-data-list)
- (LSUB . imap-response-data-list)
- (FLAGS . imap-response-data-flags)
- (FETCH . imap-response-data-fetch)
- (SEARCH . imap-response-data-search)
- (STATUS . imap-response-data-status)
- (ACL . imap-response-data-acl)
- (NAMESPACE . imap-response-data-namespace)))
-
-
;; Internal variables.
(defvar imap-stream nil)
--- 220,225 ----
***************
*** 326,331 ****
--- 310,321 ----
(autoload 'ange-ftp-read-passwd "ange-ftp"))
'ange-ftp-read-passwd) prompt)))
+ (defsubst imap-ok-p (status)
+ (if (eq status 'OK)
+ t
+ (setq imap-error status)
+ nil))
+
;; Server functions; stream stuff:
***************
*** 656,664 ****
(defun imap-send-command-wait (command &optional buffer)
(imap-wait-for-tag (imap-send-command command buffer) buffer))
- (defun imap-ok-p (status)
- (eq status 'OK))
-
;; Mailbox functions:
--- 646,651 ----
***************
*** 726,731 ****
--- 713,724 ----
imap-state 'auth)
t)))
+ (defun imap-mailbox-create (mailbox &optional buffer)
+ "Create MAILBOX on server in BUFFER, if nil current buffer is assumed."
+ (with-current-buffer (or buffer (current-buffer))
+ (imap-ok-p
+ (imap-send-command-wait (list "CREATE " mailbox)))))
+
(defun imap-mailbox-lsub (&optional buffer reference)
"Clear the mailbox data and fill it with subscribed mailboxes on
server in BUFFER. REFERENCE is the implementation-specific string that
***************
*** 871,876 ****
--- 864,883 ----
(concat "UID STORE " articles
" +FLAGS" (if silent ".SILENT") " (" flags ")"))))))
+ (defun imap-message-copy (articles mailbox &optional buffer dont-create)
+ "Copy ARTICLES to MAILBOX on server in BUFFER, creating mailbox if
+ it doesn't exist. If dont-create is non-nil, it will not create a
+ mailbox."
+ (when articles
+ (with-current-buffer (or buffer (current-buffer))
+ (let ((cmd (list "UID COPY " articles " " mailbox))
+ (imap-current-target-mailbox mailbox))
+ (if (imap-ok-p (imap-send-command-wait cmd))
+ t
+ (when (and (not dont-create) (imap-mailbox-get 'trycreate mailbox))
+ (imap-mailbox-create mailbox)
+ (imap-ok-p (imap-send-command-wait cmd))))))))
+
(defun imap-message-append (mailbox article &optional buffer flags date-time)
"Append ARTICLE buffer to MAILBOX on server in BUFFER. FLAGS and
DATE-TIME is currently not used."
***************
*** 993,999 ****
;;
;; TEXT-CHAR = <any CHAR except CR and LF>
-
(defsubst imap-parse-string ()
(cond ((eq (char-after) ?\")
(read (current-buffer)))
--- 1000,1005 ----
***************
*** 1073,1126 ****
;; ; Server closes connection immediately
;;
;; response-tagged = tag SP resp-cond-state CRLF
(defun imap-parse-response ()
"Parse a IMAP command response."
! (let ((token (read (current-buffer))))
! (cond ((eq token '*)
! (let* ((response (read (current-buffer)))
! (func (cdr (assq response imap-parse-response-data-cb))))
! (goto-char (1+ (point)))
! (when (integerp response)
! (setq func (cdr (assq (read (current-buffer))
! imap-parse-response-data-cb)))
! (goto-char (1+ (point))))
! (if func
! (funcall func response)
! (message "Unknown untagged response: %s" response))))
! ((integerp token)
! (let ((status (read (current-buffer))))
! (cond ((eq status 'OK)
! (setq imap-reached-tag (max imap-reached-tag token)))
! ((eq status 'NO)
! (setq imap-reached-tag (max imap-reached-tag token))
! (let (code text)
! (forward-char)
! (when (eq (char-after) ?\[)
! (setq code (buffer-substring (point)
! (search-forward "]")))
! (forward-char))
! (setq text (buffer-substring (point) (point-max)))
! (push (list token status code text) imap-failed-tags)))
! ((eq status 'BAD)
! (setq imap-reached-tag (max imap-reached-tag token))
! (let (code text)
! (forward-char)
! (when (eq (char-after) ?\[)
! (setq code (buffer-substring (point)
! (search-forward "]")))
! (forward-char))
! (setq text (buffer-substring (point) (point-max)))
! (push (list token status code text) imap-failed-tags)
! (message "Internal error, tag %s status %s code %s text %s"
! token status code text)))
! (t
! (message "Garbage after tag: %s" (buffer-string))))))
! ((eq token '+)
! (imap-parse-continue-req))
! (t
! (message "Garbage: %s" (buffer-string))))))
;; resp-text-code = "ALERT" /
;; "BADCHARSET [SP "(" astring *(SP astring) ")" ] /
;; "NEWNAME" SP string SP string /
--- 1079,1175 ----
;; ; Server closes connection immediately
;;
;; response-tagged = tag SP resp-cond-state CRLF
+ ;;
+ ;; resp-cond-state = ("OK" / "NO" / "BAD") SP resp-text
+ ;; ; Status condition
+ ;;
+ ;; resp-cond-bye = "BYE" SP resp-text
+ ;;
+ ;; mailbox-data = "FLAGS" SP flag-list /
+ ;; "LIST" SP mailbox-list /
+ ;; "LSUB" SP mailbox-list /
+ ;; "SEARCH" *(SP nz-number) /
+ ;; "STATUS" SP mailbox SP "("
+ ;; [status-att SP number *(SP status-att SP number)] ")" /
+ ;; number SP "EXISTS" /
+ ;; number SP "RECENT"
+ ;;
+ ;; message-data = nz-number SP ("EXPUNGE" / ("FETCH" SP msg-att))
+ ;;
+ ;; capability-data = "CAPABILITY" *(SP capability) SP "IMAP4rev1"
+ ;; *(SP capability)
+ ;; ; IMAP4rev1 servers which offer RFC 1730
+ ;; ; compatibility MUST list "IMAP4" as the first
+ ;; ; capability.
(defun imap-parse-response ()
"Parse a IMAP command response."
! (let (token)
! (case (setq token (read (current-buffer)))
! (+ (imap-parse-continue-req))
! (* (case (prog1 (setq token (read (current-buffer)))
! (or (eobp) (forward-char)))
! (OK (imap-parse-resp-text))
! (NO (imap-parse-resp-text))
! (BAD (imap-parse-resp-text))
! (BYE (imap-parse-resp-text))
! (FLAGS (imap-mailbox-put 'flags (imap-parse-flag-list)))
! (LIST (imap-parse-data-list 'list))
! (LSUB (imap-parse-data-list 'lsub))
! (SEARCH (imap-mailbox-put
! 'search
! (read (concat "(" (buffer-substring (point) (point-max)) ")"))))
! (STATUS (imap-parse-status))
! (CAPABILITY (setq imap-capability
! (read (concat "(" (buffer-substring (point) (point-max))
! ")"))))
! (ACL (imap-parse-acl))
! (t (case (prog1 (read (current-buffer))
! (or (eobp) (forward-char)))
! (EXISTS (imap-mailbox-put 'exists token))
! (RECENT (imap-mailbox-put 'recent token))
! (EXPUNGE t)
! (FETCH (imap-parse-fetch token))
! (t (message "Garbage: %s" (buffer-string)))))))
! (t (let (status)
! (case (prog1 (setq status (read (current-buffer)))
! (or (eobp) (forward-char)))
! (OK (progn
! (setq imap-reached-tag (max imap-reached-tag token))
! (imap-parse-resp-text)))
! (NO (progn
! (setq imap-reached-tag (max imap-reached-tag token))
! (save-excursion
! (imap-parse-resp-text))
! (let (code text)
! (when (eq (char-after) ?\[)
! (setq code (buffer-substring (point) (search-forward "]")))
! (or (eobp) (forward-char)))
! (setq text (buffer-substring (point) (point-max)))
! (push (list token status code text) imap-failed-tags))))
! (BAD (progn
! (setq imap-reached-tag (max imap-reached-tag token))
! (save-excursion
! (imap-parse-resp-text))
! (let (code text)
! (when (eq (char-after) ?\[)
! (setq code (buffer-substring (point) (search-forward "]")))
! (or (eobp) (forward-char)))
! (setq text (buffer-substring (point) (point-max)))
! (push (list token status code text) imap-failed-tags)
! (message "Internal error, tag %s status %s code %s text %s"
! token status code text))))
! (t (message "Garbage after tag: %s" (buffer-string)))))))))
!
! ;; resp-text = ["[" resp-text-code "]" SP] text
! ;;
! ;; text = 1*TEXT-CHAR
! ;;
! ;; TEXT-CHAR = <any CHAR except CR and LF>
+ (defun imap-parse-resp-text ()
+ (imap-parse-resp-text-code))
+
;; resp-text-code = "ALERT" /
;; "BADCHARSET [SP "(" astring *(SP astring) ")" ] /
;; "NEWNAME" SP string SP string /
***************
*** 1155,1163 ****
;;
;; resp-text-atom = 1*<any ATOM-CHAR except "]">
! (defun imap-response-data-text-code (response)
(when (eq (char-after) ?\[)
! (forward-char)
(cond ((search-forward "PERMANENTFLAGS " nil t)
(imap-mailbox-put 'permanentflags (imap-parse-flag-list)))
((search-forward "UIDNEXT " nil t)
--- 1204,1212 ----
;;
;; resp-text-atom = 1*<any ATOM-CHAR except "]">
! (defun imap-parse-resp-text-code ()
(when (eq (char-after) ?\[)
! (or (eobp) (forward-char))
(cond ((search-forward "PERMANENTFLAGS " nil t)
(imap-mailbox-put 'permanentflags (imap-parse-flag-list)))
((search-forward "UIDNEXT " nil t)
***************
*** 1173,1183 ****
((search-forward "NEWNAME " nil t)
(let (oldname newname)
(setq oldname (imap-parse-string))
! (forward-char)
(setq newname (imap-parse-string))
(imap-mailbox-put 'newname newname oldname)))
((search-forward "TRYCREATE" nil t)
! (imap-mailbox-put 'trycreate t))
((looking-at "APPENDUID \\([0-9]+\\) \\([0-9]+\\)")
(imap-mailbox-put 'appenduid
(list (match-string 1)
--- 1222,1232 ----
((search-forward "NEWNAME " nil t)
(let (oldname newname)
(setq oldname (imap-parse-string))
! (or (eobp) (forward-char))
(setq newname (imap-parse-string))
(imap-mailbox-put 'newname newname oldname)))
((search-forward "TRYCREATE" nil t)
! (imap-mailbox-put 'trycreate t imap-current-target-mailbox))
((looking-at "APPENDUID \\([0-9]+\\) \\([0-9]+\\)")
(imap-mailbox-put 'appenduid
(list (match-string 1)
***************
*** 1187,1244 ****
(message "Imap server %s information: %s" imap-server
(buffer-substring (point) (point-max)))))))
- ;; response-data = "*" SP (resp-cond-state / resp-cond-bye /
- ;; mailbox-data / message-data / capability-data) CRLF
- ;;
- ;; resp-cond-bye = "BYE" SP resp-text
-
- (defun imap-response-data-bye (response)
- t)
-
- ;; response-data = "*" SP (resp-cond-state / resp-cond-bye /
- ;; mailbox-data / message-data / capability-data) CRLF
- ;;
- ;; resp-cond-state = ("OK" / "NO" / "BAD") SP resp-text
- ;; ; Status condition
- ;;
- ;; resp-cond-bye = "BYE" SP resp-text
- ;;
- ;; mailbox-data = "FLAGS" SP flag-list /
- ;; "LIST" SP mailbox-list /
- ;; "LSUB" SP mailbox-list /
- ;; "SEARCH" *(SP nz-number) /
- ;; "STATUS" SP mailbox SP "("
- ;; [status-att SP number
- ;; *(SP status-att SP number)] ")" /
- ;; number SP "EXISTS" /
- ;; number SP "RECENT"
- ;;
- ;; message-data = nz-number SP ("EXPUNGE" / ("FETCH" SP msg-att))
- ;;
- ;; capability = "AUTH=" auth-type / atom
- ;; ; New capabilities MUST begin with "X" or be
- ;; ; registered with IANA as standard or
- ;; ; standards-track
- ;;
- ;; capability-data = "CAPABILITY" *(SP capability) SP "IMAP4rev1"
- ;; *(SP capability)
- ;; ; IMAP4rev1 servers which offer RFC 1730
- ;; ; compatibility MUST list "IMAP4" as the first
- ;; ; capability.
-
- (defun imap-response-data-exists (response)
- (imap-mailbox-put 'exists response))
-
- (defun imap-response-data-expunge (response)
- t)
-
- (defun imap-response-data-recent (response)
- (imap-mailbox-put 'recent response))
-
- (defun imap-response-data-capability (response)
- (setq imap-capability
- (read (concat "(" (buffer-substring (point) (point-max)) ")"))))
-
;; mailbox-list = "(" [mbx-list-flags] ")" SP
;; (DQUOTE QUOTED-CHAR DQUOTE / nil) SP mailbox
;;
--- 1236,1241 ----
***************
*** 1257,1263 ****
;;
;; quoted-specials = DQUOTE / "\"
! (defun imap-response-data-list (type)
(let (flags delimiter mailbox)
(setq flags (imap-parse-flag-list))
(when (looking-at " NIL\\| \"\\(.\\)\"")
--- 1254,1260 ----
;;
;; quoted-specials = DQUOTE / "\"
! (defun imap-parse-data-list (type)
(let (flags delimiter mailbox)
(setq flags (imap-parse-flag-list))
(when (looking-at " NIL\\| \"\\(.\\)\"")
***************
*** 1268,1276 ****
(imap-mailbox-put 'list-flags flags mailbox)
(imap-mailbox-put 'delimiter delimiter mailbox)))))
- (defun imap-response-data-flags (response)
- (imap-mailbox-put 'flags (imap-parse-flag-list)))
-
;; msg-att = "(" (msg-att-dynamic / msg-att-static)
;; *(SP (msg-att-dynamic / msg-att-static)) ")"
;;
--- 1265,1270 ----
***************
*** 1321,1378 ****
;;
;; uniqueid = nz-number
;; ; Strictly ascending
-
- (defun imap-response-data-fetch (response)
- (let (uid flags envelope internaldate rfc822 rfc822header rfc822text
- rfc822size body bodystructure)
- (assert (eq (char-after) ?\())
- (while (not (eq (char-after) ?\)))
- (forward-char)
- (let ((token (read (current-buffer))))
- (forward-char)
- (cond ((eq token 'UID)
- (setq uid (read (current-buffer))))
- ((eq token 'FLAGS)
- (setq flags (imap-parse-flag-list)))
- ((eq token 'ENVELOPE)
- (setq envelope (imap-parse-envelope)))
- ((eq token 'INTERNALDATE)
- (setq internaldate (imap-parse-string)))
- ((eq token 'RFC822)
- (setq rfc822 (imap-parse-nstring)))
- ((eq token 'RFC822.HEADER)
- (setq rfc822header (imap-parse-nstring)))
- ((eq token 'RFC822.TEXT)
- (setq rfc822text (imap-parse-nstring)))
- ((eq token 'RFC822.SIZE)
- (setq rfc822size (read (current-buffer))))
- ((eq token 'BODY)
- (setq body (imap-parse-body)))
- ((eq token 'BODYSTRUCTURE)
- (setq bodystructure (imap-parse-body))))))
- (if (not uid)
- (message "Skipping UID-less fetch response (broken server?)...")
- (setq imap-current-message uid)
- (imap-message-put uid 'UID uid)
- (and flags (imap-message-put uid 'FLAGS flags))
- (and envelope (imap-message-put uid 'ENVELOPE envelope))
- (and internaldate (imap-message-put uid 'INTERNALDATE internaldate))
- (and rfc822 (imap-message-put uid 'RFC822 rfc822))
- (and rfc822header (imap-message-put uid 'RFC822.HEADER rfc822header))
- (and rfc822text (imap-message-put uid 'RFC822.TEXT rfc822text))
- (and rfc822size (imap-message-put uid 'RFC822.SIZE rfc822size))
- (and body (imap-message-put uid 'BODY body))
- (and bodystructure (imap-message-put uid 'BODYSTRUCTURE bodystructure))
- (run-hooks 'imap-fetch-data-hook))))
-
- ;; mailbox-data = ...
- ;; "SEARCH" *(SP nz-number) /
- ;; ...
! (defun imap-response-data-search (response)
! (imap-mailbox-put
! 'search
! (read (concat "(" (buffer-substring (point) (point-max)) ")"))))
;; mailbox-data = ...
;; "STATUS" SP mailbox SP "("
--- 1315,1363 ----
;;
;; uniqueid = nz-number
;; ; Strictly ascending
! (defun imap-parse-fetch (response)
! (when (eq (char-after) ?\()
! (let (uid flags envelope internaldate rfc822 rfc822header rfc822text
! rfc822size body bodystructure)
! (while (not (eq (char-after) ?\)))
! (or (eobp) (forward-char))
! (let ((token (read (current-buffer))))
! (or (eobp) (forward-char))
! (cond ((eq token 'UID)
! (setq uid (read (current-buffer))))
! ((eq token 'FLAGS)
! (setq flags (imap-parse-flag-list)))
! ((eq token 'ENVELOPE)
! (setq envelope (imap-parse-envelope)))
! ((eq token 'INTERNALDATE)
! (setq internaldate (imap-parse-string)))
! ((eq token 'RFC822)
! (setq rfc822 (imap-parse-nstring)))
! ((eq token 'RFC822.HEADER)
! (setq rfc822header (imap-parse-nstring)))
! ((eq token 'RFC822.TEXT)
! (setq rfc822text (imap-parse-nstring)))
! ((eq token 'RFC822.SIZE)
! (setq rfc822size (read (current-buffer))))
! ((eq token 'BODY)
! (setq body (imap-parse-body)))
! ((eq token 'BODYSTRUCTURE)
! (setq bodystructure (imap-parse-body))))))
! (if (not uid)
! (message "Skipping UID-less fetch response (broken server?)...")
! (setq imap-current-message uid)
! (imap-message-put uid 'UID uid)
! (and flags (imap-message-put uid 'FLAGS flags))
! (and envelope (imap-message-put uid 'ENVELOPE envelope))
! (and internaldate (imap-message-put uid 'INTERNALDATE internaldate))
! (and rfc822 (imap-message-put uid 'RFC822 rfc822))
! (and rfc822header (imap-message-put uid 'RFC822.HEADER rfc822header))
! (and rfc822text (imap-message-put uid 'RFC822.TEXT rfc822text))
! (and rfc822size (imap-message-put uid 'RFC822.SIZE rfc822size))
! (and body (imap-message-put uid 'BODY body))
! (and bodystructure (imap-message-put uid 'BODYSTRUCTURE bodystructure))
! (run-hooks 'imap-fetch-data-hook)))))
;; mailbox-data = ...
;; "STATUS" SP mailbox SP "("
***************
*** 1383,1389 ****
;; status-att = "MESSAGES" / "RECENT" / "UIDNEXT" / "UIDVALIDITY" /
;; "UNSEEN"
! (defun imap-response-data-status (response)
(let ((mailbox (imap-parse-mailbox)))
(when (and mailbox (search-forward "(" nil t))
(while (not (eq (char-after) ?\)))
--- 1368,1374 ----
;; status-att = "MESSAGES" / "RECENT" / "UIDNEXT" / "UIDVALIDITY" /
;; "UNSEEN"
! (defun imap-parse-status ()
(let ((mailbox (imap-parse-mailbox)))
(when (and mailbox (search-forward "(" nil t))
(while (not (eq (char-after) ?\)))
***************
*** 1411,1417 ****
;;
;; rights ::= astring
! (defun imap-response-data-acl (response)
(let ((mailbox (imap-parse-mailbox)))
(when (eq (char-after) ?\ )
(let (acl)
--- 1396,1402 ----
;;
;; rights ::= astring
! (defun imap-parse-acl ()
(let ((mailbox (imap-parse-mailbox)))
(when (eq (char-after) ?\ )
(let (acl)
***************
*** 1548,1553 ****
--- 1533,1540 ----
(buffer-disable-undo (get-buffer-create imap-debug))
(mapc (lambda (f) (trace-function-background f imap-debug))
'(
+ imap-encode-string
+ imap-read-passwd
imap-kerberos4s-p
imap-kerberos4-open
imap-ssl-p
***************
*** 1572,1595 ****
imap-capability
imap-namespace
imap-send-command-wait
- imap-ok-p
imap-mailbox-put
imap-mailbox-get
imap-mailbox-map
imap-mailbox-select
imap-mailbox-unselect
imap-mailbox-close
imap-mailbox-lsub
imap-mailbox-list
imap-mailbox-subscribe
imap-mailbox-unsubscribe
imap-message-put
imap-message-get
imap-message-map
! imap-message-search
imap-message-flags-set
imap-message-flags-del
imap-message-flags-add
imap-send-command
imap-wait-for-tag
imap-sentinel
--- 1559,1588 ----
imap-capability
imap-namespace
imap-send-command-wait
imap-mailbox-put
imap-mailbox-get
imap-mailbox-map
imap-mailbox-select
imap-mailbox-unselect
imap-mailbox-close
+ imap-mailbox-create
imap-mailbox-lsub
imap-mailbox-list
imap-mailbox-subscribe
imap-mailbox-unsubscribe
+ imap-mailbox-status
+ imap-mailbox-acl-get
+ imap-mailbox-acl-set
+ imap-mailbox-acl-delete
imap-message-put
imap-message-get
imap-message-map
! imap-search
imap-message-flags-set
imap-message-flags-del
imap-message-flags-add
+ imap-message-copy
+ imap-message-append
imap-send-command
imap-wait-for-tag
imap-sentinel
***************
*** 1597,1621 ****
imap-arrival-filter
imap-parse-greeting
imap-parse-response
! imap-response-data-text-code
! imap-response-data-bye
! imap-response-data-exists
! imap-response-data-expunge
! imap-response-data-recent
! imap-response-data-capability
! imap-response-data-list
! imap-response-data-flags
! imap-response-data-fetch
! imap-response-data-search
! imap-response-data-status
imap-parse-flag-list
imap-parse-envelope
imap-parse-body
- imap-parse-astring
- imap-parse-nstring
- imap-parse-string
- imap-parse-literal
- imap-read-passwd
)))
(provide 'imap)
--- 1590,1604 ----
imap-arrival-filter
imap-parse-greeting
imap-parse-response
! imap-parse-resp-text
! imap-parse-resp-text-code
! imap-parse-data-list
! imap-parse-fetch
! imap-parse-status
! imap-parse-acl
imap-parse-flag-list
imap-parse-envelope
imap-parse-body
)))
(provide 'imap)
Index: nnimap/nnimap.el
diff -c nnimap/nnimap.el:1.124 nnimap/nnimap.el:1.125
*** nnimap/nnimap.el:1.124 Thu Jan 7 13:26:12 1999
--- nnimap/nnimap.el Thu Jan 7 16:18:01 1999
***************
*** 100,106 ****
(nnoo-declare nnimap) ; we derive from no one
! (defconst nnimap-version "nnimap 0.91")
;; Various server variables.
--- 100,106 ----
(nnoo-declare nnimap) ; we derive from no one
! (defconst nnimap-version "nnimap 0.92")
;; Various server variables.