< draft-cridland-imap-context-04.txt   draft-cridland-imap-context-05.txt >
Network Working Group D. Cridland Network Working Group D. Cridland
Internet-Draft C. King Internet-Draft C. King
Intended status: Standards Track Isode Limited Intended status: Standards Track Isode Limited
Expires: October 13, 2008 April 11, 2008 Expires: October 19, 2008 April 17, 2008
Contexts for IMAP4 Contexts for IMAP4
draft-cridland-imap-context-04 draft-cridland-imap-context-05
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 34 skipping to change at page 1, line 34
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 13, 2008. This Internet-Draft will expire on October 19, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2008). Copyright (C) The IETF Trust (2008).
Abstract Abstract
The IMAP4rev1 protocol has powerful search facilities as part of the The IMAP4rev1 protocol has powerful search facilities as part of the
core protocol, but lacks the ability to create live, updated results core protocol, but lacks the ability to create live, updated results
which can be easily handled. This memo provides such an extension, which can be easily handled. This memo provides such an extension,
skipping to change at page 3, line 25 skipping to change at page 3, line 25
not a strict requirement of this specification. not a strict requirement of this specification.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [KEYWORDS]. document are to be interpreted as described in [KEYWORDS].
Other capitalised words are typically names of IMAP extensions or Other capitalised words are typically names of IMAP extensions or
commands - these are uppercased for clarity only, and are case- commands - these are uppercased for clarity only, and are case-
insensitive. insensitive.
[[ Editorial comments are like this. XML2RFC working source is held
at http://svn.dave.cridland.net/svn/ietf-drafts/
draft-cridland-imap-context.xml ]]
2. Introduction 2. Introduction
Although the basic SEARCH command defined in [IMAP], and as enhanced Although the basic SEARCH command defined in [IMAP], and as enhanced
by [ESEARCH], is relatively compact in its representation, this by [ESEARCH], is relatively compact in its representation, this
reduction saves only a certain amount of data, and huge mailboxes reduction saves only a certain amount of data, and huge mailboxes
might overwhelm the storage available for results on even relatively might overwhelm the storage available for results on even relatively
high-end desktop machines. high-end desktop machines.
The SORT command, defined in [SORT] provides useful features, but is The SORT command, defined in [SORT] provides useful features, but is
hard to use effectively on changing mailboxes over low-bandwidth hard to use effectively on changing mailboxes over low-bandwidth
skipping to change at page 9, line 26 skipping to change at page 9, line 26
S: * 23762 FETCH (FLAGS (\Deleted \Seen)) S: * 23762 FETCH (FLAGS (\Deleted \Seen))
S: * 23763 FETCH (FLAGS ($Junk \Seen)) S: * 23763 FETCH (FLAGS ($Junk \Seen))
S: * ESEARCH (TAG "B01") UID ADDTO (0 32768:32769) S: * ESEARCH (TAG "B01") UID ADDTO (0 32768:32769)
Note that this example assumes messages 23762 and 23763 with UIDs Note that this example assumes messages 23762 and 23763 with UIDs
32768 and 32769 respectively previously had neither \Deleted nor 32768 and 32769 respectively previously had neither \Deleted nor
$Junk set. Also note that only the ADDTO is included, and not the $Junk set. Also note that only the ADDTO is included, and not the
(now changed) COUNT. (now changed) COUNT.
If the searching command "C01" initially generated a result list of If the searching command "C01" initially generated a result list of
4:5, then the following three responses are equivalent, and yield a 2734:2735, then the following three responses are equivalent, and
result list of 1:5: yield a result list of 2731:2735:
[...] [...]
S: * ESEARCH (TAG "C01") UID ADDTO (1 3 1 2 1 1) S: * ESEARCH (TAG "C01") UID ADDTO (1 2733 1 2732 1 2731)
S: * ESEARCH (TAG "C01") UID ADDTO (1 3) ADDTO (1 1:2) S: * ESEARCH (TAG "C01") UID ADDTO (1 2733) ADDTO (1 2731:2732)
S: * ESEARCH (TAG "C01") UID ADDTO (1 1:3) S: * ESEARCH (TAG "C01") UID ADDTO (1 2731:2733)
The last is the preferred representation. The last is the preferred representation.
4.3.4. REMOVEFROM Return Data Item 4.3.4. REMOVEFROM Return Data Item
The REMOVEFROM return data item contains, as payload, a list The REMOVEFROM return data item contains, as payload, a list
containing pairs of a context position and a set of result updates in containing pairs of a context position and a set of result updates in
the requested order to be removed starting from the context position. the requested order to be removed starting from the context position.
Where the searching command is a SEARCH or UID SEARCH command, the Where the searching command is a SEARCH or UID SEARCH command, the
context position MAY be zero. Each pair is processed in the order context position MAY be zero. Each pair is processed in the order
skipping to change at page 12, line 16 skipping to change at page 12, line 16
The collected formal syntax. This uses ABNF as defined in [ABNF]. The collected formal syntax. This uses ABNF as defined in [ABNF].
It includes definitions from [IMAP], [IMAP-ABNF], and [SORT]. It includes definitions from [IMAP], [IMAP-ABNF], and [SORT].
capability =/ "CONTEXT=SEARCH" / "CONTEXT=SORT" / "ESORT" capability =/ "CONTEXT=SEARCH" / "CONTEXT=SORT" / "ESORT"
;; <capability> from [IMAP] ;; <capability> from [IMAP]
command-select =/ "CANCELUPDATE" 1*(SP quoted) command-select =/ "CANCELUPDATE" 1*(SP quoted)
;; <command-select> from [IMAP] ;; <command-select> from [IMAP]
context-position = context-position context-position = number
;; Context position may be 0 for SEARCH result additions. ;; Context position may be 0 for SEARCH result additions.
;; <number> from [IMAP] ;; <number> from [IMAP]
modifier-context = "CONTEXT" modifier-context = "CONTEXT"
modifier-partial = "PARTIAL" SP seq-range modifier-partial = "PARTIAL" SP seq-range
;; <seq-range> from [IMAP] ;; <seq-range> from [IMAP]
modifier-update = "UPDATE" modifier-update = "UPDATE"
 End of changes. 7 change blocks. 
13 lines changed or deleted 9 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/