Re: [ZEND-ENGINE-CVS] cvs: TSRM(PHP_5_2) / tsrm_virtual_cwd.c tsrm_virtual_cwd.h php-src NEWS
| From: | Nuno Lopes | Date: | Fri, 10 Nov 2006 17:06:11 +0000 |
| Subject: | Re: [ZEND-ENGINE-CVS] cvs: TSRM(PHP_5_2) / tsrm_virtual_cwd.c tsrm_virtual_cwd.h php-src NEWS | ||
| References: | 1 | Groups: | php.zend-engine.cvs |
| Request: | Send a blank email to php-zend-engine-cvs+get-5394@lists.php.net to get a copy of this message | ||
okok, I was just thinking loud.
BTW, you could send you patch to Microsoft :P
Nuno
----- Original Message -----
The original Microsoft implementation of stat() doesn't look for NTFS attributes. So my patch breaks nothing. Dmitry.-----Original Message----- From: Nuno Lopes [mailto:nlopess@php.net] Sent: Friday, November 10, 2006 7:05 PM To: Wez Furlong Cc: Dmitry Stogov; zend-engine-cvs@lists.php.net Subject: Re: [ZEND-ENGINE-CVS] cvs: TSRM(PHP_5_2) / tsrm_virtual_cwd.c tsrm_virtual_cwd.h php-src NEWS Aaah ok. Thanks for the explanation, Nuno ----- Original Message -----NTFS uses ACLs which are different from file modes. They are much more expensive to obtain, and do not mean the same thing.If we wantto support ACLs, we should provide an API that works withboth POSIXand NTFS systems. --Wez. On 11/10/06, Nuno Lopes <nlopess@php.net> wrote:+ buf->st_uid = buf->st_gid = buf->st_ino = 0; + buf->st_mode = (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) + buf->? (S_IFDIR|S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)) : S_IFREG; + buf->st_mode |= (data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) + buf->? (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)) : (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)|S_IWRITE|(S_IWRITE>>3)|(S_IWRITEHi Dmitry, Glad to see your commits :)+ if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) { + int len = strlen(path); + + if (path[len-4] == '.') { + if (_memicmp(path+len-3, "exe", 3) == 0 ||6));+ _memicmp(path+len-3, "com", 3) == 0 || + _memicmp(path+len-3, "bat", 3) == 0 || + _memicmp(path+len-3, "cmd", 3) == 0) {+ buf->st_mode |= (S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)); + } + } + }you are givingThis logic is correct with FAT, but probably not with NTFS as NTFS supports an execute attribute, which you aren't using here. Also,NTFS this is notthe same permissions for owner/group/user, but again, withunderstand mytrue at all. However I navigated through the MSDN site and I couldn't find any function to retrieve these NTFS attributes. Anyway, I hope youpoint. Nuno