From: Marco Costalba Date: Sat, 19 Aug 2006 15:19:30 GMT Subject: Re: [PATCH] Added support for dropping privileges to git-daemon. Message-ID: In-Reply-To: <20060819132922.GA6644@code-monkey.de> On 8/19/06, Tilman Sauerbeck wrote: > Marco Costalba [2006-08-19 15:23]: > > > > > >+ if (!user ^ !group) > > >+ die("either set both user and group or none of them"); > > >+ > > > > > > > Just a question. Why simply not > > > > if (user ^ group) > > Because gcc doesn't like that: > error: invalid operands to binary ^ > Interesting! Indeed gcc it's right, operator ^ it's a bitwise operator, not a logical one. So operands must be booleans (or numerical types in case of C). The trick is that operator '!' performs an implicit conversion to integral on the 'user' and 'group' pointers. BTW the following (very ugly) works. if ((int)user ^ (int)group)