Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Mar 2002 15:27:49 -0500
From:      Garance A Drosihn <drosih@rpi.edu>
To:        "Brian T.Schellenberger" <bts@babbleon.org>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: RFC: style(9) isn't explicit about booleans for testing -- an actual analysis of the code!
Message-ID:  <p05101508b8ad7b67c653@[128.113.24.47]>
In-Reply-To: <20020307071630.E26DBBA03@i8k.babbleon.org>
References:  <52204.1015480748@critter.freebsd.dk> <20020307071630.E26DBBA03@i8k.babbleon.org>

next in thread | previous in thread | raw e-mail | index | archive | help
At 2:16 AM -0500 3/7/02, Brian T.Schellenberger wrote:
>Maybe your brain has gotten used to it, but to us ordinary
>mortals, even us ordinary mortals who've been slogging C
>code for time periods that can be measured in decades
>(yikes!), it is very tempting to read
>
>   if (!strcmp(a,b,l))
>
>as "if the strings don't compare" which, in ordinary usage,
>means don't compare *equal*.  But of course the C program
>is going to proceed to do exactly the opposite of that.

Okay, I will agree I have made that mistake a few times.  Not
often, but it really burns me up when I realize that's the
source of some bug.  So, that sounds like a good reason.

>But  *ALL* of this is beside the nominal point ANYWAY, which
>is to discuss the proper wording for the man(9) style guide
>which is supposed to document  how things things are actually
>done in the kernel, not personal preference.

As to the wording, PHK suggested that the wording for this
rule in style(9) be changed:
  - - -
get rid of the word boolean, ie: change
      Do not use ! for tests unless it is a boolean, e.g. use
to
      Do not use ! for tests unless it is an integer type, e.g. use
  - - -

Dave O'Brien claimed the very same rule was *only* there to
prevent "if (!strcmp(a,b))".

May I suggest that we probably want two different rules?  Change
the current rule so it says 'integer type' instead of 'boolean'
(which doesn't really exist in C anyway), and then add the rule
about strcmp()?

-- 
Garance Alistair Drosehn            =   gad@eclipse.acs.rpi.edu
Senior Systems Programmer           or  gad@freebsd.org
Rensselaer Polytechnic Institute    or  drosih@rpi.edu

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p05101508b8ad7b67c653>