>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.
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.

Tim

Reply via email to