The outliner builder doesn't do collation-based sorting. It should.
I think the collation interface is used for the outliner builder. http://lxr.mozilla.org/seamonkey/source/content/xul/templates/src/nsXULOutlinerBuilder.cpp#272 But the key is treated as PRUnichar*, http://lxr.mozilla.org/seamonkey/source/content/xul/templates/src/nsXULOutlinerBuilder.cpp#1842 The key is a binary instead of a null terminated unicode string. Should the change involve the clients side change (e.g. mail folder sort) or can the outliner builder change to support binary key first then the clients can migrate.
Let's get the rdfliner to work, then we can convert clients over. (That way nothing breaks in the interim.)
Created attachment 66013 [details] [diff] [review] make nsXULOutlinerBuilder grok nsIRDFBlob This patch makes nsXULOutlinerBuilder grok nsIRDFBlob, and fixes nsIRDFBlob::GetValue to return a |_const_ PRUint8 **|.
With the patch, what changes do the clients need (e.g. message folder sort)? Would that be just create a node as nsIRDFBlob?
yes, we will have to createNodes as nsIRDFBlob, plus there will be some changes to treat key as PRUint8* instead of PRUnichar* in nsMsgFolder.cpp
Created attachment 66018 [details] [diff] [review] patch that compiles! For some reason, I think my version of nsIRDFService.idl was picking up |octet_ptr| from somewhere else. This patch creates a new type, |const_octet_ptr|, and uses it.
Just when I recompiled my tree :( First patch compiled fine though.
Comment on attachment 66018 [details] [diff] [review] patch that compiles! compiles fine, works fine, looks good. r=varga
Comment on attachment 66018 [details] [diff] [review] patch that compiles! sr=hyatt
Fix checked in.
waterson, we need to do similar thing for XULSortService or is that going to be taken care of another bug ?
tingley has that covered in bug 116329.