emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 23.0.60; uid problems on w32


From: Eli Zaretskii
Subject: Re: 23.0.60; uid problems on w32
Date: Sat, 05 Apr 2008 18:08:07 +0300

> Date: Sun, 30 Mar 2008 15:02:27 +0100
> From: Jason Rumney <address@hidden>
> CC: Stefan Monnier <address@hidden>, address@hidden, 
>  address@hidden
> 
> Eli Zaretskii wrote:
> > Actually, one (in `struct passwd') is `signed int', the other (in
> > `struct stat') is `signed short'.  Darn that MS-supplied stat.h!
> >
> > Yes, this is probably the reason.
> >
> > Jason, do we have any good reasons to use `struct stat' as declared on
> > the system header?
> 
> Not that I'm aware, but I'm probably less familiar with that code than 
> you are.

Okay, I've committed to the trunk several changes to remove dependence
on the CRT definition of `struct stat'.  There's now a new file
nt/inc/sys/stat.h that is used instead.  Windows users, please try
this and report any problems you see, especially if you use MSVC to
compile Emacs, as I don't have Visual Studio installed and could not
test with it.

As the result of these changes, file-attributes and its ilk will now
return a 3-member cons cell when the inode number does not fit into a
32-bit datum; see the doc string of file-attributes for details.  If
someone thinks this could mean trouble for Lisp code that uses
file-attributes, please tell the details.  (I already fixed ls-lisp.el
to handle this, so this one is not the problem.)

The user-visible changes due to this (limited to Windows) are:

 . inode numbers are now very large (as this is what Windows reports);
   try "C-u C-x d i RET RET", i.e. invoke Dired with -ali as switches
   to the (emulated) `ls'.  Also, inodes should never be negative, and
   they should be identical to what "ls -i" reports from the command
   line.

 . uid and gid are no longer restricted to 16-bit numbers, and should
   never be negative; try "C-u C-x d DEL n RET RET", i.e. invoke Dired
   with -an as switches to `ls' emulation.

Note that I didn't yet add to our emulation of `stat' support for
Windows native owner's user and group id of files; this will be done
later, when all the dust from this change settles.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]