Ticket #53: vfs.patch

File vfs.patch, 1.4 kB (added by mdmkolbe, 2 years ago)

VFS part of the Patch

  • plugins/filesys/vfs/vfs.cpp

     
    2222#include <errno.h> 
    2323#include <sys/types.h> 
    2424#include <sys/stat.h> 
     25#ifdef __CYGWIN__ 
     26#include <sys/cygwin.h> 
     27#endif 
    2528 
    2629#include "vfs.h" 
    2730#include "csutil/archive.h" 
     
    982985      rc = true; 
    983986      UPathV.Push (src); 
    984987 
    985       // Now parse this path 
    986       char rpath [CS_MAXPATHLEN + 1]; 
    987       size_t len = strlen (src); 
    988       len = MIN (len, CS_MAXPATHLEN); 
    989       memcpy (rpath, src, len); 
    990       rpath[len] = '\0'; 
    991       RPathV.Push (rpath); 
     988#ifdef __CYGWIN__ 
     989      // Convert any cygwin paths to win32 paths 
     990      char rpath[MAX_PATH]; 
     991      if (cygwin_conv_to_win32_path(src, rpath) == 0) 
     992        RPathV.Push (rpath); 
     993      else 
     994        RPathV.Push (src); 
     995#else 
     996      RPathV.Push (src); 
     997#endif 
    992998      src = cur + 1; 
    993999    } /* endif */ 
    9941000  } /* for */ 
     
    10071013  } /* endif */ 
    10081014  csString const expanded_path = Expand(Parent, RealPath); 
    10091015  size_t i; 
    1010   for (i = 0; i < RPathV.Length (); i++) 
    1011     if (strcmp ((char *)RPathV.Get (i), expanded_path) == 0) 
     1016  for (i = 0; i < UPathV.Length (); i++) 
     1017    if (strcmp ((char *)UPathV.Get (i), expanded_path) == 0) 
    10121018    { 
    10131019      RPathV.DeleteIndex (i); 
    10141020      UPathV.DeleteIndex (i);