This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Long file names not working in cygwin-1.7.0-48
"Christopher Faylor" <cgf-use-the-mailinglist-please@cygwin.com> wrote in
message 20090529183702.GA28223@ednor.casa.cgf.cx">news:20090529183702.GA28223@ednor.casa.cgf.cx...
> On Fri, May 29, 2009 at 09:39:23AM -0700, jpa wrote:
>>"Christopher Faylor" wrote:
>>>On Wed, May 27, 2009 at 05:11:55PM -0700, jpa wrote:
>>>># Create long directory path fails (255 a's/255 b's mkdir -p /tmp/[SNIP
>>>>long dir name]>
>>>Thanks for the test case. This should be fixed in the next snapshot
>>>which is building now. I'll be in bed before it finishes but if there
>>>are problems uploading it I'll restart it tomorrow.
>>>
>>>http://cygwin.com/snapshots/
>>>
>>>Btw, the second set of "b"'s isn't necessary. A single b would trigger
>>>the problem.
>>
>>Thank you. This problem has been fixed with the 5-28-2009 snapshot.
>>Unfortunately I now have a different but probably related problem. I
>>am unable to create a file or directory with a period as the first
>>character.
>>
>>mkdir .test returns "/bin/mkdir: cannot create directory `.test': No
>>such file or directory"
>
> l:\>bash
> bash-3.2$ cd /tmp
> bash-3.2$ mkdir .test
> bash-3.2$ exit
> exit
>
>>However this only happens in my cwrsync installation which uses cygwin.
>>Rolling back to 1.7.0-48 allows periods at the beginning. In my test
>>install
>>of cygwin on a WinXP box I can't trigger the error.
>
> Sorry but I don't care about cwrsync. If you can generate a test case
> for a bona fide Cygwin installation, I'll investigate.
>
> FWIW, it is hard to believe that the change I made for this would affect
> files beginning with dots in any way.
>
> cgf
>
Thanks for testing. I can't tell what's different about my cwrsync config so
I strace'd a test mkdir with a period using a 1.7.0-48 and snapshot cygwin
dll and looked for differences. I found several differences where a \ was at
the end of some lines where it wasn't in the successfull pass.
I've reduced the strace from an unsuccessful run to this:
mount_info::conv_to_posix_path: conv_to_posix_path (C:\Program
Files\ICW\Bin\, no-keep-rel, add-slash)
normalize_win32_path: C:\Program Files\ICW\Bin\ = normalize_win32_path
(C:\Program Files\ICW\Bin\)
mount_info::conv_to_posix_path: /Bin/ = conv_to_posix_path (C:\Program
Files\ICW\Bin\)
cwdstuff::get: posix /Bin/
cwdstuff::get: (/Bin/) = cwdstuff::get (0xA701A0, 32768, 1, 0), errno 0
normalize_posix_path: /Bin//.test = normalize_posix_path (.test)
mount_info::conv_to_win32_path: conv_to_win32_path (/Bin//.test)
set_flags: flags: binary (0x2)
mount_info::conv_to_win32_path: src_path /Bin//.test, dst C:\Program
Files\ICW\Bin\\.test, flags 0x3000A, rc 0
__set_errno: save_errno::~save_errno():47 val 0
__set_errno: save_errno::~save_errno():47 val 0
symlink_info::check: 0xC0000033 = NtQueryInformationFile (\??\C:\Program
Files\ICW\Bin\\.test)
symlink_info::check: not a symlink
symlink_info::check: 0 = symlink.check (C:\Program Files\ICW\Bin\\.test,
0x223848) (0x3000A)
mount_info::conv_to_win32_path: conv_to_win32_path (/Bin/)
Where a successful run produces this:
mount_info::conv_to_posix_path: conv_to_posix_path (C:\Program
Files\ICW\Bin, no-keep-rel, no-add-slash)
normalize_win32_path: C:\Program Files\ICW\Bin = normalize_win32_path
(C:\Program Files\ICW\Bin)
mount_info::conv_to_posix_path: /Bin = conv_to_posix_path (C:\Program
Files\ICW\Bin)
cwdstuff::get: posix /Bin
cwdstuff::get: (/Bin) = cwdstuff::get (0xA701A0, 32768, 1, 0), errno 0
normalize_posix_path: /Bin/.test = normalize_posix_path (.test)
mount_info::conv_to_win32_path: conv_to_win32_path (/Bin/.test)
set_flags: flags: binary (0x2)
mount_info::conv_to_win32_path: src_path /Bin/.test, dst C:\Program
Files\ICW\Bin\.test, flags 0x3000A, rc 0
__set_errno: save_errno::~save_errno():47 val 0
__set_errno: save_errno::~save_errno():47 val 0
symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\C:\Program
Files\ICW\Bin\.test)
__set_errno: save_errno::~save_errno():47 val 0
__set_errno: save_errno::~save_errno():47 val 0
symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\C:\Program
Files\ICW\Bin\.test.lnk)
symlink_info::check: 0 = symlink.check (C:\Program Files\ICW\Bin\.test,
0x223848) (0x3000A)
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/