]> git.saurik.com Git - wxWidgets.git/commitdiff
wxFindFirst/NextFile() now return wxString and not "char *", wxGetCwd() added
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 9 Feb 1999 17:04:29 +0000 (17:04 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 9 Feb 1999 17:04:29 +0000 (17:04 +0000)
(to be used instead of wxGetWorkingDirectory)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/function.tex
include/wx/filefn.h
src/common/filefn.cpp
src/common/intl.cpp

index e7befa3eb60e73cf1a6bad859f8823c7f41287be..40cb011aa26fa5d191ebfe177d4cdc918be1f9cc 100644 (file)
@@ -107,6 +107,12 @@ TRUE if successful.
 
 Copies {\it file1} to {\it file2}, returning TRUE if successful.
 
 
 Copies {\it file1} to {\it file2}, returning TRUE if successful.
 
+\membersection{::wxGetCwd}\label{wxgetcwd}
+
+\func{wxString}{wxGetCwd}{\void}
+
+Returns a string containing the current (or working) directory.
+
 \membersection{::wxGetHostName}\label{wxgethostname}
 
 \func{bool}{wxGetHostName}{\param{const wxString\& }{buf}, \param{int }{sz}}
 \membersection{::wxGetHostName}\label{wxgethostname}
 
 \func{bool}{wxGetHostName}{\param{const wxString\& }{buf}, \param{int }{sz}}
@@ -158,6 +164,8 @@ Returns TRUE if successful, FALSE otherwise.
 
 \func{wxString}{wxGetWorkingDirectory}{\param{const wxString\& }{buf=NULL}, \param{int }{sz=1000}}
 
 
 \func{wxString}{wxGetWorkingDirectory}{\param{const wxString\& }{buf=NULL}, \param{int }{sz=1000}}
 
+This function is obsolete: use \helpref{wxGetCwd}{wxgetcwd} instead.
+
 Copies the current working directory into the buffer if supplied, or
 copies the working directory into new storage (which you must delete yourself)
 if the buffer is NULL.
 Copies the current working directory into the buffer if supplied, or
 copies the working directory into new storage (which you must delete yourself)
 if the buffer is NULL.
index 8ed4d7ffbe02e3dbec2c302b8288601dd174af9d..b1523f117cfd6c0aab5cc1d1d54429687c7f5236 100644 (file)
@@ -13,7 +13,7 @@
 #define   _FILEFN_H_
 
 #ifdef __GNUG__
 #define   _FILEFN_H_
 
 #ifdef __GNUG__
-#pragma interface "filefn.h"
+    #pragma interface "filefn.h"
 #endif
 
 #include <wx/list.h>
 #endif
 
 #include <wx/list.h>
@@ -24,9 +24,9 @@
 
 // define off_t
 #ifndef __WXMAC__
 
 // define off_t
 #ifndef __WXMAC__
-#include  <sys/types.h>
+    #include  <sys/types.h>
 #else
 #else
-typedef long off_t;
+    typedef long off_t;
 #endif
 
 #if defined(__VISUALC__) || defined(__MWERKS__)
 #endif
 
 #if defined(__VISUALC__) || defined(__MWERKS__)
@@ -39,11 +39,12 @@ typedef long off_t;
 
 const off_t wxInvalidOffset = (off_t)-1;
 
 
 const off_t wxInvalidOffset = (off_t)-1;
 
-typedef enum {
+enum wxSeekMode
+{
   wxFromStart,
   wxFromCurrent,
   wxFromEnd
   wxFromStart,
   wxFromCurrent,
   wxFromEnd
-} wxSeekMode;
+};
 
 WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
 
 
 WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
 
@@ -68,7 +69,6 @@ WXDLLEXPORT wxString wxFileNameFromPath(const wxString& path);
 #define FileNameFromPath wxFileNameFromPath
 
 // Get directory
 #define FileNameFromPath wxFileNameFromPath
 
 // Get directory
-WXDLLEXPORT char* wxPathOnly(char *path);
 WXDLLEXPORT wxString wxPathOnly(const wxString& path);
 #define PathOnly wxPathOnly
 
 WXDLLEXPORT wxString wxPathOnly(const wxString& path);
 #define PathOnly wxPathOnly
 
@@ -86,6 +86,7 @@ WXDLLEXPORT void wxUnix2DosFilename(char *s);
   WXDLLEXPORT void wxMac2UnixFilename(char *s);
   WXDLLEXPORT void wxUnix2MacFilename(char *s);
 #endif
   WXDLLEXPORT void wxMac2UnixFilename(char *s);
   WXDLLEXPORT void wxUnix2MacFilename(char *s);
 #endif
+
 // Strip the extension, in situ
 WXDLLEXPORT void wxStripExtension(char *buffer);
 WXDLLEXPORT void wxStripExtension(wxString& buffer);
 // Strip the extension, in situ
 WXDLLEXPORT void wxStripExtension(char *buffer);
 WXDLLEXPORT void wxStripExtension(wxString& buffer);
@@ -113,8 +114,8 @@ WXDLLEXPORT char* wxCopyAbsolutePath(const wxString& path);
 // Flags are reserved for future use.
 #define wxFILE  1
 #define wxDIR   2
 // Flags are reserved for future use.
 #define wxFILE  1
 #define wxDIR   2
-WXDLLEXPORT char* wxFindFirstFile(const char *spec, int flags = wxFILE);
-WXDLLEXPORT char* wxFindNextFile(void);
+WXDLLEXPORT wxString wxFindFirstFile(const char *spec, int flags = wxFILE);
+WXDLLEXPORT wxString wxFindNextFile();
 
 // Does the pattern contain wildcards?
 WXDLLEXPORT bool wxIsWild(const wxString& pattern);
 
 // Does the pattern contain wildcards?
 WXDLLEXPORT bool wxIsWild(const wxString& pattern);
@@ -142,6 +143,9 @@ WXDLLEXPORT bool wxRenameFile(const wxString& file1, const wxString& file2);
 // IMPORTANT NOTE getcwd is know not to work under some releases
 // of Win32s 1.3, according to MS release notes!
 WXDLLEXPORT char* wxGetWorkingDirectory(char *buf = (char *) NULL, int sz = 1000);
 // IMPORTANT NOTE getcwd is know not to work under some releases
 // of Win32s 1.3, according to MS release notes!
 WXDLLEXPORT char* wxGetWorkingDirectory(char *buf = (char *) NULL, int sz = 1000);
+// new and preferred version of wxGetWorkingDirectory
+// NB: can't have the same name because of overloading ambiguity
+WXDLLEXPORT wxString wxGetCwd();
 
 // Set working directory
 WXDLLEXPORT bool wxSetWorkingDirectory(const wxString& d);
 
 // Set working directory
 WXDLLEXPORT bool wxSetWorkingDirectory(const wxString& d);
@@ -153,23 +157,23 @@ WXDLLEXPORT bool wxMkdir(const wxString& dir);
 WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
 
 // separators in file names
 WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
 
 // separators in file names
-#define FILE_SEP_EXT        '.'
-#define FILE_SEP_DSK        ':'
-#define FILE_SEP_PATH_DOS   '\\'
-#define FILE_SEP_PATH_UNIX  '/'
+#define wxFILE_SEP_EXT        '.'
+#define wxFILE_SEP_DSK        ':'
+#define wxFILE_SEP_PATH_DOS   '\\'
+#define wxFILE_SEP_PATH_UNIX  '/'
 
 // separator in the path list (as in PATH environment variable)
 // NB: these are strings and not characters on purpose!
 
 // separator in the path list (as in PATH environment variable)
 // NB: these are strings and not characters on purpose!
-#define PATH_SEP_DOS        ";"
-#define PATH_SEP_UNIX       ":"
+#define wxPATH_SEP_DOS        ";"
+#define wxPATH_SEP_UNIX       ":"
 
 // platform independent versions
 #ifdef  __UNIX__
 
 // platform independent versions
 #ifdef  __UNIX__
-  #define FILE_SEP_PATH     FILE_SEP_PATH_UNIX
-  #define PATH_SEP          PATH_SEP_UNIX
+  #define wxFILE_SEP_PATH     wxFILE_SEP_PATH_UNIX
+  #define wxPATH_SEP          wxPATH_SEP_UNIX
 #else   // Windows
 #else   // Windows
-  #define FILE_SEP_PATH     FILE_SEP_PATH_DOS
-  #define PATH_SEP          PATH_SEP_DOS
+  #define wxFILE_SEP_PATH     wxFILE_SEP_PATH_DOS
+  #define wxPATH_SEP          wxPATH_SEP_DOS
 #endif  // Unix/Windows
 
 // this is useful for wxString::IsSameAs(): to compare two file names use
 #endif  // Unix/Windows
 
 // this is useful for wxString::IsSameAs(): to compare two file names use
@@ -182,7 +186,7 @@ WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
 
 // is the char a path separator?
 inline bool wxIsPathSeparator(char c)
 
 // is the char a path separator?
 inline bool wxIsPathSeparator(char c)
-  { return c == FILE_SEP_PATH_DOS || c == FILE_SEP_PATH_UNIX; }
+  { return c == wxFILE_SEP_PATH_DOS || c == wxFILE_SEP_PATH_UNIX; }
 
 // does the string ends with path separator?
 WXDLLEXPORT bool wxEndsWithPathSeparator(const char *pszFileName);
 
 // does the string ends with path separator?
 WXDLLEXPORT bool wxEndsWithPathSeparator(const char *pszFileName);
@@ -209,19 +213,20 @@ WXDLLEXPORT wxString wxGetOSDirectory();
 class WXDLLEXPORT wxPathList : public wxStringList
 {
 public:
 class WXDLLEXPORT wxPathList : public wxStringList
 {
 public:
-    void AddEnvList(const wxString& envVariable);    // Adds all paths in environment variable
+    // Adds all paths in environment variable
+    void AddEnvList(const wxString& envVariable);
 
     void Add(const wxString& path);
     // Avoid compiler warning
     wxNode *Add(const char *s) { return wxStringList::Add(s); }
 
     void Add(const wxString& path);
     // Avoid compiler warning
     wxNode *Add(const char *s) { return wxStringList::Add(s); }
-
-    wxString FindValidPath(const wxString& filename);   // Find the first full path
-    // for which the file exists
-    wxString FindAbsoluteValidPath(const wxString& filename);   // Find the first full path
-    // for which the file exists; ensure it's an absolute
-    // path that gets returned.
-    void EnsureFileAccessible(const wxString& path); // Given full path and filename,
-    // add path to list
+    // Find the first full path for which the file exists
+    wxString FindValidPath(const wxString& filename);
+    // Find the first full path for which the file exists; ensure it's an
+    // absolute path that gets returned.
+    wxString FindAbsoluteValidPath(const wxString& filename);
+    // Given full path and filename, add path to list
+    void EnsureFileAccessible(const wxString& path);
+    // Returns TRUE if the path is in the list
     bool Member(const wxString& path);
 
 private:
     bool Member(const wxString& path);
 
 private:
index 59a9cd78f097a0bc4ef0072d88a8803cda6a735b..36bd79187f4b8d18b60ae802b733c27e9360bd17 100644 (file)
@@ -10,7 +10,7 @@
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-#pragma implementation "filefn.h"
+    #pragma implementation "filefn.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/defs.h"
 
 #ifdef __BORLANDC__
 #include "wx/defs.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/defs.h"
+    #include "wx/defs.h"
 #endif
 
 #include "wx/utils.h"
 #endif
 
 #include "wx/utils.h"
 #include <time.h>
 
 #ifndef __MWERKS__
 #include <time.h>
 
 #ifndef __MWERKS__
-#include <sys/types.h>
-#include <sys/stat.h>
+    #include <sys/types.h>
+    #include <sys/stat.h>
 #else
 #else
-#include <stat.h>
-#include <unistd.h>
+    #include <stat.h>
+    #include <unistd.h>
 #endif
 
 #ifdef __UNIX__
 #endif
 
 #ifdef __UNIX__
-#include <unistd.h>
-#include <dirent.h>
+    #include <unistd.h>
+    #include <dirent.h>
 #endif
 
 #ifdef __WINDOWS__
 #if !defined( __GNUWIN32__ ) && !defined( __MWERKS__ ) && !defined(__SALFORDC__)
 #endif
 
 #ifdef __WINDOWS__
 #if !defined( __GNUWIN32__ ) && !defined( __MWERKS__ ) && !defined(__SALFORDC__)
-#include <direct.h>
-#include <dos.h>
-#endif
-#endif
+    #include <direct.h>
+    #include <dos.h>
+#endif // __WINDOWS__
+#endif // native Win compiler
 
 #ifdef __GNUWIN32__
 
 #ifdef __GNUWIN32__
-#ifndef __TWIN32__
-#include <sys/unistd.h>
-#endif
+    #ifndef __TWIN32__
+        #include <sys/unistd.h>
+    #endif
 
 
-#define stricmp strcasecmp
+    #define stricmp strcasecmp
 #endif
 
 #ifdef __BORLANDC__ // Please someone tell me which version of Borland needs
                     // this (3.1 I believe) and how to test for it.
                     // If this works for Borland 4.0 as well, then no worries.
 #endif
 
 #ifdef __BORLANDC__ // Please someone tell me which version of Borland needs
                     // this (3.1 I believe) and how to test for it.
                     // If this works for Borland 4.0 as well, then no worries.
-#include <dir.h>
+    #include <dir.h>
 #endif
 
 #ifdef __SALFORDC__
 #endif
 
 #ifdef __SALFORDC__
-#include <dir.h>
-#include <unix.h>
+    #include <dir.h>
+    #include <unix.h>
 #endif
 
 #include "wx/setup.h"
 #endif
 
 #include "wx/setup.h"
 
 // No, Cygwin doesn't appear to have fnmatch.h after all.
 #if defined(HAVE_FNMATCH_H)
 
 // No, Cygwin doesn't appear to have fnmatch.h after all.
 #if defined(HAVE_FNMATCH_H)
-#include   "fnmatch.h"
+    #include "fnmatch.h"
 #endif
 
 #ifdef __WINDOWS__
 #endif
 
 #ifdef __WINDOWS__
-#include "windows.h"
+    #include "windows.h"
 #endif
 
 #define _MAXPATHLEN 500
 
 extern char *wxBuffer;
 #ifdef __WXMAC__
 #endif
 
 #define _MAXPATHLEN 500
 
 extern char *wxBuffer;
 #ifdef __WXMAC__
-extern char gwxMacFileName[] ;
-extern char gwxMacFileName2[] ;
-extern char gwxMacFileName3[] ;
+    extern char gwxMacFileName[] ;
+    extern char gwxMacFileName2[] ;
+    extern char gwxMacFileName3[] ;
 #endif
 
 #if !USE_SHARED_LIBRARIES
 #endif
 
 #if !USE_SHARED_LIBRARIES
-IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
+    IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
 #endif
 
 void wxPathList::Add (const wxString& path)
 {
 #endif
 
 void wxPathList::Add (const wxString& path)
 {
-  wxStringList::Add ((char *)(const char *)path);
+    wxStringList::Add ((char *)(const char *)path);
 }
 
 // Add paths e.g. from the PATH environment variable
 }
 
 // Add paths e.g. from the PATH environment variable
@@ -148,13 +148,12 @@ void wxPathList::AddEnvList (const wxString& envVariable)
 // to the list if not already there.
 void wxPathList::EnsureFileAccessible (const wxString& path)
 {
 // to the list if not already there.
 void wxPathList::EnsureFileAccessible (const wxString& path)
 {
-  wxString path1(path);
-  char *path_only = wxPathOnly (WXSTRINGCAST path1);
-  if (path_only)
-  {
-      if (!Member (wxString(path_only)))
-            Add (wxString(path_only));
-  }
+    wxString path_only(wxPathOnly(path));
+    if ( !path_only.IsEmpty() )
+    {
+        if ( !Member(path_only) )
+            Add(path_only);
+    }
 }
 
 bool wxPathList::Member (const wxString& path)
 }
 
 bool wxPathList::Member (const wxString& path)
@@ -391,7 +390,7 @@ char *wxCopyAbsolutePath(const wxString& filename)
   if (! IsAbsolutePath(wxExpandPath(wxBuffer, filename))) {
     char    buf[_MAXPATHLEN];
     buf[0] = '\0';
   if (! IsAbsolutePath(wxExpandPath(wxBuffer, filename))) {
     char    buf[_MAXPATHLEN];
     buf[0] = '\0';
-    wxGetWorkingDirectory(buf, sizeof(buf)/sizeof(char));
+    wxGetWorkingDirectory(buf, WXSIZEOF(buf));
     char ch = buf[strlen(buf) - 1];
 #ifdef __WXMSW__
     if (ch != '\\' && ch != '/')
     char ch = buf[strlen(buf) - 1];
 #ifdef __WXMSW__
     if (ch != '\\' && ch != '/')
@@ -1135,268 +1134,280 @@ char *wxGetTempFileName(const wxString& prefix, char *buf)
 // Flags are reserved for future use.
 
 #ifndef __VMS__
 // Flags are reserved for future use.
 
 #ifndef __VMS__
-static DIR *wxDirStream = (DIR *) NULL;
-static char *wxFileSpec = (char *) NULL;
-static int wxFindFileFlags = 0;
+    static DIR *gs_dirStream = (DIR *) NULL;
+    static wxString gs_strFileSpec;
+    static int gs_findFlags = 0;
 #endif
 
 #endif
 
-char *wxFindFirstFile(const char *spec, int flags)
+wxString wxFindFirstFile(const char *spec, int flags)
 {
 {
+    wxString result;
+
 #ifndef __VMS__
 #ifndef __VMS__
-  if (wxDirStream)
-    closedir(wxDirStream); // edz 941103: better housekeping
+    if (gs_dirStream)
+        closedir(gs_dirStream); // edz 941103: better housekeping
 
 
-  wxFindFileFlags = flags;
+    gs_findFlags = flags;
 
 
-  if (wxFileSpec)
-    delete[] wxFileSpec;
-  wxFileSpec = copystring(spec);
+    gs_strFileSpec = spec;
 
 
-  // Find path only so we can concatenate
-  // found file onto path
-  char *p = wxPathOnly(wxFileSpec);
+    // Find path only so we can concatenate
+    // found file onto path
+    wxString path(wxPathOnly(gs_strFileSpec));
 
 
-  /* MATTHEW: special case: path is really "/" */
-  if (p && !*p && *wxFileSpec == '/')
-    p = "/";
-  /* MATTHEW: p is NULL => Local directory */
-  if (!p)
-    p = ".";
+    // special case: path is really "/"
+    if ( !path && gs_strFileSpec[0u] == '/' )
+        path = '/';
+    // path is empty => Local directory
+    if ( !path )
+        path = '.';
 
 
-  if ((wxDirStream=opendir(p))==NULL)
-    return (char *) NULL;
+    gs_dirStream = opendir(path);
+    if ( !gs_dirStream )
+    {
+        wxLogSysError(_("Can not enumerate files in directory '%s'"),
+                      path.c_str());
+    }
+    else
+    {
+        result = wxFindNextFile();
+    }
+#endif // !VMS
 
 
- /* MATTHEW: [5] wxFindNextFile can do the rest of the work */
-  return wxFindNextFile();
-#endif
- // ifndef __VMS__
-  return (char *) NULL;
+    return result;
 }
 
 }
 
-char *wxFindNextFile(void)
+wxString wxFindNextFile()
 {
 {
-#ifndef __VMS__
-  static char buf[400]; // FIXME static buffer
+    wxString result;
 
 
-  /* MATTHEW: [2] Don't crash if we read too many times */
-  if (!wxDirStream)
-    return (char *) NULL;
+#ifndef __VMS__
+    wxCHECK_MSG( gs_dirStream, result, "must call wxFindFirstFile first" );
+
+    // Find path only so we can concatenate
+    // found file onto path
+    wxString path(wxPathOnly(gs_strFileSpec));
+    wxString name(wxFileNameFromPath(gs_strFileSpec));
+
+    /* MATTHEW: special case: path is really "/" */
+    if ( !path && gs_strFileSpec[0u] == '/')
+        path = '/';
+
+    // Do the reading
+    struct dirent *nextDir;
+    for ( nextDir = readdir(gs_dirStream);
+          nextDir != NULL;
+          nextDir = readdir(gs_dirStream) )
+    {
+        if (wxMatchWild(name, nextDir->d_name))
+        {
+            result.Empty();
+            if ( !path.IsEmpty() )
+            {
+                result = path;
+                if ( path != '/' )
+                    result += '/';
+            }
 
 
-  // Find path only so we can concatenate
-  // found file onto path
-  char *p = wxPathOnly(wxFileSpec);
-  char *n = wxFileNameFromPath(wxFileSpec);
+            result += nextDir->d_name;
 
 
-  /* MATTHEW: special case: path is really "/" */
-  if (p && !*p && *wxFileSpec == '/')
-    p = "/";
+            // Only return "." and ".." when they match
+            bool isdir;
+            if ( (strcmp(nextDir->d_name, ".") == 0) ||
+                 (strcmp(nextDir->d_name, "..") == 0))
+            {
+                if ( (gs_findFlags & wxDIR) != 0 )
+                    isdir = TRUE;
+                else
+                    continue;
+            }
+            else
+                isdir = wxDirExists(result);
 
 
-  // Do the reading
-  struct dirent *nextDir;
-  for (nextDir = readdir(wxDirStream); nextDir != NULL; nextDir = readdir(wxDirStream))
-  {
+            // and only return directories when flags & wxDIR
+            if ( !gs_findFlags ||
+                 ((gs_findFlags & wxDIR) && isdir) ||
+                 ((gs_findFlags & wxFILE) && !isdir) )
+            {
+                return result;
+            }
+        }
+    }
 
 
-    /* MATTHEW: [5] Only return "." and ".." when they match, and only return
-       directories when flags & wxDIR */
-    if (wxMatchWild(n, nextDir->d_name)) {
-      bool isdir;
+    result.Empty(); // not found
 
 
-      buf[0] = 0;
-      if (p && *p) {
-        strcpy(buf, p);
-        if (strcmp(p, "/") != 0)
-          strcat(buf, "/");
-      }
-      strcat(buf, nextDir->d_name);
-
-      if ((strcmp(nextDir->d_name, ".") == 0) ||
-          (strcmp(nextDir->d_name, "..") == 0)) {
-        if (wxFindFileFlags && !(wxFindFileFlags & wxDIR))
-          continue;
-        isdir = TRUE;
-      } else
-        isdir = wxDirExists(buf);
-
-      if (!wxFindFileFlags
-          || ((wxFindFileFlags & wxDIR) && isdir)
-          || ((wxFindFileFlags & wxFILE) && !isdir))
-        return buf;
-    }
-  }
-  closedir(wxDirStream);
-  wxDirStream = (DIR *) NULL;
-#endif
- // ifndef __VMS__
+    closedir(gs_dirStream);
+    gs_dirStream = (DIR *) NULL;
+#endif // !VMS
 
 
-  return (char *) NULL;
+    return result;
 }
 
 #elif defined(__WXMSW__)
 
 #ifdef __WIN32__
 }
 
 #elif defined(__WXMSW__)
 
 #ifdef __WIN32__
-HANDLE wxFileStrucHandle = INVALID_HANDLE_VALUE;
-WIN32_FIND_DATA wxFileStruc;
-#else
-#ifdef __BORLANDC__
-static struct ffblk wxFileStruc;
-#else
-static struct _find_t wxFileStruc;
-#endif
-#endif
-static wxString wxFileSpec = "";
-static int wxFindFileFlags;
-
-char *wxFindFirstFile(const char *spec, int flags)
+    static HANDLE gs_hFileStruct = INVALID_HANDLE_VALUE;
+    static WIN32_FIND_DATA gs_findDataStruct;
+#else // Win16
+    #ifdef __BORLANDC__
+        static struct ffblk gs_findDataStruct;
+    #else
+        static struct _find_t gs_findDataStruct;
+    #endif // Borland
+#endif // Win32/16
+
+static wxString gs_strFileSpec;
+static int gs_findFlags = 0;
+
+wxString wxFindFirstFile(const char *spec, int flags)
 {
 {
-  wxFileSpec = spec;
-  wxFindFileFlags = flags; /* MATTHEW: [5] Remember flags */
-
-  // Find path only so we can concatenate
-  // found file onto path
-  wxString path1(wxFileSpec);
-  char *p = wxPathOnly(WXSTRINGCAST path1);
-  if (p && (strlen(p) > 0))
-         strcpy(wxBuffer, p);
-  else
-         wxBuffer[0] = 0;
+    wxString result;
+
+    gs_strFileSpec = spec;
+    gs_findFlags = flags; /* MATTHEW: [5] Remember flags */
+
+    // Find path only so we can concatenate found file onto path
+    wxString path(wxPathOnly(gs_strFileSpec));
+    if ( !path.IsEmpty() )
+        result << path << '\\';
 
 #ifdef __WIN32__
 
 #ifdef __WIN32__
-  if (wxFileStrucHandle != INVALID_HANDLE_VALUE)
-         FindClose(wxFileStrucHandle);
+    if ( gs_hFileStruct != INVALID_HANDLE_VALUE )
+        FindClose(gs_hFileStruct);
 
 
-  wxFileStrucHandle = ::FindFirstFile(WXSTRINGCAST spec, &wxFileStruc);
+    gs_hFileStruct = ::FindFirstFile(WXSTRINGCAST spec, &gs_findDataStruct);
 
 
-  if (wxFileStrucHandle == INVALID_HANDLE_VALUE)
-         return NULL;
+    if ( gs_hFileStruct == INVALID_HANDLE_VALUE )
+    {
+        wxLogSysError(_("Can not enumerate files in directory '%s'"),
+                      path.c_str());
 
 
-  bool isdir = !!(wxFileStruc.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
+        result.Empty();
 
 
-  if (isdir && !(flags & wxDIR))
-         return wxFindNextFile();
-  else if (!isdir && flags && !(flags & wxFILE))
-         return wxFindNextFile();
+        return result;
+    }
 
 
-  if (wxBuffer[0] != 0)
-         strcat(wxBuffer, "\\");
-  strcat(wxBuffer, wxFileStruc.cFileName);
-  return wxBuffer;
-#else
+    bool isdir = !!(gs_findDataStruct.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
+
+    if (isdir && !(flags & wxDIR))
+        return wxFindNextFile();
+    else if (!isdir && flags && !(flags & wxFILE))
+        return wxFindNextFile();
 
 
-  int flag = _A_NORMAL;
-  if (flags & wxDIR) /* MATTHEW: [5] Use & */
-    flag = _A_SUBDIR;
+    result += gs_findDataStruct.cFileName;
+
+    return result;
+#else
+    int flag = _A_NORMAL;
+    if (flags & wxDIR) /* MATTHEW: [5] Use & */
+        flag = _A_SUBDIR;
 
 #ifdef __BORLANDC__
 
 #ifdef __BORLANDC__
-  if (findfirst(WXSTRINGCAST spec, &wxFileStruc, flag) == 0)
+    if (findfirst(WXSTRINGCAST spec, &gs_findDataStruct, flag) == 0)
 #else
 #else
-  if (_dos_findfirst(WXSTRINGCAST spec, flag, &wxFileStruc) == 0)
+        if (_dos_findfirst(WXSTRINGCAST spec, flag, &gs_findDataStruct) == 0)
 #endif
 #endif
-  {
-    /* MATTHEW: [5] Check directory flag */
-    char attrib;
+        {
+            /* MATTHEW: [5] Check directory flag */
+            char attrib;
 
 #ifdef __BORLANDC__
 
 #ifdef __BORLANDC__
-    attrib = wxFileStruc.ff_attrib;
+            attrib = gs_findDataStruct.ff_attrib;
 #else
 #else
-    attrib = wxFileStruc.attrib;
+            attrib = gs_findDataStruct.attrib;
 #endif
 
 #endif
 
-    if (attrib & _A_SUBDIR) {
-      if (!(wxFindFileFlags & wxDIR))
-        return wxFindNextFile();
-    } else if (wxFindFileFlags && !(wxFindFileFlags & wxFILE))
+            if (attrib & _A_SUBDIR) {
+                if (!(gs_findFlags & wxDIR))
+                    return wxFindNextFile();
+            } else if (gs_findFlags && !(gs_findFlags & wxFILE))
                 return wxFindNextFile();
 
                 return wxFindNextFile();
 
-         if (wxBuffer[0] != 0)
-                strcat(wxBuffer, "\\");
-
+            result +=
 #ifdef __BORLANDC__
 #ifdef __BORLANDC__
-         strcat(wxBuffer, wxFileStruc.ff_name);
+                    gs_findDataStruct.ff_name
 #else
 #else
-         strcat(wxBuffer, wxFileStruc.name);
+                    gs_findDataStruct.name
 #endif
 #endif
-         return wxBuffer;
-  }
-  else
-    return NULL;
+                    ;
+        }
 #endif // __WIN32__
 #endif // __WIN32__
+
+    return result;
 }
 
 }
 
-char *wxFindNextFile(void)
+wxString wxFindNextFile()
 {
 {
-  // Find path only so we can concatenate
-  // found file onto path
-  wxString p2(wxFileSpec);
-  char *p = wxPathOnly(WXSTRINGCAST p2);
-  if (p && (strlen(p) > 0))
-         strcpy(wxBuffer, p);
-  else
-         wxBuffer[0] = 0;
+    wxString result;
 
 
- try_again:
+    // Find path only so we can concatenate found file onto path
+    wxString path(wxPathOnly(gs_strFileSpec));
+
+try_again:
 
 #ifdef __WIN32__
 
 #ifdef __WIN32__
-  if (wxFileStrucHandle == INVALID_HANDLE_VALUE)
-         return NULL;
-
-  bool success = (FindNextFile(wxFileStrucHandle, &wxFileStruc) != 0);
-  if (!success) {
-                FindClose(wxFileStrucHandle);
-      wxFileStrucHandle = INVALID_HANDLE_VALUE;
-                return NULL;
-  }
+    if (gs_hFileStruct == INVALID_HANDLE_VALUE)
+        return NULL;
 
 
-  bool isdir = !!(wxFileStruc.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
+    bool success = (FindNextFile(gs_hFileStruct, &gs_findDataStruct) != 0);
+    if (!success)
+    {
+        FindClose(gs_hFileStruct);
+        gs_hFileStruct = INVALID_HANDLE_VALUE;
+    }
+    else
+    {
+        bool isdir = !!(gs_findDataStruct.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
 
 
-  if (isdir && !(wxFindFileFlags & wxDIR))
-    goto try_again;
-  else if (!isdir && wxFindFileFlags && !(wxFindFileFlags & wxFILE))
-         goto try_again;
+        if (isdir && !(gs_findFlags & wxDIR))
+            goto try_again;
+        else if (!isdir && gs_findFlags && !(gs_findFlags & wxFILE))
+            goto try_again;
 
 
-  if (wxBuffer[0] != 0)
-    strcat(wxBuffer, "\\");
-  strcat(wxBuffer, wxFileStruc.cFileName);
-  return wxBuffer;
-#else
+        if ( !path.IsEmpty() )
+            result << path << '\\';
+        result << gs_findDataStruct.cFileName;
+    }
+
+    return result;
+#else // Win16
 
 #ifdef __BORLANDC__
 
 #ifdef __BORLANDC__
-  if (findnext(&wxFileStruc) == 0)
+    if (findnext(&gs_findDataStruct) == 0)
 #else
 #else
-  if (_dos_findnext(&wxFileStruc) == 0)
+        if (_dos_findnext(&gs_findDataStruct) == 0)
 #endif
 #endif
-  {
-    /* MATTHEW: [5] Check directory flag */
-    char attrib;
+        {
+            /* MATTHEW: [5] Check directory flag */
+            char attrib;
 
 #ifdef __BORLANDC__
 
 #ifdef __BORLANDC__
-    attrib = wxFileStruc.ff_attrib;
+            attrib = gs_findDataStruct.ff_attrib;
 #else
 #else
-    attrib = wxFileStruc.attrib;
+            attrib = gs_findDataStruct.attrib;
 #endif
 
 #endif
 
-    if (attrib & _A_SUBDIR) {
-      if (!(wxFindFileFlags & wxDIR))
-        goto try_again;
-    } else if (wxFindFileFlags && !(wxFindFileFlags & wxFILE))
-      goto try_again;
+            if (attrib & _A_SUBDIR) {
+                if (!(gs_findFlags & wxDIR))
+                    goto try_again;
+            } else if (gs_findFlags && !(gs_findFlags & wxFILE))
+                goto try_again;
 
 
 
 
-         if (wxBuffer[0] != 0)
-      strcat(wxBuffer, "\\");
+            result +=
 #ifdef __BORLANDC__
 #ifdef __BORLANDC__
-         strcat(wxBuffer, wxFileStruc.ff_name);
+                      gs_findDataStruct.ff_name
 #else
 #else
-         strcat(wxBuffer, wxFileStruc.name);
-#endif
-         return wxBuffer;
-  }
-  else
-    return NULL;
+                      gs_findDataStruct.name
 #endif
 #endif
+                      ;
+        }
+#endif // Win32/16
+
+    return result;
 }
 
 }
 
-#endif
- // __WXMSW__
+#endif // Unix/Windows
 
 // Get current working directory.
 // If buf is NULL, allocates space using new, else
 
 // Get current working directory.
 // If buf is NULL, allocates space using new, else
@@ -1416,6 +1427,11 @@ char *wxGetWorkingDirectory(char *buf, int sz)
   return buf;
 }
 
   return buf;
 }
 
+wxString wxGetCwd()
+{
+    return wxString(wxGetWorkingDirectory());
+}
+
 bool wxSetWorkingDirectory(const wxString& d)
 {
 #if defined( __UNIX__ ) || defined( __WXMAC__ )
 bool wxSetWorkingDirectory(const wxString& d)
 {
 #if defined( __UNIX__ ) || defined( __WXMAC__ )
@@ -1490,11 +1506,14 @@ bool wxFindFileInPath(wxString *pStr, const char *pszPath, const char *pszFile)
 
   wxString strFile;
   char *pc;
 
   wxString strFile;
   char *pc;
-  for ( pc = strtok(szPath, PATH_SEP); pc; pc = strtok((char *) NULL, PATH_SEP) ) {
+  for ( pc = strtok(szPath, wxPATH_SEP);
+        pc != NULL;
+        pc = strtok((char *) NULL, wxPATH_SEP) )
+  {
     // search for the file in this directory
     strFile = pc;
     if ( !wxEndsWithPathSeparator(pc) )
     // search for the file in this directory
     strFile = pc;
     if ( !wxEndsWithPathSeparator(pc) )
-      strFile += FILE_SEP_PATH;
+      strFile += wxFILE_SEP_PATH;
     strFile += pszFile;
 
     if ( FileExists(strFile) ) {
     strFile += pszFile;
 
     if ( FileExists(strFile) ) {
@@ -1515,9 +1534,9 @@ void WXDLLEXPORT wxSplitPath(const char *pszFileName,
 {
   wxCHECK_RET( pszFileName, "NULL file name in wxSplitPath" );
 
 {
   wxCHECK_RET( pszFileName, "NULL file name in wxSplitPath" );
 
-  const char *pDot = strrchr(pszFileName, FILE_SEP_EXT);
-  const char *pSepUnix = strrchr(pszFileName, FILE_SEP_PATH_UNIX);
-  const char *pSepDos = strrchr(pszFileName, FILE_SEP_PATH_DOS);
+  const char *pDot = strrchr(pszFileName, wxFILE_SEP_EXT);
+  const char *pSepUnix = strrchr(pszFileName, wxFILE_SEP_PATH_UNIX);
+  const char *pSepDos = strrchr(pszFileName, wxFILE_SEP_PATH_DOS);
 
   // take the last of the two: nPosUnix containts the last slash in the
   // filename
 
   // take the last of the two: nPosUnix containts the last slash in the
   // filename
index 3d3ca71c45883ce89d2ac134912436e1e4d1783b..28ded97bb0051ff0fe1edadd0cef42778ebfc8ef 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     29/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Created:     29/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:    wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -97,7 +97,7 @@ public:
 
   // public variable pointing to the next element in a linked list (or NULL)
   wxMsgCatalog *m_pNext;
 
   // public variable pointing to the next element in a linked list (or NULL)
   wxMsgCatalog *m_pNext;
-  
+
 private:
   // this implementation is binary compatible with GNU gettext() version 0.10
 
 private:
   // this implementation is binary compatible with GNU gettext() version 0.10
 
@@ -118,11 +118,11 @@ private:
             ofsTransTable;  //        +10:  start of translated string table
     size_t32  nHashSize,      //        +14:  hash table size
             ofsHashTable;   //        +18:  offset of hash table start
             ofsTransTable;  //        +10:  start of translated string table
     size_t32  nHashSize,      //        +14:  hash table size
             ofsHashTable;   //        +18:  offset of hash table start
-  };                     
-  
+  };
+
   // all data is stored here, NULL if no data loaded
   size_t8 *m_pData;
   // all data is stored here, NULL if no data loaded
   size_t8 *m_pData;
-  
+
   // data description
   size_t32            m_numStrings,   // number of strings in this domain
                     m_nHashSize;    // number of entries in hash table
   // data description
   size_t32            m_numStrings,   // number of strings in this domain
                     m_nHashSize;    // number of entries in hash table
@@ -187,21 +187,21 @@ size_t32 wxMsgCatalog::GetHash(const char *sz)
 // swap the 2 halves of 32 bit integer if needed
 size_t32 wxMsgCatalog::Swap(size_t32 ui) const
 {
 // swap the 2 halves of 32 bit integer if needed
 size_t32 wxMsgCatalog::Swap(size_t32 ui) const
 {
-  return m_bSwapped ? (ui << 24) | ((ui & 0xff00) << 8) | 
+  return m_bSwapped ? (ui << 24) | ((ui & 0xff00) << 8) |
                       ((ui >> 8) & 0xff00) | (ui >> 24)
                     : ui;
 }
 
                       ((ui >> 8) & 0xff00) | (ui >> 24)
                     : ui;
 }
 
-wxMsgCatalog::wxMsgCatalog() 
-{ 
+wxMsgCatalog::wxMsgCatalog()
+{
   m_pData   = NULL;
   m_pszName = NULL;
 }
 
   m_pData   = NULL;
   m_pszName = NULL;
 }
 
-wxMsgCatalog::~wxMsgCatalog() 
-{ 
-  wxDELETEA(m_pData); 
-  wxDELETEA(m_pszName); 
+wxMsgCatalog::~wxMsgCatalog()
+{
+  wxDELETEA(m_pData);
+  wxDELETEA(m_pszName);
 }
 
 // small class to suppress the translation erros until exit from current scope
 }
 
 // small class to suppress the translation erros until exit from current scope
@@ -211,7 +211,7 @@ public:
     NoTransErr() { wxSuppressTransErrors(); }
    ~NoTransErr() { wxRestoreTransErrors();  }
 };
     NoTransErr() { wxSuppressTransErrors(); }
    ~NoTransErr() { wxRestoreTransErrors();  }
 };
-    
+
 // return all directories to search for given prefix
 static wxString GetAllMsgCatalogSubdirs(const char *prefix,
                                         const char *lang)
 // return all directories to search for given prefix
 static wxString GetAllMsgCatalogSubdirs(const char *prefix,
                                         const char *lang)
@@ -220,10 +220,10 @@ static wxString GetAllMsgCatalogSubdirs(const char *prefix,
 
     // search first in prefix/fr/LC_MESSAGES, then in prefix/fr and finally in
     // prefix (assuming the language is 'fr')
 
     // search first in prefix/fr/LC_MESSAGES, then in prefix/fr and finally in
     // prefix (assuming the language is 'fr')
-    searchPath << prefix << FILE_SEP_PATH << lang << FILE_SEP_PATH
-                         << "LC_MESSAGES" << PATH_SEP
-               << prefix << FILE_SEP_PATH << lang << PATH_SEP
-               << prefix << PATH_SEP;
+    searchPath << prefix << wxFILE_SEP_PATH << lang << wxFILE_SEP_PATH
+                         << "LC_MESSAGES" << wxPATH_SEP
+               << prefix << wxFILE_SEP_PATH << lang << wxPATH_SEP
+               << prefix << wxPATH_SEP;
 
     return searchPath;
 }
 
     return searchPath;
 }
@@ -238,17 +238,17 @@ static wxString GetFullSearchPath(const char *lang)
     for ( size_t n = 0; n < count; n++ )
     {
         searchPath << GetAllMsgCatalogSubdirs(s_searchPrefixes[n], lang)
     for ( size_t n = 0; n < count; n++ )
     {
         searchPath << GetAllMsgCatalogSubdirs(s_searchPrefixes[n], lang)
-                   << PATH_SEP;
+                   << wxPATH_SEP;
     }
 
     // then take the current directory
     // FIXME it should be the directory of the executable
     }
 
     // then take the current directory
     // FIXME it should be the directory of the executable
-    searchPath << GetAllMsgCatalogSubdirs(".", lang) << PATH_SEP;
+    searchPath << GetAllMsgCatalogSubdirs(".", lang) << wxPATH_SEP;
 
     // and finally add some standard ones
     searchPath
 
     // and finally add some standard ones
     searchPath
-        << GetAllMsgCatalogSubdirs("/usr/share/locale", lang) << PATH_SEP
-        << GetAllMsgCatalogSubdirs("/usr/lib/locale", lang) << PATH_SEP
+        << GetAllMsgCatalogSubdirs("/usr/share/locale", lang) << wxPATH_SEP
+        << GetAllMsgCatalogSubdirs("/usr/lib/locale", lang) << wxPATH_SEP
         << GetAllMsgCatalogSubdirs("/usr/local/share/locale", lang);
 
     return searchPath;
         << GetAllMsgCatalogSubdirs("/usr/local/share/locale", lang);
 
     return searchPath;
@@ -263,7 +263,7 @@ bool wxMsgCatalog::Load(const char *szDirPrefix, const char *szName)
   if ( pszLcPath != NULL )
       strPath += pszLcPath + wxString(szDirPrefix) + MSG_PATH;
 #endif // 0
   if ( pszLcPath != NULL )
       strPath += pszLcPath + wxString(szDirPrefix) + MSG_PATH;
 #endif // 0
-  
+
   wxString searchPath = GetFullSearchPath(szDirPrefix);
   const char *sublocale = strchr(szDirPrefix, '_');
   if ( sublocale )
   wxString searchPath = GetFullSearchPath(szDirPrefix);
   const char *sublocale = strchr(szDirPrefix, '_');
   if ( sublocale )
@@ -273,9 +273,9 @@ bool wxMsgCatalog::Load(const char *szDirPrefix, const char *szName)
       // exist
       searchPath << GetFullSearchPath(wxString(szDirPrefix).
                                       Left((size_t)(sublocale - szDirPrefix)))
       // exist
       searchPath << GetFullSearchPath(wxString(szDirPrefix).
                                       Left((size_t)(sublocale - szDirPrefix)))
-                 << PATH_SEP;
+                 << wxPATH_SEP;
   }
   }
-  
+
   wxString strFile = szName;
   strFile += MSGCATALOG_EXTENSION;
 
   wxString strFile = szName;
   strFile += MSGCATALOG_EXTENSION;
 
@@ -297,7 +297,7 @@ bool wxMsgCatalog::Load(const char *szDirPrefix, const char *szName)
   // open file
   wxLogVerbose(_("using catalog '%s' from '%s'."),
              szName, strFullName.c_str());
   // open file
   wxLogVerbose(_("using catalog '%s' from '%s'."),
              szName, strFullName.c_str());
-  
+
   wxFile fileMsg(strFullName);
   if ( !fileMsg.IsOpened() )
     return FALSE;
   wxFile fileMsg(strFullName);
   if ( !fileMsg.IsOpened() )
     return FALSE;
@@ -313,10 +313,10 @@ bool wxMsgCatalog::Load(const char *szDirPrefix, const char *szName)
     wxDELETEA(m_pData);
     return FALSE;
   }
     wxDELETEA(m_pData);
     return FALSE;
   }
-    
+
   // examine header
   bool bValid = (size_t)nSize > sizeof(wxMsgCatalogHeader);
   // examine header
   bool bValid = (size_t)nSize > sizeof(wxMsgCatalogHeader);
-  
+
   wxMsgCatalogHeader *pHeader = (wxMsgCatalogHeader *)m_pData;
   if ( bValid ) {
     // we'll have to swap all the integers if it's true
   wxMsgCatalogHeader *pHeader = (wxMsgCatalogHeader *)m_pData;
   if ( bValid ) {
     // we'll have to swap all the integers if it's true
@@ -325,20 +325,20 @@ bool wxMsgCatalog::Load(const char *szDirPrefix, const char *szName)
     // check the magic number
     bValid = m_bSwapped || pHeader->magic == MSGCATALOG_MAGIC;
   }
     // check the magic number
     bValid = m_bSwapped || pHeader->magic == MSGCATALOG_MAGIC;
   }
-  
+
   if ( !bValid ) {
     // it's either too short or has incorrect magic number
     wxLogWarning(_("'%s' is not a valid message catalog."), strFullName.c_str());
   if ( !bValid ) {
     // it's either too short or has incorrect magic number
     wxLogWarning(_("'%s' is not a valid message catalog."), strFullName.c_str());
-    
+
     wxDELETEA(m_pData);
     return FALSE;
   }
     wxDELETEA(m_pData);
     return FALSE;
   }
-      
+
   // initialize
   m_numStrings  = Swap(pHeader->numStrings);
   // initialize
   m_numStrings  = Swap(pHeader->numStrings);
-  m_pOrigTable  = (wxMsgTableEntry *)(m_pData + 
+  m_pOrigTable  = (wxMsgTableEntry *)(m_pData +
                    Swap(pHeader->ofsOrigTable));
                    Swap(pHeader->ofsOrigTable));
-  m_pTransTable = (wxMsgTableEntry *)(m_pData + 
+  m_pTransTable = (wxMsgTableEntry *)(m_pData +
                    Swap(pHeader->ofsTransTable));
 
   m_nHashSize   = Swap(pHeader->nHashSize);
                    Swap(pHeader->ofsTransTable));
 
   m_nHashSize   = Swap(pHeader->nHashSize);
@@ -358,16 +358,16 @@ const char *wxMsgCatalog::GetString(const char *szOrig) const
     return NULL;
 
   if ( HasHashTable() ) {   // use hash table for lookup if possible
     return NULL;
 
   if ( HasHashTable() ) {   // use hash table for lookup if possible
-    size_t32 nHashVal = GetHash(szOrig); 
+    size_t32 nHashVal = GetHash(szOrig);
     size_t32 nIndex   = nHashVal % m_nHashSize;
 
     size_t32 nIncr = 1 + (nHashVal % (m_nHashSize - 2));
     size_t32 nIndex   = nHashVal % m_nHashSize;
 
     size_t32 nIncr = 1 + (nHashVal % (m_nHashSize - 2));
-    
+
     while ( TRUE ) {
       size_t32 nStr = Swap(m_pHashTable[nIndex]);
       if ( nStr == 0 )
         return NULL;
     while ( TRUE ) {
       size_t32 nStr = Swap(m_pHashTable[nIndex]);
       if ( nStr == 0 )
         return NULL;
-      
+
       if ( strcmp(szOrig, StringAtOfs(m_pOrigTable, nStr - 1)) == 0 )
         return StringAtOfs(m_pTransTable, nStr - 1);
 
       if ( strcmp(szOrig, StringAtOfs(m_pOrigTable, nStr - 1)) == 0 )
         return StringAtOfs(m_pTransTable, nStr - 1);
 
@@ -408,8 +408,8 @@ wxLocale::wxLocale()
 }
 
 // NB: this function has (desired) side effect of changing current locale
 }
 
 // NB: this function has (desired) side effect of changing current locale
-bool wxLocale::Init(const char *szName, 
-                    const char *szShort, 
+bool wxLocale::Init(const char *szName,
+                    const char *szShort,
                     const char *szLocale,
                     bool        bLoadDefault)
 {
                     const char *szLocale,
                     bool        bLoadDefault)
 {
@@ -430,10 +430,10 @@ bool wxLocale::Init(const char *szName,
     //       this wild guess is surely wrong
     m_strShort = wxToLower(szLocale[0]) + wxToLower(szLocale[1]);
   }
     //       this wild guess is surely wrong
     m_strShort = wxToLower(szLocale[0]) + wxToLower(szLocale[1]);
   }
-  
+
   // save the old locale to be able to restore it later
   // save the old locale to be able to restore it later
-       m_pOldLocale = wxSetLocale(this);
-  
+  m_pOldLocale = wxSetLocale(this);
+
   // load the default catalog with wxWindows standard messages
   m_pMsgCat = NULL;
   bool bOk = TRUE;
   // load the default catalog with wxWindows standard messages
   m_pMsgCat = NULL;
   bool bOk = TRUE;
@@ -469,7 +469,7 @@ wxLocale::~wxLocale()
 }
 
 // get the translation of given string in current locale
 }
 
 // get the translation of given string in current locale
-const char *wxLocale::GetString(const char *szOrigString, 
+const char *wxLocale::GetString(const char *szOrigString,
                                 const char *szDomain) const
 {
   wxASSERT( szOrigString != NULL ); // would be pretty silly
                                 const char *szDomain) const
 {
   wxASSERT( szOrigString != NULL ); // would be pretty silly
@@ -479,7 +479,7 @@ const char *wxLocale::GetString(const char *szOrigString,
   wxMsgCatalog *pMsgCat;
   if ( szDomain != NULL ) {
     pMsgCat = FindCatalog(szDomain);
   wxMsgCatalog *pMsgCat;
   if ( szDomain != NULL ) {
     pMsgCat = FindCatalog(szDomain);
-    
+
     // does the catalog exist?
     if ( pMsgCat != NULL )
       pszTrans = pMsgCat->GetString(szOrigString);
     // does the catalog exist?
     if ( pMsgCat != NULL )
       pszTrans = pMsgCat->GetString(szOrigString);
@@ -505,7 +505,7 @@ const char *wxLocale::GetString(const char *szOrigString,
 #else // !debug
       wxSuppressTransErrors();
 #endif // debug/!debug
 #else // !debug
       wxSuppressTransErrors();
 #endif // debug/!debug
-      
+
       if ( szDomain != NULL )
       {
         wxLogWarning(_("string '%s' not found in domain '%s' for locale '%s'."),
       if ( szDomain != NULL )
       {
         wxLogWarning(_("string '%s' not found in domain '%s' for locale '%s'."),
@@ -533,7 +533,7 @@ wxMsgCatalog *wxLocale::FindCatalog(const char *szDomain) const
     if ( Stricmp(pMsgCat->GetName(), szDomain) == 0 )
       return pMsgCat;
   }
     if ( Stricmp(pMsgCat->GetName(), szDomain) == 0 )
       return pMsgCat;
   }
-  
+
   return NULL;
 }
 
   return NULL;
 }
 
@@ -547,19 +547,19 @@ bool wxLocale::IsLoaded(const char *szDomain) const
 bool wxLocale::AddCatalog(const char *szDomain)
 {
   wxMsgCatalog *pMsgCat = new wxMsgCatalog;
 bool wxLocale::AddCatalog(const char *szDomain)
 {
   wxMsgCatalog *pMsgCat = new wxMsgCatalog;
-  
+
   if ( pMsgCat->Load(m_strShort, szDomain) ) {
     // add it to the head of the list so that in GetString it will
     // be searched before the catalogs added earlier
     pMsgCat->m_pNext = m_pMsgCat;
     m_pMsgCat = pMsgCat;
   if ( pMsgCat->Load(m_strShort, szDomain) ) {
     // add it to the head of the list so that in GetString it will
     // be searched before the catalogs added earlier
     pMsgCat->m_pNext = m_pMsgCat;
     m_pMsgCat = pMsgCat;
-    
+
     return TRUE;
   }
   else {
     // don't add it because it couldn't be loaded anyway
     delete pMsgCat;
     return TRUE;
   }
   else {
     // don't add it because it couldn't be loaded anyway
     delete pMsgCat;
-    
+
     return FALSE;
   }
 }
     return FALSE;
   }
 }
@@ -596,12 +596,12 @@ wxLocale *g_pLocale = NULL;
 
 wxLocale *wxGetLocale()
 {
 
 wxLocale *wxGetLocale()
 {
-       return g_pLocale;
+  return g_pLocale;
 }
 
 wxLocale *wxSetLocale(wxLocale *pLocale)
 {
 }
 
 wxLocale *wxSetLocale(wxLocale *pLocale)
 {
-       wxLocale *pOld = g_pLocale;
-       g_pLocale = pLocale;
-       return pOld;
+  wxLocale *pOld = g_pLocale;
+  g_pLocale = pLocale;
+  return pOld;
 }
 }