procmail
[Top] [All Lists]

Re: Procmail 4.0 WishList

2004-06-26 22:59:28
Michael J Wise wrote:

Um... So you're telling me that a program that knows what to do with
this:

[specific sample of proposed syntax]

Could not also understand (and do the right thing with) this:

[two samples of a single current syntax, which interestingly was
 a recipe with no conditions]

If so, why?

Don't put words into my mouth. I never said that every last bit of current procmailrc syntax would break and that you couldn't come up with a single exception.

Yes, you found one that could survive. You want another? Variable assignments would survive in their current form as well, but there are many other forms valid now that would change in meaning under those proposals.

For starters consider these four that I thought of immediately upon reading the earlier posts:

Using unescaped braces to specify the number or range of repetitions conflicts with existing rcfiles where a brace in a regexp means a literal brace character.

Currently rcfiles may have blank lines anywhere that look good to the writer, and in recent versions blank lines may even interrupt recipes. The proposal is that if the line after a blank line is neither a variable assignment nor another blank line, it is the first condition of a new recipe.

The suggested use of a colon to start a condition, even if it had some way to recognize current-syntax flag lines, would break old pre-asterisk rcfiles where a regexp condition begins with a literal colon to match a colon. True, there is no such problem with a plus sign. Whether there is with greater-than or less-than signs at the beginnings of action lines, I can't say, because I don't understand how this new mail thrower will know which line is the action and not another condition. By reading ahead to see if the next line is blank? I remember how much Stephen tried to avoid any situation where procmail had to read an additional line in order to know what to do with the current line, so that there would never be any backing up in the rcfile. Perhaps backing up doesn't bother the redesign team.

The proposal also includes multiple actions from a recipe without the need for :0A before each additional action. So if a single word appears below an action line, currently that unsets the variable by that name; under the proposal, it would be an additional action, saving a copy of the message to a folder by that name.

All four of those would change the meaning of syntax that is legal now.

Now, here's a proposal of theirs that would not break anything in existing rcfiles, because it uses a currently invalid syntax: hanging multiple pipe or filter actions off a recipe without :0A to introduce each of the additional ones. Additional actions other than pipes or filters -- such as forwards to other addresses or saves to folders -- might be a syntax problem, but pipes and filters wouldn't.

So you found one sample of current syntax that could survive. There are many more. But there are also many that would be broken.

The redesigners either care about backward compatibility or they don't. If they do, they can't introduce forms that break it. If they don't care about it and they break it some of the time, they can't wave the backward compatibility flag in the places where they didn't break it.

If they want to support ":0" because they like it, or because you like it and they're beholden to you, fine. But they're also making many changes that are not backward compatible, so on the occasions when one is, they cannot claim that backward compatibility was their intention.


____________________________________________________________
procmail mailing list   Procmail homepage: http://www.procmail.org/
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

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