Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jun 2005 17:11:54 +0200 (CEST)
From:      Harti Brandt <hartmut.brandt@dlr.de>
To:        freebsd-arch@FreeBSD.org
Cc:        delphij@delphij.net
Subject:   Re: [PATCH RFC] Add a macro for null mount options to sbin/mount*
Message-ID:  <20050601170858.V51549@beagle.kn.op.dlr.de>
In-Reply-To: <20050601150344.GA39784@dragon.NUXI.org>
References:  <1117613456.771.16.camel@spirit> <20050601150344.GA39784@dragon.NUXI.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 1 Jun 2005, David O'Brien wrote:

DO>On Wed, Jun 01, 2005 at 04:10:56PM +0800, Xin LI wrote:
DO>> Hi, -arch@,
DO>> 
DO>> In our mount* utilities, the null mount option, which is usually be used
DO>> as a terminator of an option vector, is defined with some hand-rolled
DO>> terms, e.g.: {NULL}, {NULL, 0, 0, 0}, etc.
DO>> 
DO>> I think it would be nice to have a new macro to deal with this, say,
DO>> MOPT_NULL, which would be extended to {NULL, 0, 0, 0}, which can act as
DO>> an explicit initialize.  And in my opinion, something like:
DO>
DO>I think it is better to leave it alone.  The "NULL" termination of a list
DO>like this is a C idiom that should be clear to any C programmer.  Hiding
DO>the details in a macro (is MOPT_NULL an integer or a sentinel?) makes it
DO>harder to see the idiom and know exactly what is going on and how this
DO>list will be processed.

The problem is that with the right set of warning options gcc will warn if
you write {NULL}, but there are more fields than just a pointer. If the 
structure definition is stable enough this is no problem - just go through 
all the programs and fix it once. If the definition is likely to change 
from time to time, a macro is better because it just does the right thing.

harti



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