Subject: More on thread implementation

From: Raul Dias <[email-masked]>
Date: Sun, 2 Dec 2001 03:55:07 -0200

Continuing on the previuous problems regarding threads, I almost finished it.
However, c-client is behaving in a way almost like what it does with imapd.

The tested mailbox is in http://www.swi.com.br/~chaos/test.mbox .
It is a piece of the lartc maillist, so no problem on using this as a test case.

Using imapd from imap-2001a, the command:

A003 UID THREAD REFERENCES US-ASCII ALL

returns:

(1430 1432)(375)(501)((1 2 3)(4))(5 6 7 12 15)(8 9 10 11)(13)(14 16 17 18 19)(30 31 33 34 35 36 43 (45)(213))(58 60 61 62 63 64 65 66)(59)(67 68)(72 73)(83 (87)(89 91))(84 (88)(86))(104 (105)(106 111 121 139)(108 109 110))(131 140 143 (144)(145))((159 (160 162 (163 165)(164
166))(161))(167 188)(168 169 170 179 (189)(191 193))(197))(158)((173)(181 183)(190))(175 176 (177 184 185 186)(180))(201)(204 (205)(208 209 210 212 (214 216 217 220)(215)))(258 (261 262 263 264 (265)(266))(267))(259 260 268)((289 (290 291 292)(296)(295))(297))((298)(300)(299 301)(309))(323 (327 328 329 336 337 339 340)(324 325 341))(322 (326)(330 (331)(332))(333 (335)(343)))(334 (338)(419)(472 476 (479 485 486)(492)))(355
(358 359 360)(362))(356 357)(361)(392 394 (395 396)(397))(393)(398 399 400 (401)(402))(552 (553)(555 566)(557)(559 560))

Which it is correct.  I checked the messages references to be sure.

Now when parsing the THREADNODE structure for the same mailbox, I get:

(1430 1432)(375)(501)(1 2 3 4)(5 6 7 15 12)(8 10 9 11)(13)(16 17 18)
(14)(19)(30)(31 33 43 45)(34 35)(36)(58 60 61 63 62)
(59)(64 65 67 68)(66)(72 73)(83 89)(84 86)(87 91)(88)
(104 108 109 110)(105)(106 111)(121 139)(131 140 143 144)
(145)(159 160 161 162 163 164 165 166 167 168 169 170
179 188 189 191 193 197)(158)(173 181 190)(175 176 177 
180 184 185 186)(183)(201)(204 208 210)
(205 209 212 214 215 216 217 220)(213)(258 261 262 263 264 265 266 267)(259 260 268)(289 290 291 292 296 295 297 300)(298 299 301 309)(323 327 328 329 336 337 339 340)(326 322 330 331 332 333 335 343)(325 324 341)(334 338 419 472 476)(355 358 359 360 362)(356 357)(361)(392)(393)(394 395 396 397)(398 399 400 401 402)(479 492)(485 486)(552 553 555 557 559 560 566)

Almost the same, but watch out the order which they appear:
* msg 4 should be inside a ( )
* msgs 12 and 15, 9 and 10 are swaped.

This kind of thing happens on other places too.

So, this could be an error in the program, right? I am not so sure,
here is what I get for each THREADNODE structure during the parsing:

msg_num  branch   next
------- ------- -------
1430    375     1432
1432    none    none
375     501     none
501     1       none
1       5       2
2       none    3
3       none    4
4       none    none
5       8       6
6       none    7
7       none    15
15      none    12
12      none    none

AFAIU, the line "3 none 4" should be "3 4 none" and the lines
"7 none 15", "15 none 12" and "12 none none" should be
"7 none 12", "12 none 15" and "15 none none".

So, why there is this little difference yet?

I need a clue to what might have being causing it.

Regards,

Raul Dias
-- 
------------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/c-client-list.html
------------------------------------------------------------------

---

From: Raul Dias <[email-masked]>
Date: Mon, 3 Dec 2001 17:11:47 -0200

>However, c-client is behaving in a way almost like what it does with imapd.

Got it! It was a typo that made it behave as 'orderedsubjects' and not 'references'.

I should be sleeping by that time.

Raul Dias