From: Andreas Ericsson <ae@op5.se>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Martin Waitz <tali@admingilde.org>,
git@vger.kernel.org
Subject: Re: [PATCH] git-init: don't base core.filemode on the ability to chmod.
Date: Thu, 04 Oct 2007 12:33:05 +0200 [thread overview]
Message-ID: <4704C161.3000006@op5.se> (raw)
In-Reply-To: <7vr6kbbdph.fsf@gitster.siamese.dyndns.org>
Junio C Hamano wrote:
> Andreas Ericsson <ae@op5.se> writes:
>
>> Johannes Schindelin wrote:
>>> Hi,
>>>
>>> On Thu, 4 Oct 2007, Martin Waitz wrote:
>>>
>>>> - filemode = (!chmod(path, st1.st_mode ^ S_IXUSR) &&
>>>> + /* test that new files are not created with X bit */
>>>> + filemode = !(st1.st_mode & S_IXUSR);
>>>> + /* test that we can modify the X bit */
>>>> + filemode &= (!chmod(path, st1.st_mode ^ S_IXUSR) &&
>>> Should that not be &&=?
>>>
>> I should think |=
>
> Is it?
>
Nopes. I misread the first expression and simply assumed that "filemode"
should be != 0 for FS not supporting the x bit. I'd rename the variable
to bogus_fs and flip the logic, but I have no strong opinion either way.
>
> So I think we can write it like this (indentation aside)...
>
> filemode = !( (st1.st_mode & S_IXUSR)
> /* we did not ask for x-bit -- bogus FS */
> || chmod(path, st1.st_mode & S_IXUSR)
> /* it does not let us flip x-bit -- bogus FS */
> || lstat(path, &st2)
> /* it does not let us read back -- bogus FS */
> || (st1.st_mode == st2.st_mode)
> /* it forgets we flipped -- bogus FS */
> );
For "filemode=0 means FS doesn't support x-bit" it looks about right,
but kinda cumbersome to read.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
next prev parent reply other threads:[~2007-10-04 10:33 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-03 10:55 [PATCH] git-init: don't base core.filemode on the ability to chmod Martin Waitz
2007-10-03 12:19 ` Johannes Sixt
2007-10-03 23:19 ` Martin Waitz
2007-10-03 23:54 ` Johannes Schindelin
2007-10-04 6:05 ` Andreas Ericsson
2007-10-04 6:23 ` Junio C Hamano
2007-10-04 7:17 ` Martin Waitz
2007-10-04 8:21 ` Junio C Hamano
2007-10-04 8:36 ` Johannes Sixt
2007-10-04 8:42 ` Martin Waitz
2007-10-10 9:47 ` Jan Hudec
2007-10-04 12:49 ` Johannes Schindelin
2007-10-04 10:33 ` Andreas Ericsson [this message]
2007-10-04 7:15 ` Martin Waitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4704C161.3000006@op5.se \
--to=ae@op5.se \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=tali@admingilde.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).