Re: [PATCH] linux/string.h: Introduce streq macro.

From: Steven Rostedt
Date: Tue Apr 26 2011 - 21:32:13 EST


On Tue, 2011-04-26 at 20:52 -0400, Ted Ts'o wrote:
> On Tue, Apr 26, 2011 at 03:49:49PM -0300, Thiago Farina wrote:
> > This macro is arguably more readable than its variants:
> > - !strcmp(a, b)
> > - strcmp(a, b) == 0
> >
> > Signed-off-by: Thiago Farina <tfransosi@xxxxxxxxx>
>
> I don't think this is not a good idea.
>
> First of all, changing 2800 instances of strcmp will induce a huge
> amount of code churn, that will cause patches to break, etc. And
> whether streq() looks better is going to be very much a case of
> personal preference. I'm so used to !strcmp(a, b) that streq(a, b)
> would be harder for me, just because I'm not used to it.
>
> So I'd NACK a change like this to any parts of the kernel that I'm
> maintaining. If another people feel that way, it's not clear that
> having two different conventions in the kernel would necessarily help...
>

I agree that this entire thing is all about personal preference, and
that a lot of these conventions is determined by who maintains the code.

This all started when I changed code that I need to maintain from:

if (0 == var)

to

if (var == 0)

I understand why the first is done, but it just trips me up every time I
see it.

I also prefer:

if (strcmp(a, b) == 0)

over

if (!strcmp(a, b))

because the ! in that statement makes my mind say "a != b". But again,
this is all about preference.

As for me, I would not mind a streq() as it is a different
function/macro, that I would not get it confused with strcmp().

I acked the patch, because I would not NAK changes that converted the
strcmp() to streq() in my code (as long as it was done correctly).

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/