Subject: Re: a new KNF (and some comments)
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Simon Burge <simonb@netbsd.org>
List: tech-misc
Date: 01/21/2000 13:15:34
Jason Thorpe wrote:

>  > #include <sys/cdefs.h>
>  > #ifndef lint
>  > __COPYRIGHT("@(#) Copyright (c) 1999\n\
>  > 	The NetBSD Foundation, inc. All rights reserved.\n");
>  > __RCSID("$NetBSD$");
>  > #endif /* not lint */
> 
> Actually, I think the __COPYRIGHT() and __RCSID() should be changed in the
> header files to provide their own ;'s, and the source and guide updated
> appropriately.  This way if you conditionally compile out the RCS IDs, the
> compiler won't choke on you (nor will lint(1)).

Can we put the "#ifndef lint" inside the __COPYRIGHT and __RCSID macros?
It would be a little easier on the eyes...

>  > 	/* No spaces after function names. */
>  > 	if (error = function(a1, a2))
>  > 		exit(error);
> 
> That should read:
> 
> 	if ((error = function(a1, a2)))
> 
> but I personally prefer:
> 
> 	if ((error = function(a1, a2)) != 0)
> 
> ...for additional clarity.

Doesn't one of the gcc warnings barf about "testing assignment value" or
something?  I think there are circumstances where you do need the "!= 0"
bit to keep it happy.

Simon.