Re: [Exim] [patch] A few minor fixes/improvements.

Top Page
Delete this message
Reply to this message
Author: Nico Erfurth
Date:  
To: Alexander V Alekseev
CC: exim-users
Subject: Re: [Exim] [patch] A few minor fixes/improvements.
Alexander V Alekseev 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?
> ;-))


Because it will BREAK configurations, why do YOU not just use escaping,
like anyone else would do in such a situation? I do escape } and { if i
need them in between and i did it because it was logical.

Please show me an example where the current behaviour causes trouble.

>>> 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"!


Yes, sometimes one should THINK! ;)

> 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


In fact, i'm reading this list since some years, and i NEVER saw someone
complaining about it, i think until now anyone was clueful enough to
just escape the }.

> great idea! "If you want a MTA, get gdb first! (And study C, of
> course)". Once more: it's really serious undocumented feature/bug,


The comment about reading code before patching was meant for YOU, you
patched in a place, where the solution was 25 lines above it.

> which affects all syntaxis constructs used by exim. It should be
> definitely documented, or fixed.


The exim-parser is meant to be FAST, not to be a complete scripting
solution, i think Philip would have used Yacc or Bison if he wanted
something like this.

>>> 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 {} ?


See my last comment.

> 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!


Hu?
Why should i need to predict them?
I just escape } and { if they are located in a string.
And you don't need balanced constructs all the time, don't you
understand this? a } could be without any { in a string, what you do, is
BREAKING this, you break something that isn't wrong at all.

ciao, Nico