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

Questions about the Require Command.

2000-12-12 08:57:21
2 Questions.

--------------------------------------------------------------------------------

  2.10.5 Extensions and Optional Features

  <snip>

  If an extension is not enabled with "require", implementations MUST
  treat it as if they did not support it at all.
By this do we mean that if a script uses a fileinto action, but didn't declare 
it with require, then we should produce an "unsupported extension" error when 
we reach the fileinto token even if we support fileinto?

i.e. take the following script.
  require "regex"

  if (header :regex "Cc" 
      "Some regular expression or other") {
      fileinto "FolderName";
  }
If we support both fileinto and regex are we meant to produce an error here?  I 
could see how you could interpret section 2.10.5 this way but surely if we are 
being conservative with what we produce, and liberal with what we receive we 
should accept this script and accept the fileinto command?

Could someone clear this up for me?  I'd suggest a re-wording of the section to 
make the intention clearer/more spelt out.


--------------------------------------------------------------------------------

  3.2 Control Structure Require

  <snip>
  The require command, if present, MUST be used before anything other
  than a require can be used. An error occurs if a require appears
  after a command other than require.

Could we improve the wording here too?  It took me quite a while to get my head 
round what you were getting at (even though I could have guessed).  I am 
assuming that this means that you may only have comments, whitespace and 
require commands before a require command.  It could read:

  Require commands, if present, MUST occur before all other types of command in 
the script.  An error occurs if a require appears after a command other than 
require.

So therefore this would be ok:

  /* This is the main require extension command that declares the extensions 
that we are about to use */
  require ["regex","fileinto"]

  # This is an auxilliary require command added by a user.
  require "x_some_other_extentsion"

  if (header :regex "Cc" 
      "Some regular expression or other") {
      fileinto "FolderName";
  }
but not
  require "regex"
  if (header :regex "Cc" 
      "Some regular expression or other") {
      keep;
      stop;
  }

  require "fileinto"

--------------------------------------------------------------------------------

Could I also just say that THE ONLY avenue though which this mail account is 
getting any junk mail at all, is through being on this mailing list.  Kinda 
ironic isn't it?

Cheers,

Nigel

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