@@ -128,87 +128,87 @@ func writeSearchKey(enc *imapwire.Encoder, criteria *imap.SearchCriteria) {
128
128
enc .Special ('(' )
129
129
130
130
firstItem := true
131
- encodeItem := func (s string ) * imapwire.Encoder {
131
+ encodeItem := func () * imapwire.Encoder {
132
132
if ! firstItem {
133
133
enc .SP ()
134
134
}
135
135
firstItem = false
136
- return enc . Atom ( s )
136
+ return enc
137
137
}
138
138
139
139
for _ , seqSet := range criteria .SeqNum {
140
- encodeItem (seqSet . String () )
140
+ encodeItem (). SeqSet ( seqSet )
141
141
}
142
142
for _ , seqSet := range criteria .UID {
143
- encodeItem ("UID" ).SP ().SeqSet (seqSet )
143
+ encodeItem (). Atom ( "UID" ).SP ().SeqSet (seqSet )
144
144
}
145
145
146
146
if ! criteria .Since .IsZero () && ! criteria .Before .IsZero () && criteria .Before .Sub (criteria .Since ) == 24 * time .Hour {
147
- encodeItem ("ON" ).SP ().String (criteria .Since .Format (internal .DateLayout ))
147
+ encodeItem (). Atom ( "ON" ).SP ().String (criteria .Since .Format (internal .DateLayout ))
148
148
} else {
149
149
if ! criteria .Since .IsZero () {
150
- encodeItem ("SINCE" ).SP ().String (criteria .Since .Format (internal .DateLayout ))
150
+ encodeItem (). Atom ( "SINCE" ).SP ().String (criteria .Since .Format (internal .DateLayout ))
151
151
}
152
152
if ! criteria .Before .IsZero () {
153
- encodeItem ("BEFORE" ).SP ().String (criteria .Before .Format (internal .DateLayout ))
153
+ encodeItem (). Atom ( "BEFORE" ).SP ().String (criteria .Before .Format (internal .DateLayout ))
154
154
}
155
155
}
156
156
if ! criteria .SentSince .IsZero () && ! criteria .SentBefore .IsZero () && criteria .SentBefore .Sub (criteria .SentSince ) == 24 * time .Hour {
157
- encodeItem ("SENTON" ).SP ().String (criteria .SentSince .Format (internal .DateLayout ))
157
+ encodeItem (). Atom ( "SENTON" ).SP ().String (criteria .SentSince .Format (internal .DateLayout ))
158
158
} else {
159
159
if ! criteria .SentSince .IsZero () {
160
- encodeItem ("SENTSINCE" ).SP ().String (criteria .SentSince .Format (internal .DateLayout ))
160
+ encodeItem (). Atom ( "SENTSINCE" ).SP ().String (criteria .SentSince .Format (internal .DateLayout ))
161
161
}
162
162
if ! criteria .SentBefore .IsZero () {
163
- encodeItem ("SENTBEFORE" ).SP ().String (criteria .SentBefore .Format (internal .DateLayout ))
163
+ encodeItem (). Atom ( "SENTBEFORE" ).SP ().String (criteria .SentBefore .Format (internal .DateLayout ))
164
164
}
165
165
}
166
166
167
167
for _ , kv := range criteria .Header {
168
168
switch k := strings .ToUpper (kv .Key ); k {
169
169
case "BCC" , "CC" , "FROM" , "SUBJECT" , "TO" :
170
- encodeItem (k )
170
+ encodeItem (). Atom ( k )
171
171
default :
172
- encodeItem ("HEADER" ).SP ().String (kv .Key )
172
+ encodeItem (). Atom ( "HEADER" ).SP ().String (kv .Key )
173
173
}
174
174
enc .SP ().String (kv .Value )
175
175
}
176
176
177
177
for _ , s := range criteria .Body {
178
- encodeItem ("BODY" ).SP ().String (s )
178
+ encodeItem (). Atom ( "BODY" ).SP ().String (s )
179
179
}
180
180
for _ , s := range criteria .Text {
181
- encodeItem ("TEXT" ).SP ().String (s )
181
+ encodeItem (). Atom ( "TEXT" ).SP ().String (s )
182
182
}
183
183
184
184
for _ , flag := range criteria .Flag {
185
185
if k := flagSearchKey (flag ); k != "" {
186
- encodeItem (k )
186
+ encodeItem (). Atom ( k )
187
187
} else {
188
- encodeItem ("KEYWORD" ).SP ().Flag (flag )
188
+ encodeItem (). Atom ( "KEYWORD" ).SP ().Flag (flag )
189
189
}
190
190
}
191
191
for _ , flag := range criteria .NotFlag {
192
192
if k := flagSearchKey (flag ); k != "" {
193
- encodeItem ("UN" + k )
193
+ encodeItem (). Atom ( "UN" + k )
194
194
} else {
195
- encodeItem ("UNKEYWORD" ).SP ().Flag (flag )
195
+ encodeItem (). Atom ( "UNKEYWORD" ).SP ().Flag (flag )
196
196
}
197
197
}
198
198
199
199
if criteria .Larger > 0 {
200
- encodeItem ("LARGER" ).SP ().Number64 (criteria .Larger )
200
+ encodeItem (). Atom ( "LARGER" ).SP ().Number64 (criteria .Larger )
201
201
}
202
202
if criteria .Smaller > 0 {
203
- encodeItem ("SMALLER" ).SP ().Number64 (criteria .Smaller )
203
+ encodeItem (). Atom ( "SMALLER" ).SP ().Number64 (criteria .Smaller )
204
204
}
205
205
206
206
for _ , not := range criteria .Not {
207
- encodeItem ("NOT" ).SP ()
207
+ encodeItem (). Atom ( "NOT" ).SP ()
208
208
writeSearchKey (enc , & not )
209
209
}
210
210
for _ , or := range criteria .Or {
211
- encodeItem ("OR" ).SP ()
211
+ encodeItem (). Atom ( "OR" ).SP ()
212
212
writeSearchKey (enc , & or [0 ])
213
213
enc .SP ()
214
214
writeSearchKey (enc , & or [1 ])
0 commit comments