2 test_description='"notmuch search, count and show" with excludes in several variations'
5 # Generates a thread consisting of a top level message and 'length'
6 # replies. The subject of the top message 'subject: top message"
7 # and the subject of the nth reply in the thread is "subject: reply n"
12 generate_message '[subject]="'"${subject}: top message"'"' '[body]="'"body of top message"'"'
14 gen_thread_msg_id[0]=$gen_msg_id
15 for i in `seq 1 $length`
17 generate_message '[subject]="'"${subject}: reply $i"'"' \
18 "[in-reply-to]=\<$parent_id\>" \
19 '[body]="'"body of reply $i"'"'
20 gen_thread_msg_id[$i]=$gen_msg_id
23 notmuch new > /dev/null
24 # We cannot retrieve the thread_id until after we have run notmuch new.
25 gen_thread_id=`notmuch search --output=threads id:${gen_thread_msg_id[0]}`
28 #############################################
29 # These are the original search exclude tests.
31 test_begin_subtest "Search, exclude \"deleted\" messages from search"
32 notmuch config set search.exclude_tags deleted
33 generate_message '[subject]="Not deleted"'
34 not_deleted_id=$gen_msg_id
35 generate_message '[subject]="Deleted"'
36 notmuch new > /dev/null
37 notmuch tag +deleted id:$gen_msg_id
38 deleted_id=$gen_msg_id
39 output=$(notmuch search subject:deleted | notmuch_search_sanitize)
40 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)"
42 test_begin_subtest "Search, exclude \"deleted\" messages from message search"
43 output=$(notmuch search --output=messages subject:deleted | notmuch_search_sanitize)
44 test_expect_equal "$output" "id:$not_deleted_id"
46 test_begin_subtest "Search, exclude \"deleted\" messages from message search --exclude=false"
47 output=$(notmuch search --exclude=false --output=messages subject:deleted | notmuch_search_sanitize)
48 test_expect_equal "$output" "id:$not_deleted_id
51 test_begin_subtest "Search, exclude \"deleted\" messages from message search (non-existent exclude-tag)"
52 notmuch config set search.exclude_tags deleted non_existent_tag
53 output=$(notmuch search --output=messages subject:deleted | notmuch_search_sanitize)
54 test_expect_equal "$output" "id:$not_deleted_id"
55 notmuch config set search.exclude_tags deleted
57 test_begin_subtest "Search, exclude \"deleted\" messages from search, overridden"
58 output=$(notmuch search subject:deleted and tag:deleted | notmuch_search_sanitize)
59 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Deleted (deleted inbox unread)"
61 test_begin_subtest "Search, exclude \"deleted\" messages from threads"
62 add_message '[subject]="Not deleted reply"' '[in-reply-to]="<$gen_msg_id>"'
63 output=$(notmuch search subject:deleted | notmuch_search_sanitize)
64 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
65 thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted inbox unread)"
67 test_begin_subtest "Search, don't exclude \"deleted\" messages when --exclude=flag specified"
68 output=$(notmuch search --exclude=flag subject:deleted | notmuch_search_sanitize)
69 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
70 thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted inbox unread)"
72 test_begin_subtest "Search, don't exclude \"deleted\" messages from search if not configured"
73 notmuch config set search.exclude_tags
74 output=$(notmuch search subject:deleted | notmuch_search_sanitize)
75 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
76 thread:XXX 2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox unread)"
79 ########################################################
80 # We construct some threads for the tests. We use the tag "test" to
81 # indicate which messages we will search for.
83 # A thread of deleted messages; test matches one of them.
84 generate_thread "All messages excluded: single match" 5
85 notmuch tag +deleted $gen_thread_id
86 notmuch tag +test id:${gen_thread_msg_id[2]}
88 # A thread of deleted messages; test matches two of them.
89 generate_thread "All messages excluded: double match" 5
90 notmuch tag +deleted $gen_thread_id
91 notmuch tag +test id:${gen_thread_msg_id[2]}
92 notmuch tag +test id:${gen_thread_msg_id[4]}
94 # A thread some messages deleted; test only matches a deleted message.
95 generate_thread "Some messages excluded: single excluded match" 5
96 notmuch tag +deleted +test id:${gen_thread_msg_id[3]}
98 # A thread some messages deleted; test only matches a non-deleted message.
99 generate_thread "Some messages excluded: single non-excluded match" 5
100 notmuch tag +deleted id:${gen_thread_msg_id[2]}
101 notmuch tag +test id:${gen_thread_msg_id[4]}
103 # A thread no messages deleted; test matches a message.
104 generate_thread "No messages excluded: single match" 5
105 notmuch tag +test id:${gen_thread_msg_id[3]}
107 # Temporarily remove excludes to get list of matching messages
108 notmuch config set search.exclude_tags
109 matching_message_ids=( `notmuch search --output=messages tag:test` )
110 notmuch config set search.exclude_tags deleted
112 #########################################
113 # Notmuch search tests
115 test_begin_subtest "Search, default exclusion (thread summary)"
116 output=$(notmuch search tag:test | notmuch_search_sanitize)
117 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread)
118 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)"
120 test_begin_subtest "Search, default exclusion (messages)"
121 output=$(notmuch search --output=messages tag:test | notmuch_search_sanitize)
122 test_expect_equal "$output" "${matching_message_ids[4]}
123 ${matching_message_ids[5]}"
125 test_begin_subtest "Search, exclude=true (thread summary)"
126 output=$(notmuch search --exclude=true tag:test | notmuch_search_sanitize)
127 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread)
128 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)"
130 test_begin_subtest "Search, exclude=true (messages)"
131 output=$(notmuch search --exclude=true --output=messages tag:test | notmuch_search_sanitize)
132 test_expect_equal "$output" "${matching_message_ids[4]}
133 ${matching_message_ids[5]}"
135 test_begin_subtest "Search, exclude=false (thread summary)"
136 output=$(notmuch search --exclude=false tag:test | notmuch_search_sanitize)
137 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
138 thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
139 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)
140 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread)
141 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)"
143 test_begin_subtest "Search, exclude=false (messages)"
144 output=$(notmuch search --exclude=false --output=messages tag:test | notmuch_search_sanitize)
145 test_expect_equal "$output" "${matching_message_ids[0]}
146 ${matching_message_ids[1]}
147 ${matching_message_ids[2]}
148 ${matching_message_ids[3]}
149 ${matching_message_ids[4]}
150 ${matching_message_ids[5]}"
152 test_begin_subtest "Search, exclude=flag (thread summary)"
153 output=$(notmuch search --exclude=flag tag:test | notmuch_search_sanitize)
154 test_expect_equal "$output" "thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
155 thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; All messages excluded: double match: reply 4 (deleted inbox test unread)
156 thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)
157 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread)
158 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)"
160 test_begin_subtest "Search, exclude=flag (messages)"
161 output=$(notmuch search --exclude=flag --output=messages tag:test | notmuch_search_sanitize)
162 test_expect_equal "$output" "${matching_message_ids[0]}
163 ${matching_message_ids[1]}
164 ${matching_message_ids[2]}
165 ${matching_message_ids[3]}
166 ${matching_message_ids[4]}
167 ${matching_message_ids[5]}"
169 test_begin_subtest "Search, default exclusion: tag in query (thread summary)"
170 output=$(notmuch search tag:test and tag:deleted | notmuch_search_sanitize)
171 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
172 thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
173 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)"
175 test_begin_subtest "Search, default exclusion: tag in query (messages)"
176 output=$(notmuch search --output=messages tag:test and tag:deleted | notmuch_search_sanitize)
177 test_expect_equal "$output" "${matching_message_ids[0]}
178 ${matching_message_ids[1]}
179 ${matching_message_ids[2]}
180 ${matching_message_ids[3]}"
182 test_begin_subtest "Search, exclude=true: tag in query (thread summary)"
183 output=$(notmuch search --exclude=true tag:test and tag:deleted | notmuch_search_sanitize)
184 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
185 thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
186 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)"
188 test_begin_subtest "Search, exclude=true: tag in query (messages)"
189 output=$(notmuch search --exclude=true --output=messages tag:test and tag:deleted | notmuch_search_sanitize)
190 test_expect_equal "$output" "${matching_message_ids[0]}
191 ${matching_message_ids[1]}
192 ${matching_message_ids[2]}
193 ${matching_message_ids[3]}"
195 test_begin_subtest "Search, exclude=false: tag in query (thread summary)"
196 output=$(notmuch search --exclude=false tag:test and tag:deleted | notmuch_search_sanitize)
197 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
198 thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
199 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)"
201 test_begin_subtest "Search, exclude=false: tag in query (messages)"
202 output=$(notmuch search --exclude=false --output=messages tag:test and tag:deleted | notmuch_search_sanitize)
203 test_expect_equal "$output" "${matching_message_ids[0]}
204 ${matching_message_ids[1]}
205 ${matching_message_ids[2]}
206 ${matching_message_ids[3]}"
208 test_begin_subtest "Search, exclude=flag: tag in query (thread summary)"
209 output=$(notmuch search --exclude=flag tag:test and tag:deleted | notmuch_search_sanitize)
210 test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
211 thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
212 thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)"
214 test_begin_subtest "Search, exclude=flag: tag in query (messages)"
215 output=$(notmuch search --exclude=flag --output=messages tag:test and tag:deleted | notmuch_search_sanitize)
216 test_expect_equal "$output" "${matching_message_ids[0]}
217 ${matching_message_ids[1]}
218 ${matching_message_ids[2]}
219 ${matching_message_ids[3]}"
222 #########################################################
223 # Notmuch count tests
225 test_begin_subtest "Count, default exclusion (messages)"
226 output=$(notmuch count tag:test)
227 test_expect_equal "$output" "2"
229 test_begin_subtest "Count, default exclusion (threads)"
230 output=$(notmuch count --output=threads tag:test)
231 test_expect_equal "$output" "2"
233 test_begin_subtest "Count, exclude=true (messages)"
234 output=$(notmuch count --exclude=true tag:test)
235 test_expect_equal "$output" "2"
237 test_begin_subtest "Count, exclude=true (threads)"
238 output=$(notmuch count --output=threads --exclude=true tag:test)
239 test_expect_equal "$output" "2"
241 test_begin_subtest "Count, exclude=false (messages)"
242 output=$(notmuch count --exclude=false tag:test)
243 test_expect_equal "$output" "6"
245 test_begin_subtest "Count, exclude=false (threads)"
246 output=$(notmuch count --output=threads --exclude=false tag:test)
247 test_expect_equal "$output" "5"
249 test_begin_subtest "Count, default exclusion: tag in query (messages)"
250 output=$(notmuch count tag:test and tag:deleted)
251 test_expect_equal "$output" "4"
253 test_begin_subtest "Count, default exclusion: tag in query (threads)"
254 output=$(notmuch count --output=threads tag:test and tag:deleted)
255 test_expect_equal "$output" "3"
257 test_begin_subtest "Count, exclude=true: tag in query (messages)"
258 output=$(notmuch count --exclude=true tag:test and tag:deleted)
259 test_expect_equal "$output" "4"
261 test_begin_subtest "Count, exclude=true: tag in query (threads)"
262 output=$(notmuch count --output=threads --exclude=true tag:test and tag:deleted)
263 test_expect_equal "$output" "3"
265 test_begin_subtest "Count, exclude=false: tag in query (messages)"
266 output=$(notmuch count --exclude=false tag:test and tag:deleted)
267 test_expect_equal "$output" "4"
269 test_begin_subtest "Count, exclude=false: tag in query (threads)"
270 output=$(notmuch count --output=threads --exclude=false tag:test and tag:deleted)
271 test_expect_equal "$output" "3"
273 #############################################################
276 test_begin_subtest "Show, default exclusion"
277 output=$(notmuch show tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
278 test_expect_equal "$output" "
\fmessage{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
279 Subject: Some messages excluded: single non-excluded match: reply 4
280 \fmessage{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
281 Subject: No messages excluded: single match: reply 3"
283 test_begin_subtest "Show, default exclusion (entire-thread)"
284 output=$(notmuch show --entire-thread tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
285 test_expect_equal "$output" "
\fmessage{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
286 Subject: Some messages excluded: single non-excluded match: top message
287 \fmessage{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
288 Subject: Some messages excluded: single non-excluded match: reply 1
289 \fmessage{ id:XXXXX depth:2 match:0 excluded:1 filename:XXXXX
290 Subject: Some messages excluded: single non-excluded match: reply 2
291 \fmessage{ id:XXXXX depth:3 match:0 excluded:0 filename:XXXXX
292 Subject: Some messages excluded: single non-excluded match: reply 3
293 \fmessage{ id:XXXXX depth:4 match:1 excluded:0 filename:XXXXX
294 Subject: Some messages excluded: single non-excluded match: reply 4
295 \fmessage{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
296 Subject: Some messages excluded: single non-excluded match: reply 5
297 \fmessage{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
298 Subject: No messages excluded: single match: top message
299 \fmessage{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
300 Subject: No messages excluded: single match: reply 1
301 \fmessage{ id:XXXXX depth:2 match:0 excluded:0 filename:XXXXX
302 Subject: No messages excluded: single match: reply 2
303 \fmessage{ id:XXXXX depth:3 match:1 excluded:0 filename:XXXXX
304 Subject: No messages excluded: single match: reply 3
305 \fmessage{ id:XXXXX depth:4 match:0 excluded:0 filename:XXXXX
306 Subject: No messages excluded: single match: reply 4
307 \fmessage{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
308 Subject: No messages excluded: single match: reply 5"
310 test_begin_subtest "Show, exclude=true"
311 output=$(notmuch show --exclude=true tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
312 test_expect_equal "$output" "
\fmessage{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
313 Subject: Some messages excluded: single non-excluded match: reply 4
314 \fmessage{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
315 Subject: No messages excluded: single match: reply 3"
317 test_begin_subtest "Show, exclude=true (entire-thread)"
318 output=$(notmuch show --entire-thread --exclude=true tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
319 test_expect_equal "$output" "
\fmessage{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
320 Subject: Some messages excluded: single non-excluded match: top message
321 \fmessage{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
322 Subject: Some messages excluded: single non-excluded match: reply 1
323 \fmessage{ id:XXXXX depth:2 match:0 excluded:1 filename:XXXXX
324 Subject: Some messages excluded: single non-excluded match: reply 2
325 \fmessage{ id:XXXXX depth:3 match:0 excluded:0 filename:XXXXX
326 Subject: Some messages excluded: single non-excluded match: reply 3
327 \fmessage{ id:XXXXX depth:4 match:1 excluded:0 filename:XXXXX
328 Subject: Some messages excluded: single non-excluded match: reply 4
329 \fmessage{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
330 Subject: Some messages excluded: single non-excluded match: reply 5
331 \fmessage{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
332 Subject: No messages excluded: single match: top message
333 \fmessage{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
334 Subject: No messages excluded: single match: reply 1
335 \fmessage{ id:XXXXX depth:2 match:0 excluded:0 filename:XXXXX
336 Subject: No messages excluded: single match: reply 2
337 \fmessage{ id:XXXXX depth:3 match:1 excluded:0 filename:XXXXX
338 Subject: No messages excluded: single match: reply 3
339 \fmessage{ id:XXXXX depth:4 match:0 excluded:0 filename:XXXXX
340 Subject: No messages excluded: single match: reply 4
341 \fmessage{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
342 Subject: No messages excluded: single match: reply 5"
344 test_begin_subtest "Show, exclude=false"
345 output=$(notmuch show --exclude=false tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
346 test_expect_equal "$output" "
\fmessage{ id:XXXXX depth:0 match:1 excluded:1 filename:XXXXX
347 Subject: All messages excluded: single match: reply 2
348 \fmessage{ id:XXXXX depth:0 match:1 excluded:1 filename:XXXXX
349 Subject: All messages excluded: double match: reply 2
350 \fmessage{ id:XXXXX depth:1 match:1 excluded:1 filename:XXXXX
351 Subject: All messages excluded: double match: reply 4
352 \fmessage{ id:XXXXX depth:0 match:1 excluded:1 filename:XXXXX
353 Subject: Some messages excluded: single excluded match: reply 3
354 \fmessage{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
355 Subject: Some messages excluded: single non-excluded match: reply 4
356 \fmessage{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
357 Subject: No messages excluded: single match: reply 3"
359 test_begin_subtest "Show, exclude=false (entire-thread)"
360 output=$(notmuch show --entire-thread --exclude=false tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
361 test_expect_equal "$output" "
\fmessage{ id:XXXXX depth:0 match:0 excluded:1 filename:XXXXX
362 Subject: All messages excluded: single match: top message
363 \fmessage{ id:XXXXX depth:1 match:0 excluded:1 filename:XXXXX
364 Subject: All messages excluded: single match: reply 1
365 \fmessage{ id:XXXXX depth:2 match:1 excluded:1 filename:XXXXX
366 Subject: All messages excluded: single match: reply 2
367 \fmessage{ id:XXXXX depth:3 match:0 excluded:1 filename:XXXXX
368 Subject: All messages excluded: single match: reply 3
369 \fmessage{ id:XXXXX depth:4 match:0 excluded:1 filename:XXXXX
370 Subject: All messages excluded: single match: reply 4
371 \fmessage{ id:XXXXX depth:5 match:0 excluded:1 filename:XXXXX
372 Subject: All messages excluded: single match: reply 5
373 \fmessage{ id:XXXXX depth:0 match:0 excluded:1 filename:XXXXX
374 Subject: All messages excluded: double match: top message
375 \fmessage{ id:XXXXX depth:1 match:0 excluded:1 filename:XXXXX
376 Subject: All messages excluded: double match: reply 1
377 \fmessage{ id:XXXXX depth:2 match:1 excluded:1 filename:XXXXX
378 Subject: All messages excluded: double match: reply 2
379 \fmessage{ id:XXXXX depth:3 match:0 excluded:1 filename:XXXXX
380 Subject: All messages excluded: double match: reply 3
381 \fmessage{ id:XXXXX depth:4 match:1 excluded:1 filename:XXXXX
382 Subject: All messages excluded: double match: reply 4
383 \fmessage{ id:XXXXX depth:5 match:0 excluded:1 filename:XXXXX
384 Subject: All messages excluded: double match: reply 5
385 \fmessage{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
386 Subject: Some messages excluded: single excluded match: top message
387 \fmessage{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
388 Subject: Some messages excluded: single excluded match: reply 1
389 \fmessage{ id:XXXXX depth:2 match:0 excluded:0 filename:XXXXX
390 Subject: Some messages excluded: single excluded match: reply 2
391 \fmessage{ id:XXXXX depth:3 match:1 excluded:1 filename:XXXXX
392 Subject: Some messages excluded: single excluded match: reply 3
393 \fmessage{ id:XXXXX depth:4 match:0 excluded:0 filename:XXXXX
394 Subject: Some messages excluded: single excluded match: reply 4
395 \fmessage{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
396 Subject: Some messages excluded: single excluded match: reply 5
397 \fmessage{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
398 Subject: Some messages excluded: single non-excluded match: top message
399 \fmessage{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
400 Subject: Some messages excluded: single non-excluded match: reply 1
401 \fmessage{ id:XXXXX depth:2 match:0 excluded:1 filename:XXXXX
402 Subject: Some messages excluded: single non-excluded match: reply 2
403 \fmessage{ id:XXXXX depth:3 match:0 excluded:0 filename:XXXXX
404 Subject: Some messages excluded: single non-excluded match: reply 3
405 \fmessage{ id:XXXXX depth:4 match:1 excluded:0 filename:XXXXX
406 Subject: Some messages excluded: single non-excluded match: reply 4
407 \fmessage{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
408 Subject: Some messages excluded: single non-excluded match: reply 5
409 \fmessage{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
410 Subject: No messages excluded: single match: top message
411 \fmessage{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
412 Subject: No messages excluded: single match: reply 1
413 \fmessage{ id:XXXXX depth:2 match:0 excluded:0 filename:XXXXX
414 Subject: No messages excluded: single match: reply 2
415 \fmessage{ id:XXXXX depth:3 match:1 excluded:0 filename:XXXXX
416 Subject: No messages excluded: single match: reply 3
417 \fmessage{ id:XXXXX depth:4 match:0 excluded:0 filename:XXXXX
418 Subject: No messages excluded: single match: reply 4
419 \fmessage{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
420 Subject: No messages excluded: single match: reply 5"