/ in filename confuses handling of spec. chars on non-managed mount

2007-10-16 Thread Érsek László

Hi,

I'm running CYGWIN_NT-5.1 1.5.24(0.156/4/2) 2007-01-31 10:57.

If I try to create a regular file with a colon (:) in its name, cygwin 
refuses it with ENOENT (rightly so):


$ echo test a:b
-bash: a:b: No such file or directory

However, if I put, in addition, a slash in the name:

(
  set -e -C -x

  mkdir test
  df -m test
  dd if=/dev/zero bs=4096 count=1024 'test/a:b'
  df -m test
  ls -lsn 'test/a:b'
  ls -lsn test
)

Standard output and error:

+ mkdir test

+ df -m test
Filesystem   1M-blocks  Used Available Use% Mounted on
C:\cygwin57232  9100 48132  16% /

(Redirection not shown below)

+ dd if=/dev/zero bs=4096 count=1024
1024+0 records in
1024+0 records out
4194304 bytes (4.2 MB) copied, 0.08 s, 52.4 MB/s

+ df -m test
Filesystem   1M-blocks  Used Available Use% Mounted on
C:\cygwin57232  9104 48128  16% /

+ ls -lsn test/a:b
4096 -rw--- 1 1003 513 4194304 Oct 16 16:14 test/a:b

No problem until this point, but:

+ ls -lsn test
total 0
0 -rw--- 1 1003 513 0 Oct 16 16:14 a

Shouldn't the redirection used with the dd command fail with ENOENT? The 
file system containing the directory test is mounted without the 
managed mount option.


This doesn't depend on the shell, I can reproduce it with a simple C 
program.


Thank you
lacos

--
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/



Re: / in filename confuses handling of spec. chars on non-managed mount

2007-10-16 Thread Corinna Vinschen
On Oct 16 16:25, ?rsek L?szl? wrote:
 Hi,

 I'm running CYGWIN_NT-5.1 1.5.24(0.156/4/2) 2007-01-31 10:57.

 If I try to create a regular file with a colon (:) in its name, cygwin 
 refuses it with ENOENT (rightly so):

 $ echo test a:b
 -bash: a:b: No such file or directory

a:b is win32 speak for file b in the current working directory of
drive a:

 However, if I put, in addition, a slash in the name:

 (
   set -e -C -x

   mkdir test
   df -m test
   dd if=/dev/zero bs=4096 count=1024 'test/a:b'
   df -m test
   ls -lsn 'test/a:b'
   ls -lsn test
 )

test/a:b is win32 speak for a stream b of file a in the directory test.
http://www.flexhex.com/docs/articles/alternate-streams.phtml


Corinna

-- 
Corinna Vinschen  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader  cygwin AT cygwin DOT com
Red Hat

--
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/