]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/filefn.cpp
Removed unnecessary code from utilsunx.cpp
[wxWidgets.git] / src / common / filefn.cpp
index eae17729bc3dbc9d230ba283121a3433f911fdb2..25935ed14f7555a7e21b0d3005802396ce05cca7 100644 (file)
 
 #define _MAXPATHLEN 500
 
-extern char *wxBuffer;
+extern wxChar *wxBuffer;
 
 #ifdef __WXMAC__
 
@@ -122,9 +122,7 @@ extern char *wxBuffer;
 #include "fspcompa.h"
 #endif
 
-#if !USE_SHARED_LIBRARIES
     IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
-#endif
 
 // ----------------------------------------------------------------------------
 // private globals
@@ -132,6 +130,14 @@ extern char *wxBuffer;
 
 static wxChar wxFileFunctionsBuffer[4*_MAXPATHLEN];
 
+#if defined(__VISAGECPP__) && __IBMCPP__ >= 400
+//
+// VisualAge C++ V4.0 cannot have any external linkage const decs 
+// in headers included by more than one primary source
+//
+const off_t wxInvalidOffset = (off_t)-1;
+#endif
+
 // ============================================================================
 // implementation
 // ============================================================================
@@ -612,7 +618,6 @@ wxChar *wxExpandPath(wxChar *buf, const wxChar *name)
     return wxRealPath(buf);
 }
 
