Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Jan 2005 22:58:43 +0800
From:      Xin LI <delphij@frontfree.net>
To:        Paul Richards <paul@originative.co.uk>
Cc:        Xin LI <delphij@freebsd.org>
Subject:   Re: cvs commit: src/usr.sbin/nologin nologin.c
Message-ID:  <20050106145843.GA1855@frontfree.net>
In-Reply-To: <20050106115705.GO16316@myrddin.originative.co.uk>
References:  <20050104202213.GC63028@elvis.mu.org> <Pine.NEB.3.96L.1050104230945.45311j-100000@fledge.watson.org> <20050106104356.GB52159@clan.nothing-going-on.org> <20050106115705.GO16316@myrddin.originative.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help

--EeQfGwPcQSOJBaQU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi, Paul,

On Thu, Jan 06, 2005 at 11:57:06AM +0000, Paul Richards wrote:
> On Thu, Jan 06, 2005 at 10:43:56AM +0000, Nik Clayton wrote:
> > On Tue, Jan 04, 2005 at 11:11:07PM +0000, Robert Watson wrote:
> > > On Tue, 4 Jan 2005, Maxime Henrion wrote:
> > > > I bet there is a reason behind this, but I'm totally puzzled at why=
 you
> > > > would do such a thing.  It was much prettier and more "C" before.  =
Could
> > > > you shed some light on this please?=20
> > >=20
> > > I ran into exactly the same problem I assume Xin Li is now running in=
to
> > > just a few days ago: gcc warns if argc and argv are unused in the mai=
n()=20
> > > definition if they aren't referenced when running at higher WARNS lev=
els.=20
> > > I would argue this is a bug in gcc, since main() is part of an API ca=
lling
> > > convention, and it doesn't matter if the arguments are unused by the
> > > function -- they are still provided by the caller.  But then, I'm not=
 a C
> > > expert, so maybe this opinion is the result of poor breeding? :-)=20
> >=20
> > What's wrong with (the perfectly legal):
> >=20
> >    int
> >    main(void)
> >    {
> >    ...
> >    }
> >=20
> > or does gcc complain about that too?
>=20
> No it doesn't and it seems to me to be more correct than using a gcc macr=
o.

__unused is a FreeBSD macro IIRC.

I have a rough statistic before committing the revision 1.6:

%find bin sbin usr.bin usr.sbin libexec -name '*.c' | xargs grep "main(" | =
grep :main | grep void | wc -l
       5
%find bin sbin usr.bin usr.sbin libexec -name '*.c' | xargs grep "main(" | =
grep :main | grep __unused | wc -l   =20
       9

My rationale of having main(void) is that both argc and argv are not
supposed to be used in any way in nologin(8), while main(void) is my
habit when dealing with these situations.  However, since there is
no written style guidelines about main(), with the above statistic
result, and I think Jacques has more experience on these issues, I
have accepted his suggestion.

Cheers,
--=20
Xin LI <delphij frontfree net>	http://www.delphij.net/
See complete headers for GPG key and other information.


--EeQfGwPcQSOJBaQU
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFB3VIj/cVsHxFZiIoRAgQQAJ9TDjY7kH/W8dMj39udMnaIN3NWywCdHvoW
Cdfrc7l/ij4JgUMj3LT3Ul8=
=RtSg
-----END PGP SIGNATURE-----

--EeQfGwPcQSOJBaQU--



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