different comparators would require different tables, I think. The table Cyrus usually uses isn't suitable for i;ascii-casemap since space isn't significant, but transcoding to UTF-8 and doing a dumb comparison is all that's required, a big improvement on what Cyrus is doing now, and not hard to implement.>First, our Sieve implementation currently doesn't deal with RFC 2047 >encoded headers---or rather, it just compares the undecoded headers >against the UTF-8 string. This is obviously a bug which sadly isn't in >bugzilla. > >Ken and I talked (a long time ago) about this. The main issue is that >Cyrus's character comparison routines remove whitespace and always >perform casemapping, and this is probably inappropriate for Sieve's >use. Fixing this is probably not difficult, but I'd prefer not to have >multiple different canonicalization tables.I _think_ I still have the code around which implements the Sieve charset tables and does the rfc2047 decoding. I don't recall why we had to have the separate tables however.
Tim