This is the mail archive of the cygwin 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]
Other format: [Raw text]

cannot create files with trailing dots on network share


I’ve had some problems, and it looks like it boils down to handling . (dot) characters. I created a little script to create some files with dots in various places. This script works fine in my $HOME directory (C:\cygwin\home\SEAYD). The name is wrong when the last character of the filename is a dot and subdir is on a network share (H: in this case). The rest of the file operations seem to work because when I cat them, you can see the file name inside the body (yes, I left of the \n).

Is there a known work around for this?

/cygdrive/h/foo> ./fubar
mkdir subdir
create subdir/none
create subdir/in.middle
create subdir/.before
create subdir/after.
create subdir/.every.where.
finished successfully

/cygdrive/h/foo> ls -al subdir
total 5120
drwxr-xr-x+ 1 ???????? ????????  0 2010-03-18 18:31 .
drwxrwxrwx  7 ???????? ????????  0 2010-03-18 18:31 ..
-rwxr--r--  1 ???????? ????????  7 2010-03-18 18:31 .before
-rwxr--r--  1 ???????? ????????  6 2010-03-18 18:31 ARO60A~X
-rwxr--r--  1 ???????? ???????? 13 2010-03-18 18:31 _IQDF8~T
-rwxr--r--  1 ???????? ????????  9 2010-03-18 18:31 in.middle
-rwxr--r--  1 ???????? ????????  4 2010-03-18 18:31 none

/cygdrive/h/foo> cat subdir/ARO60A~X
after./cygdrive/h/foo> cat subdir/_IQDF8~T
.every.where./cygdrive/h/foo>

A bit more background: I’m trying to use cvs and I’m getting errors. I cannot tell if this is the same issue as is going back and forth on the mailing list right now, or if I’ve bumped into something else. When I ran my “cvs co” with strace, I see what appears to be CVS getting the files in temp names that have a lot of dots, and then doing a rename after the file has downloaded. The download seems to work, but it puts the file in an incorrectly named temp file, and then the rename to the proper name is what fails and causes the error. Since that doesn’t really sound cvs specific (ie – it should work), I went off and reproduced it outside of CVS.


In case I’m not clear, this is cygwin 1.7.1. Mostly I’ve been using Server 2008.

- doug

Here is the perl script “fubar” that I used to generate these files, just in case it matters. It really isn't fancy.

#!/bin/perl

use strict;
use warnings;

my $SUBDIR      = 'subdir';
my @TEST_CASES  = qw(   none
                        in.middle
                        .before
                        after.
                        .every.where.
                );

print "mkdir $SUBDIR\n";
mkdir $SUBDIR unless ( -d $SUBDIR );
chdir $SUBDIR or die "chdir($SUBDIR) failed: $!";

foreach my $filename ( @TEST_CASES ) {
        print "create $SUBDIR/$filename\n";
        open TESTCASE, ">$filename" or die "error opening $filename: $!";
        print TESTCASE $filename;
        close TESTCASE;
}

print "finished successfully\n";





-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple


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