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: dos file names (what should I do)


See this patch

 

Since various utilities have trouble with the double-slash paths, I 
recommend mounting all your drive letters.  One simple approach would be to 
mount them in the root directory:

	mount d: /d

Unfortunately there are yet bugs in how mounted directories are handled. 
 Have you ever tryed typing "ls /"?  I always get an empty directory 
listing for this or any drive's root dir that is mounted (such as trying 
"ls /d" or even "ls /d/." using the above example).  However, it works fine 
for specifying files.

Note that if you want the mount points to show up in a directory listing, 
you should do a "mkdir /d" before you do the mount.  However, this isn't 
required.

I also think that cygwin.dll should be changed to use some better default 
mounts than //x -- I think that /dev/x (or even /dev/dsk/x) would work 
well.  These things don't have to be short since they can be mounted 
wherever the user wishes.

..wayne..

From: 	Scott Kempf[SMTP:scottk@utig.ig.utexas.edu]
Sent: 	Friday, January 10, 1997 3:42 AM
To: 	gnu-win32@cygnus.com
Subject: 	patch for diropen() fixes access to /

A number of programs have trouble with accessing "/".
The problem seems to be due to opendir() changing "/"
into "c:\/*".  This patch fixes this and allows "ls /"
to work correctly.  This doesn't fix "ls //".

			Scott

*** cdksrc/src/winsup/dirsearch.cc.orig	Tue Dec 31 14:42:55 1996
--- cdksrc/src/winsup/dirsearch.cc	Tue Dec 31 14:43:17 1996
***************
*** 22,27 ****
--- 22,29 ----
  #define _COMPILING_NEWLIB
  #include "dirent.h"
  
+ #define SLASH_P(C) ((C) == '/' || (C) == '\\')
+ 
  extern "C"
  DIR *
  opendir (const char *dirname)
***************
*** 70,76 ****
    strcpy (dir->__d_dirname, real_dirname.get_win32 ());
    /* FindFirstFile doesn't seem to like duplicate /'s.  */
    len = strlen (dir->__d_dirname);
!   if (len == 0 || dir->__d_dirname[len - 1] == '/')
      strcat (dir->__d_dirname, "*");
    else
      strcat (dir->__d_dirname, "/*");	/**/
--- 72,78 ----
    strcpy (dir->__d_dirname, real_dirname.get_win32 ());
    /* FindFirstFile doesn't seem to like duplicate /'s.  */
    len = strlen (dir->__d_dirname);
!   if (len == 0 || SLASH_P(dir->__d_dirname[len - 1]))
      strcat (dir->__d_dirname, "*");
    else
      strcat (dir->__d_dirname, "/*");	/**/
-
For help on using this list, 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]