svn commit: r329237 - head/sys/libkern

Bruce Evans brde at optusnet.com.au
Wed Feb 14 05:20:30 UTC 2018


On Tue, 13 Feb 2018, Ian Lepore wrote:

> On Tue, 2018-02-13 at 14:43 -0500, Ed Maste wrote:
>> On 13 February 2018 at 14:23, Ian Lepore <ian at freebsd.org> wrote:
>>>
>>> On Tue, 2018-02-13 at 19:17 +0000, Ed Maste wrote:
>>>>
>>>> Author: emaste
>>>> Date: Tue Feb 13 19:17:48 2018
>>>> New Revision: 329237
>>>> URL: https://svnweb.freebsd.org/changeset/base/329237
>>>>
>>>> Log:
>>>>   libkern: use nul for terminating char rather than 0
>>>>
>>>>   Akin to the change made in r188080 for lib/libc/string/.
>>>>
>>>>   Reported by:        bde
>>>>   Sponsored by:       The FreeBSD Foundation
>>> There are many ways to spell 0.  Why are we using something other
>>> than
>>> the simplest way?  Is it a style rule thing, or is it portability-
>>> correctness, or what?

style(9) requires '\0' (by always spelling the character constant with
value 0 like that).

>> I made the change to improve consistency between lib/libc/string and
>> sys/libkern, which is what Bruce commented on some time ago. I don't
>> have a personal preference for 0 or '\0' but definitely believe that
>> if we have multiple, similar copies of a function they ought to avoid
>> gratuitous differences. (I'm happy to change both trees to 0 if
>> that's
>> preferred.)

Core parts of libc like stdio and (MI) string use '\0' fairly consistently.
There were about 10-20 plain 0's in string in FreeBSD-5, but most of these
have been changed to '\0'.  This gives a much larger set of examples of
normal style.

> Oh, I agree completely about consistancy being important.  I just
> wanted to know whether I should try to remember to always use \0
> because it's a rule or has some benefit I didn't know about.
>
> 20+ years ago I used to slavishly ensure I always used \0 when a char
> type was involved, just as a personal style thing.  Then over time I
> came to the conclusion that "0 is 0 no matter how you spell it, so keep
> it simple" (except for pointers... even in c++ I've always used NULL).

Probably the BSD style rule has the same origin.

Bruce


More information about the svn-src-head mailing list