procmail
[Top] [All Lists]

how to read the `c' flag

1998-02-02 15:19:38
Kay Hayen asked,

| Interesting. My vision of this more to think of CONTINUE with message
| processing afterwards even if conditions matched. Is this basically the
| same, or are there any differences in this speaking? I find CONTINUE
| concept easier to understand than thinking of local copies, but maybe
| braces do not act like that?

Precisely: when you have braces, thinking "continue" instead of "copy" or
"clone" can get you into trouble.

Early versions for procmail, before braces and before cloning, called the
`c' flag "continue" in their documentation; I think it is still called that
in the source.

When Stephen introduced braces (but not cloning at this point), it was
of course implicit that an action line of "{" was non-delivering, and
a `c' was extraneous.  People put c's there because they wanted procmail
to continue to the recipes inside the braces on a match, and procmail 
brushed it off with an "extraneous c-flag" warning.  No harm done.

When Stephen introduced cloning, though, I was rather upset that he was
giving double duty to `c' instead of introducing something new like `C'
for it, especially because people who absolutely wanted no clone but intended
the recipes inside the braces to run in the same invocation of procmail as
everything else were mistakenly putting c's on their braces to make sure
procmail would "continue".  People would (and did) get double deliveries.

Roman Czyborra, though, said that if you consider `c' to stand for "copy",
that covers both uses of `c': provide a copy to a simple recipe or, if there
are braces, to a clone procmail that will handle the recipes inside the
braces.  Stephen agreed and changed the documentation accordingly.

Longtime users of procmail and people who read old docs may still think of it
as "continue", but since the introduction of clones, that is not a good way
to look at it.  "Copy" is much safer.

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