At 07:46 AM 2/14/2002, Pierre Muller wrote:
>I already mentioned the following bug some time ago, >but I now took the time to identify the problem. > > > The problem appears if you are using patch to >apply a patch on a binary mounted device >while your patch uses a temporary directory that is located on >a text mounted dir. > >The temprary file is that created as >/temp/dir/ poXXXXX >where the XXX are replaced by a number. >But the file is opened without O_BINARY flag. > >After the patch is applied, the patch code tries to move the file, >which fails with EXDEV err, which seems OK as they are on different partition, >but after that the use copy_file function, >which does copy the file using O_BINARY file. > > This results in a unix mode source file on which you apply >a unix mode patch, will be written as text in the temporary directory, and thus >in Dos mode with CR/LF, and finally copied back to the binary mounted >dir. > > I hope that my explanation of the problem is clear enough. > >It seems to be a consequence of the apparently innocent assumption >that on a given OS, a copy of a text file from one dir to another dir can be done >using O_BINARY. But this assumption is false for cygwin. > >I didn't really find a good solution to this problem yet... Actually, this has been discussed before in the context of /cygdrive, which by default (along with network/UNC paths) is text mode. The /cygdrive issue can be resolved by remounting it as binary (i.e. "mount -b -f -c /cygdrive"). Network paths can be handled similarly, by mounting them explicitly. Sorry. There's no transparent option that works to everyone's liking. Everyone say "Thank you, Bill". Larry Hall [EMAIL PROTECTED] RFK Partners, Inc. http://www.rfk.com 838 Washington Street (508) 893-9779 - RFK Office Holliston, MA 01746 (508) 893-9889 - FAX -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/