.
original commit: 957aed3185b8cf9c3d28f3d672894ee8b6dc8d14
This commit is contained in:
parent
2ef98371e4
commit
0f19ec8337
|
@ -11,6 +11,8 @@
|
|||
imap-disconnect
|
||||
imap-force-disconnect
|
||||
imap-reselect
|
||||
imap-examine
|
||||
imap-noop
|
||||
imap-status
|
||||
|
||||
imap-get-messages
|
||||
|
|
|
@ -216,18 +216,29 @@
|
|||
(imap-connect* r w username password inbox)))
|
||||
|
||||
(define (imap-reselect imap inbox)
|
||||
(let ([r (imap-connection-r imap)]
|
||||
[w (imap-connection-w imap)])
|
||||
(let ([init-count 0]
|
||||
[init-recent 0])
|
||||
(check-ok (imap-send r w (format "SELECT ~a" (str->arg inbox))
|
||||
(lambda (i)
|
||||
(when (and (list? i) (= 2 (length i)))
|
||||
(cond
|
||||
[(tag-eq? (cadr i) 'EXISTS)
|
||||
(set! init-count (car i))]
|
||||
[(tag-eq? (cadr i) 'RECENT)
|
||||
(set! init-recent (car i))])))))
|
||||
(imap-selectish-command imap (format "SELECT ~a" (str->arg inbox))))
|
||||
|
||||
(define (imap-examine imap inbox)
|
||||
(imap-selectish-command imap (format "EXAMINE ~a" (str->arg inbox))))
|
||||
|
||||
;; returns (values #f #f) if no change since last check
|
||||
(define (imap-noop imap)
|
||||
(imap-selectish-command imap "NOOP"))
|
||||
|
||||
;; icky name, someone think of something better!
|
||||
(define (imap-selectish-command imap command-string)
|
||||
(let ([r (imap-connection-r imap)]
|
||||
[w (imap-connection-w imap)])
|
||||
(let ([init-count #f]
|
||||
[init-recent #f])
|
||||
(check-ok (imap-send r w command-string
|
||||
(lambda (i)
|
||||
(when (and (list? i) (= 2 (length i)))
|
||||
(cond
|
||||
[(tag-eq? (cadr i) 'EXISTS)
|
||||
(set! init-count (car i))]
|
||||
[(tag-eq? (cadr i) 'RECENT)
|
||||
(set! init-recent (car i))])))))
|
||||
(values init-count init-recent))))
|
||||
|
||||
(define (imap-status imap inbox flags)
|
||||
|
|
Loading…
Reference in New Issue
Block a user