]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/filefn.h
guess it wasn't
[wxWidgets.git] / include / wx / filefn.h
index 2428a97d299795cd6f15340141b52f3147498024..871ed8c932e9748ba78998207b9a8ce654d18534 100644 (file)
@@ -122,6 +122,14 @@ enum wxSeekMode
   wxFromEnd
 };
 
+enum wxFileKind
+{
+  wxFILE_KIND_UNKNOWN,
+  wxFILE_KIND_DISK,     // a file supporting seeking to arbitrary offsets
+  wxFILE_KIND_TERMINAL, // a tty
+  wxFILE_KIND_PIPE      // a pipe
+};
+
 // ----------------------------------------------------------------------------
 // declare our versions of low level file functions: some compilers prepend
 // underscores to the usual names, some also have Unicode versions of them
@@ -140,28 +148,14 @@ enum wxSeekMode
     int wxWrite(int fd, const void *buf, unsigned int count);
     int wxEof(int fd);
     wxFileOffset wxSeek(int fd, wxFileOffset offset, int origin);
+    inline HANDLE wxGetOSFHandle(int fd) { return (HANDLE)fd; }
     #define wxLSeek wxSeek
     wxFileOffset wxTell(int fd);
-
-    #if wxUSE_UNICODE
-        #if wxUSE_UNICODE_MSLU
-            #define   wxMkDir      wxMSLU__wmkdir
-            #define   wxRmDir      wxMSLU__wrmdir
-            #define   wxStat       wxMSLU__wstat
-        #else
-            #define   wxMkDir      _wmkdir
-            #define   wxRmDir      _wrmdir
-            #define   wxStat       _wstat
-        #endif
-    #else // !wxUSE_UNICODE
-        #define   wxMkDir      _mkdir
-        #ifdef __WATCOMC__
-            #define   wxRmDir      rmdir
-        #else
-            #define   wxRmDir      _rmdir
-        #endif
-        #define   wxStat       _stat
-    #endif
+    
+    // always Unicode under WinCE
+    #define   wxMkDir      _wmkdir
+    #define   wxRmDir      _wrmdir
+    #define   wxStat       _wstat
     #define   wxStructStat struct _stat
 
 // Microsoft compiler loves underscores, feed them to it
@@ -358,6 +352,20 @@ enum wxSeekMode
     #endif
 #endif // platforms
 
+#if defined(__WXMSW__) && !defined(__WXWINCE__)
+    // get the HANDLE associated with a file descriptor
+#   ifdef __CYGWIN__
+#       include "wx/msw/private.h" // for HANDLE
+#       include <io.h> // for get_osfhandle()
+        inline HANDLE wxGetOSFHandle(int fd) { return (HANDLE) get_osfhandle(fd); }
+#   else
+#       ifdef __BORLANDC__
+#           include "wx/msw/private.h" // for HANDLE
+#       endif
+        inline HANDLE wxGetOSFHandle(int fd) { return (HANDLE) _get_osfhandle(fd); }
+#   endif
+#endif
+
 #if defined(__VISAGECPP__) && __IBMCPP__ >= 400
 //
 // VisualAge C++ V4.0 cannot have any external linkage const decs
@@ -464,6 +472,10 @@ WXDLLIMPEXP_BASE bool wxMkdir(const wxString& dir, int perm = 0777);
 // Remove directory. Flags reserved for future use.
 WXDLLIMPEXP_BASE bool wxRmdir(const wxString& dir, int flags = 0);
 
+// Return the type of an open file
+WXDLLIMPEXP_BASE wxFileKind wxGetFileKind(int fd);
+inline wxFileKind wxGetFileKind (FILE *fp) { return wxGetFileKind(fileno(fp)); }
+
 // compatibility defines, don't use in new code
 #define wxDirExists wxPathExists