Hello!
On Fri, 18 Oct 2002, Nico Erfurth wrote:
> > Every bug is usefull. It's very simple to invent example of
> > usefullness of any trouble. But it will stay a bug.
>
> Man, this isn't a bug, this is just a "we don't care about".
Hmmm... So, why don't "we don't care about" after applying my
patch? ;-))
> > 1. All examples in spec.txt have balanced {}.
>
> Sure, but this is the usual behaviour "escape a char if it could cause
> trouble", again, we are NOT talking about C/Perl/XXX.
There are no words about "escape a char if it could cause
trouble"! The documentation seemed to me as a definite set of syntaxis
and semantics rules. All constructs, that can be built according to
documentation, should work. Now I see, it's wrong.
You mean, I should read specs.txt as a list of ideas, how it
"should, but may not" work. You mean, that users of MTA (as you pointed
out, exim is MTA, not C/Perl/fuzzy logic interpreter/self-debugger)
should read sources and possibly debug exim, to understand why
constructs do not work? A great idea! "If you want a MTA, get gdb
first! (And study C, of course)".
Once more: it's really serious undocumented feature/bug, which
affects all syntaxis constructs used by exim. It should be definitely
documented, or fixed.
> > 2. There are no words about the possibility of unbalansed {}.
>
> If the docs would mention EVERY possibility, you would need 10 years to
> read them, and Phil would need 40 years to write it.
>
> > 3. Can you exactly document exim's behaviour now? Especially, if lookup
> > requests return something with {} ? Or using lookup in conditional
> > expressions? I suppose, now exim's behaviour is completely unpredictable.
> > It's undocumented. It's a BUG.
>
> It will not be better with your patch, think about it twice.
> You are just thinking about balancing brackets, but they don't need to
> be balanced, if they are escaped.
I've thinked about it many times. It's really difficult to
create/understand/debug sentences with unbalanced {}. Just as an idea:
if it is really usefull, why perl developers (who broke many commonly
adopted programming language constructs) don't use unbalanced {} ?
Please, think yourself. Is it really easier for you to undestand
and create unbalanced constructs? Especially, the way exim is handling
them? You have to predict, how many '}' you should supply to your
new construct!
Bye. Alex.