-
 /* Contract Paths to be build upon an environment variable
    component:
 
@@ -946,9 +951,9 @@ wxDos2UnixFilename (char *s)
 
 void
 #if defined(__WXMSW__) || defined(__WXPM__)
-wxUnix2DosFilename (char *s)
+wxUnix2DosFilename (wxChar *s)
 #else
-wxUnix2DosFilename (char *WXUNUSED(s) )
+wxUnix2DosFilename (wxChar *WXUNUSED(s) )
 #endif
 {
 // Yes, I really mean this to happen under DOS only! JACS
@@ -978,9 +983,9 @@ wxConcatFiles (const wxString& file1, const wxString& file2, const wxString& fil
       (fp2 = fopen (wxUnix2MacFilename( file2 ), "rb")) == NULL ||
       (fp3 = fopen (wxUnix2MacFilename( outfile ), "wb")) == NULL)
 #else
-  if ((fp1 = fopen (WXSTRINGCAST file1, "rb")) == NULL ||
-      (fp2 = fopen (WXSTRINGCAST file2, "rb")) == NULL ||
-      (fp3 = fopen (outfile, "wb")) == NULL)
+  if ((fp1 = wxFopen (WXSTRINGCAST file1, wxT("rb"))) == NULL ||
+      (fp2 = wxFopen (WXSTRINGCAST file2, wxT("rb"))) == NULL ||
+      (fp3 = wxFopen (outfile, wxT("wb"))) == NULL)
 #endif
     {
       if (fp1)
@@ -1020,9 +1025,9 @@ wxCopyFile (const wxString& file1, const wxString& file2)
     return FALSE;
   if ((fd2 = fopen (wxUnix2MacFilename( file2 ), "wb")) == NULL)
 #else
-  if ((fd1 = fopen (WXSTRINGCAST file1, "rb")) == NULL)
+  if ((fd1 = wxFopen (WXSTRINGCAST file1, wxT("rb"))) == NULL)
     return FALSE;
-  if ((fd2 = fopen (WXSTRINGCAST file2, "wb")) == NULL)
+  if ((fd2 = wxFopen (WXSTRINGCAST file2, wxT("wb"))) == NULL)
 #endif
     {
       fclose (fd1);
@@ -1078,9 +1083,9 @@ bool wxMkdir(const wxString& dir, int perm)
 
     // assume mkdir() has 2 args on non Windows-OS/2 platforms and on Windows too
     // for the GNU compiler
-#if (!(defined(__WXMSW__) || defined(__WXPM__))) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) || defined(__WXWINE__)
+#if (!(defined(__WXMSW__) || defined(__OS2__))) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) || defined(__WXWINE__)
     if ( mkdir(wxFNCONV(dirname), perm) != 0 )
-#else  // MSW and OS/2
+#else  // !MSW and !OS/2 VAC++
     if ( mkdir(wxFNSTRINGCAST wxFNCONV(dirname)) != 0 )
 #endif // !MSW/MSW
     {
@@ -1096,7 +1101,7 @@ bool wxMkdir(const wxString& dir, int perm)
 bool wxRmdir(const wxString& dir, int WXUNUSED(flags))
 {
 #ifdef __VMS__
-  return FALSE;
+  return FALSE; //to be changed since rmdir exists in VMS7.x
 #elif defined( __WXMAC__ )
   return (rmdir(wxUnix2MacFilename( dir )) == 0);
 #else
@@ -1114,7 +1119,7 @@ bool wxRmdir(const wxString& dir, int WXUNUSED(flags))
 bool wxDirExists(const wxString& dir)
 {
 #ifdef __VMS__
-  return FALSE;
+  return FALSE; //To be changed since stat exists in VMS7.x
 #elif !defined(__WXMSW__)
   struct stat sbuf;
   return (stat(dir.fn_str(), &sbuf) != -1) && S_ISDIR(sbuf.st_mode) ? TRUE : FALSE;
@@ -1220,6 +1225,18 @@ wxChar *wxGetTempFileName(const wxString& prefix, wxChar *buf)
 #endif
 }
 
+bool wxGetTempFileName(const wxString& prefix, wxString& buf)
+{
+    wxChar buf2[512];
+    if (wxGetTempFileName(prefix, buf2) != (wxChar*) NULL)
+    {
+        buf = buf2;
+        return TRUE;
+    }
+    else
+        return FALSE;
+}
+
 // Get first file name matching given wild card.
 
 #ifdef __UNIX__
@@ -1227,7 +1244,7 @@ wxChar *wxGetTempFileName(const wxString& prefix, wxChar *buf)
 // Get first file name matching given wild card.
 // Flags are reserved for future use.
 
-#ifndef __VMS__
+#if !defined( __VMS__ ) || ( __VMS_VER >= 70000000 )
     static DIR *gs_dirStream = (DIR *) NULL;
     static wxString gs_strFileSpec;
     static int gs_findFlags = 0;
@@ -1237,7 +1254,7 @@ wxString wxFindFirstFile(const wxChar *spec, int flags)
 {
     wxString result;
 
-#ifndef __VMS__
+#if !defined( __VMS__ ) || ( __VMS_VER >= 70000000 )
     if (gs_dirStream)
         closedir(gs_dirStream); // edz 941103: better housekeping
 
@@ -1266,7 +1283,7 @@ wxString wxFindFirstFile(const wxChar *spec, int flags)
     {
         result = wxFindNextFile();
     }
-#endif // !VMS
+#endif // !VMS6.x or earlier
 
     return result;
 }
@@ -1275,7 +1292,7 @@ wxString wxFindNextFile()
 {
     wxString result;
 
-#ifndef __VMS__
+#if !defined( __VMS__ ) || ( __VMS_VER >= 70000000 )
     wxCHECK_MSG( gs_dirStream, result, wxT("must call wxFindFirstFile first") );
 
     // Find path only so we can concatenate
@@ -1293,7 +1310,9 @@ wxString wxFindNextFile()
           nextDir != NULL;
           nextDir = readdir(gs_dirStream) )
     {
-        if (wxMatchWild(name, nextDir->d_name))
+        if (wxMatchWild(name, nextDir->d_name, FALSE) &&   // RR: added FALSE to find hidden files
+           strcmp(nextDir->d_name, ".") && 
+           strcmp(nextDir->d_name, "..") )
         {
             result.Empty();
             if ( !path.IsEmpty() )
@@ -1332,7 +1351,7 @@ wxString wxFindNextFile()
 
     closedir(gs_dirStream);
     gs_dirStream = (DIR *) NULL;
-#endif // !VMS
+#endif // !VMS6.2 or earlier
 
     return result;
 }
@@ -1762,9 +1781,10 @@ void WXDLLEXPORT wxSplitPath(const wxChar *pszFileName,
 #else // assume Unix
     const wxChar *pLastSeparator = wxStrrchr(pszFileName, wxFILE_SEP_PATH_UNIX);
 
-    if ( pDot == pszFileName )
+    if ( (pDot == pszFileName) || (*(pDot - 1) == wxFILE_SEP_PATH_UNIX) )
     {
-        // under Unix files like .profile are treated in a special way
+        // under Unix, dot may be (and commonly is) the first character of the
+        // filename, don't treat the entire filename as extension in this case
         pDot = NULL;
     }
 #endif // MSW/Unix
@@ -1800,6 +1820,17 @@ void WXDLLEXPORT wxSplitPath(const wxChar *pszFileName,
     }
 }
 
+
+
+time_t WXDLLEXPORT wxFileModificationTime(const wxString& filename)
+{
+    struct stat buf;
+
+    stat(filename.fn_str(), &buf);
+    return buf.st_mtime;
+}
+
+
 //------------------------------------------------------------------------
 // wild character routines
 //------------------------------------------------------------------------