On Sat, Mar 02, 2013 at 05:56:16PM +0100, Michal Sekletar wrote:
> Hi Carlos,
> 
> I shouldn't use word "Agreed", because it seems that it caused some confusion.
> 
> On Mar 2, 2013, at 3:55 PM, Carlos Silva <[email protected]> wrote:
> 
> > On Sat, Mar 2, 2013 at 1:46 PM, Michal Sekletar <[email protected]> 
> > wrote:
> > >> -                        if (!i->type == IGNORE_DIRECTORY_PATH || 
> > >> !streq(dent->d_name, p)) {
> > >> +                        if (!(i->type == IGNORE_DIRECTORY_PATH || 
> > >> !streq(dent->d_name, p))) {
> > > After the change we have:
> > >  if (i->type != I_D_P && streq(d_name, p))
> > 
> > Agreed.
> 
> This is what it will be after change, not saying that it is correct.
> 
> > > Shouldn't we instead have
> > >  if (i->type != I_D_P || strneq(d_name, p))
> > > ?
> > >
> > 
> > I don't think so, because we want to get rid of directory, when
    item type is different from IGNORE_DIRECTORY_PATH or if we are
    processing item of type I_D_N, but directory names does not match.

Putting this condition into code I get:
   i->type != I_D_P || (i->type == I_D_N && strneq(d_name, p))
which is equivalent to
   i->type != I_D_P || strneq(d_name, p)
which is what I posted above.

And this is different from the proposed version.

> I *assume* that original behaviour is actually correct.
The original was certainly incorrect because ! has higher precdence than
==.

Zbyszek

> > Thing is, you didn't kept original behaviour ;)
> > 
> > (!a || !b) == !(a && b) != !(a || !b)
> > 
> > or am I missing something here? ;)
> > 
> 
> I still believe that original approach is correct.
> 
> Michal
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to