From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Wed, 20 Oct 2004 00:34:32 +0000 (+0000)
Subject: moved AppendAppName() from MSW to common code; modified it to not double the trailing... 
X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ce336c6d76d8c513487af08857c1cd3cbe806d30

moved AppendAppName() from MSW to common code; modified it to not double the trailing slash, if any


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

diff --git a/include/wx/msw/stdpaths.h b/include/wx/msw/stdpaths.h
index c1e9bb3f3c..e89e80b227 100644
--- a/include/wx/msw/stdpaths.h
+++ b/include/wx/msw/stdpaths.h
@@ -28,9 +28,6 @@ public:
     virtual wxString GetPluginsDir() const;
 
 protected:
-    // append "/appname" suffix if the app name is set
-    static wxString AppendAppName(const wxString& dir);
-
     // get the path corresponding to the given standard CSIDL_XXX constant
     static wxString DoGetDirectory(int csidl);
 };
diff --git a/include/wx/stdpaths.h b/include/wx/stdpaths.h
index c69f4435f6..e96bfcd681 100644
--- a/include/wx/stdpaths.h
+++ b/include/wx/stdpaths.h
@@ -75,6 +75,11 @@ public:
 
     // virtual dtor for the base class
     virtual ~wxStandardPathsBase();
+
+protected:
+    // append "/appname" suffix if the app name is set (doesn't append the
+    // slash if dir already ends with a slash or dot)
+    static wxString AppendAppName(const wxString& dir);
 };
 
 #if defined(__WXMSW__)
diff --git a/src/common/stdpbase.cpp b/src/common/stdpbase.cpp
index 4d477a2974..58e9e4ebba 100644
--- a/src/common/stdpbase.cpp
+++ b/src/common/stdpbase.cpp
@@ -24,6 +24,11 @@
     #pragma hdrstop
 #endif
 
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+#endif //WX_PRECOMP
+
+#include "wx/filename.h"
 #include "wx/stdpaths.h"
 
 // ----------------------------------------------------------------------------
@@ -57,3 +62,25 @@ wxString wxStandardPathsBase::GetUserLocalDataDir() const
     return GetUserDataDir();
 }
 
+/* static */
+wxString wxStandardPathsBase::AppendAppName(const wxString& dir)
+{
+    wxString subdir(dir);
+
+    // empty string indicates that an error has occured, don't touch it then
+    if ( !subdir.empty() )
+    {
+        const wxString appname = wxTheApp->GetAppName();
+        if ( !appname.empty() )
+        {
+            const wxChar ch = *(subdir.end() - 1);
+            if ( !wxFileName::IsPathSeparator(ch) && ch != _T('.') )
+                subdir += wxFileName::GetPathSeparator();
+
+            subdir += appname;
+        }
+    }
+
+    return subdir;
+}
+
diff --git a/src/msw/stdpaths.cpp b/src/msw/stdpaths.cpp
index dcce507ce3..dcb164a576 100644
--- a/src/msw/stdpaths.cpp
+++ b/src/msw/stdpaths.cpp
@@ -216,22 +216,6 @@ wxString wxStandardPaths::DoGetDirectory(int csidl)
     return dir;
 }
 
-/* static */
-wxString wxStandardPaths::AppendAppName(const wxString& dir)
-{
-    wxString subdir(dir);
-
-    // empty string indicates that an error has occured, don't touch it then
-    if ( !subdir.empty() )
-    {
-        const wxString appname = wxTheApp->GetAppName();
-        if ( !appname.empty() )
-            subdir << _T('\\') << appname;
-    }
-
-    return subdir;
-}
-
 // ----------------------------------------------------------------------------
 // public functions
 // ----------------------------------------------------------------------------