On Aug 26 18:12, Ken Brown wrote: > On 8/26/2014 2:55 PM, Achim Gratz wrote: > >Ken Brown writes: > >>It looks like my idea is going to work, but it needs testing to make > >>sure I've implemented it correctly. If anyone is willing to test it, > >>you can download emacs-24.3.93-2 from my personal Cygwin repository: > >> > >> http://sanibeltranquility.com/cygwin/ > >> > >>Instructions can be found at that URL. > > > >I've switched to this version today. > > > >I've noticed that two bugs are still present at least in the emacs-w32 > >version: > > > >1) When showing the Windows desktop with Win-D and then restoring it > >(including Emacs) with Win-D again, the cursor becomes a hollow > >rectangle that doesn't blink. To get the normal cursor behaviour back > >you have to minimize and restore the Emacs window in the "normal" way. > > This one has nothing to do with emacs. I see the same thing in mintty, with > just a shell prompt (bash in my case). > > >2) Files that have no POSIX permissions (filemode 0000) and where access > >is granted via ACL only get always opened as "read-only" and you have to > >C-x C-q them before saving. It appears that this is Cygwin specific > >since on Linux the same version copes with that situation correctly > >(however, the mask bits in the ACL get displayed in the group portion of > >the file mode, which I've never seen happen on Cygwin, so this may be > >something that Cygwin needs to do -- maybe that'd even solve the > >problems that Perl has in the same situation). > > AFAICT, emacs decides whether the file is writable via the system call > faccessat. (See the function 'check_writable' in src/fileio.c.) This is > not Cygwin specific. So faccessat must be returning failure in the scenario > you described. I don't know if that's a Cygwin bug or not.
faccessat/access/eaccess don't try to be intelligent by themselves. Rather they just call a Windows function if the filesystem is mounted with "acl" mount flags: - Fetch file's security descriptor - Create process impersonation token. - Call NtAccessCheck - If NtAccessCheck returns "not allowed", check for backup/restore privileges via NtPrivilegeCheck. In "noacl" mode or on filesystems not supporting ACLs, access uses the st_mode flags from stat() to figure out the permissions. The relevant parts of the implementation are the check_file_access and subsequently called check_access functions in security.cc. If you see a bug there, please let me know. > BTW, emacs on Cygwin doesn't directly check ACLs, because the relevant > configure test fails. Works for vim. Does the Emacs configure test only check for POSIX ACL functions and not for Solaris ACL functions, by any chance? Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
pgpRL0KS725JD.pgp
Description: PGP signature