ietf-mta-filters
[Top] [All Lists]

Re: Are extension names case insensitive

2003-05-02 14:17:36


[Ned Freed]:

  [Kjetil Torgrim Homme]:
  > [Gisle Aas]:
  > >   Should this work?
  > >
  > >      REQUIRE "FILEINTO";
  > >      fileinto "FOO";
  >
  > I'd say no.

  I'd say yes. It isn't like we're going to define FILEINTO to have
  a different meaning than fileinto, so implementations get maximum
  interop by performing a case-insensitive comparison in this
  context.

but an implementation that allows that will create an incompatibility
which didn't exist before.

Incompatible only in the sense that something that has only one reasonable
interpretation wasn't interpreted in a reasonable way.

or perhaps it already exists?  Cyrus does
case-sensitive comparison on the capability string.  (added whitespace
also makes the comparison fail.)

And my implementation does it in a case-insensitive fashion. And I have
seen scripts written that take advange of this fact.

I see no reaosn to expect that added whitespace would be allowed, however.

how about FILEINTO itself?  the folder name is case sensitive in IMAP
(with the exception of the prefix "INBOX").  shouldn't Sieve do
case-insensitive matching on existing folders to find the correct one,
and then store into it?

That would depend on the characteristics of the underlying store. IMAP allows
for either case-sensitive or case-insensitive names. It is even possible for
the same IMAP server to handle different parts of its folder namespace in
different ways.

The way this should work is that sieve should act in a case-preserving fashion.
Once the message hits the message store the rules for folder name in that store
should apply. 

There's also the issue of internationalized mailbox names. The IMAP
specifications defines a modified form of UTF-7 for this. Sieve, on the other
hand, uses UTF-8. A case-preserving conversion from UTF-8 to modified UTF-7
is therefore appropriate in some cases.

Command arguments are a very different matter than command names. There is a
lengthy tradition in the IETF of treating command names and capability strings
and so on in a case-insensitive fashion. The exact opposite is true of
arguments: They need to preserve case, and if appropriate act in a
case-sensitive fashion. 

if "INBOX.foo" exists and you do FILEINTO "Inbox.Foo", Cyrus will file
the message into "INBOX".

A perfectly reasonable action on its part INO. Another reasonable alternative
would have been to create the folder "Inbox.Foo".

                                Ned

<Prev in Thread] Current Thread [Next in Thread>