This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: B20, Win95: cp destroys file


Mumit Khan wrote:
> 
> Earnie Boyd <earnie_boyd@yahoo.com> writes:
> > ---"Henry S. Warren, Jr." <hank@watson.ibm.com> wrote:
> > >
> > > If you copy, using cp, a file to itself, and the target and source
> > files
> > > differ in capitalization, then the content of the file is wiped out;
> > it
> > > becomes a file of 0-length.  Example: "cp hilbert.c hilbert.C" trashes
> > > file hilbert.c.
> > >    The Win95 "copy" command gives the error message "File cannot be
> > > copied onto itself" in this situation (much preferable)
> >
> > Hmm.  It used to do it that way in b19.  Is it possible that inode or
> > stat routine has become buggy?
> 
> Are you by any chance doing this on a SMB mounted filesystem? I remember
> playing with this a while back, and it worked on FAT and NTFS, but not
> on SAMBA disk (didn't try SMB disks from non-SAMBA server, such as NT).
> 
> I believe that the problem is in MoveFileEx (WIN API), which doesn't do
> the right thing. However, the rename in MSVC runtime does somehow do
> it correctly on all filesystems, so it's doing something more than using
> MoveFileEx. (fyi, mv uses the rename runtime routine in winsup that in
> turn uses MoveFileEx to do the actual renaming).

Isn't this the same as the win32 `cat foo >foo' problem?
I find it hard to believe that this is related to a bug in
MoveFileEx, since MoveFileEx really just calls the driver for
the file-system in question (I would imagine) to perform the
actual disk/filesystem operations. At least on my FAT system,
running b19, cp destroys the file if it is the same file but
the names differ in capitalization.

Anders Norlander
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]