]> git.saurik.com Git - wxWidgets.git/commitdiff
make wxSetEnv compatible with ANSI and Unicode, deprecate passing NULL to it in favou...
authorVáclav Slavík <vslavik@fastmail.fm>
Tue, 19 Jun 2007 20:02:49 +0000 (20:02 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Tue, 19 Jun 2007 20:02:49 +0000 (20:02 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/function.tex
include/wx/utils.h
src/mac/carbon/utils.cpp
src/msdos/utilsdos.cpp
src/msw/utils.cpp
src/os2/utils.cpp
src/palmos/utils.cpp
src/unix/utilsunx.cpp

index 6560fad01ac6b91a7a96129e1c78a1e7026452a7..b8e866eb9f652f90f33bb8418a66aabc3b65aba6 100644 (file)
@@ -4686,13 +4686,17 @@ Returns \true if the variable exists, \false otherwise.
 
 \membersection{wxSetEnv}\label{wxsetenv}
 
-\func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxChar *}{value}}
+\func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxString\& }{value}}
 
 Sets the value of the environment variable {\it var} (adding it if necessary)
 to {\it value}.
 
 Returns \true on success.
 
+\wxheading{See also}
+
+\helpref{wxUnsetEnv}{wxunsetenv}
+
 
 \membersection{wxUnsetEnv}\label{wxunsetenv}
 
@@ -4703,3 +4707,7 @@ Removes the variable {\it var} from the environment.
 function.
 
 Returns \true on success.
+
+\wxheading{See also}
+
+\helpref{wxSetEnv}{wxsetenv}
index 43c6a3c11a06d0b4889d14beae1c7f3521c05cc8..a50c70ad8abcf334b7ed075fbf698fa9ea21407e 100644 (file)
@@ -457,10 +457,30 @@ WXDLLIMPEXP_BASE bool wxHandleFatalExceptions(bool doit = true);
 WXDLLIMPEXP_BASE bool wxGetEnv(const wxString& var, wxString *value);
 
 // set the env var name to the given value, return true on success
-WXDLLIMPEXP_BASE bool wxSetEnv(const wxString& var, const wxChar *value);
+WXDLLIMPEXP_BASE bool wxSetEnv(const wxString& var, const wxString& value);
 
 // remove the env var from environment
-inline bool wxUnsetEnv(const wxString& var) { return wxSetEnv(var, NULL); }
+WXDLLIMPEXP_BASE bool wxUnsetEnv(const wxString& var);
+
+#if WXWIN_COMPATIBILITY_2_8
+inline bool wxSetEnv(const wxString& var, const char *value)
+    { return wxSetEnv(var, wxString(value)); }
+inline bool wxSetEnv(const wxString& var, const wchar_t *value)
+    { return wxSetEnv(var, wxString(value)); }
+template<typename T>
+inline bool wxSetEnv(const wxString& var, const wxCharTypeBuffer<T>& value)
+    { return wxSetEnv(var, wxString(value)); }
+inline bool wxSetEnv(const wxString& var, const wxCStrData& value)
+    { return wxSetEnv(var, wxString(value)); }
+
+// this one is for passing NULL directly - don't use it, use wxUnsetEnv instead
+wxDEPRECATED( inline bool wxSetEnv(const wxString& var, int value) );
+inline bool wxSetEnv(const wxString& var, int value)
+{
+    wxASSERT_MSG( value == 0, "using non-NULL integer as string?" );
+    return wxUnsetEnv(var);
+}
+#endif // WXWIN_COMPATIBILITY_2_8
 
 // ----------------------------------------------------------------------------
 // Network and username functions.
index edf0c4a45cbf4aa6f8637b9501a6242a10c86fbe..9afe0b6d5b7ccbc762b6abae2e6160780d6e7a75 100644 (file)
@@ -306,7 +306,13 @@ WXDLLEXPORT bool wxGetEnv(const wxString& var, wxString *value)
 }
 
 // set the env var name to the given value, return true on success
-WXDLLEXPORT bool wxSetEnv(const wxString& var, const wxChar *value)
+WXDLLEXPORT bool wxSetEnv(const wxString& var, const wxString& value)
+{
+    // TODO : under classic there is no environement support, under X yes
+    return false;
+}
+
+WXDLLEXPORT bool wxUnsetEnv(const wxString& var)
 {
     // TODO : under classic there is no environement support, under X yes
     return false;
index 3b9328c561ac7128de61b402a23aedefaa62e195..6f432f4f89f0063da418a9cd9b4f5a76cc11768e 100644 (file)
@@ -96,7 +96,7 @@ bool wxGetEnv(const wxString& var, wxString *value)
     return true;
 }
 
-bool wxSetEnv(const wxString& variable, const wxChar *value)
+static bool wxDoSetEnv(const wxString& variable, const char *value)
 {
     wxString s = variable;
     if ( value )
@@ -112,6 +112,17 @@ bool wxSetEnv(const wxString& variable, const wxChar *value)
     return putenv(buf) == 0;
 }
 
+bool wxSetEnv(const wxString& variable, const wxString& value)
+{
+    return wxDoSetEnv(variable, value.mb_str());
+}
+
+bool wxUnsetEnv(const wxString& variable)
+{
+    return wxDoSetEnv(variable, NULL);
+}
+
+
 //----------------------------------------------------------------------------
 // Hostname, username, home directory
 //----------------------------------------------------------------------------
index 14bfb8e2b4f3a871d2a6d382ba39699ca1a8bbff..df8a474ea7d503a784c5ecca785095dc76aa77f7 100644 (file)
@@ -625,8 +625,8 @@ bool wxGetEnv(const wxString& WXUNUSED_IN_WINCE(var),
 #endif // WinCE/32
 }
 
-bool wxSetEnv(const wxString& WXUNUSED_IN_WINCE(var),
-              const wxChar *WXUNUSED_IN_WINCE(value))
+bool wxDoSetEnv(const wxString& WXUNUSED_IN_WINCE(var),
+                const wxChar *WXUNUSED_IN_WINCE(value))
 {
     // some compilers have putenv() or _putenv() or _wputenv() but it's better
     // to always use Win32 function directly instead of dealing with them
@@ -634,7 +634,7 @@ bool wxSetEnv(const wxString& WXUNUSED_IN_WINCE(var),
     // no environment variables under CE
     return false;
 #else
-    if ( !::SetEnvironmentVariable(var, value) )
+    if ( !::SetEnvironmentVariable(var.wx_str(), value) )
     {
         wxLogLastError(_T("SetEnvironmentVariable"));
 
@@ -645,6 +645,16 @@ bool wxSetEnv(const wxString& WXUNUSED_IN_WINCE(var),
 #endif
 }
 
+bool wxSetEnv(const wxString& variable, const wxString& value)
+{
+    return wxDoSetEnv(variable, value.wx_str());
+}
+
+bool wxUnsetEnv(const wxString& variable)
+{
+    return wxDoSetEnv(variable, NULL);
+}
+
 // ----------------------------------------------------------------------------
 // process management
 // ----------------------------------------------------------------------------
index 5576bc9b82d55bbcb550e86522d83bb5cab2a0f5..00aafc22cbaf723fac0dab4eeb6d058ee0709af4 100644 (file)
@@ -238,11 +238,10 @@ bool wxGetEnv(const wxString& var, wxString *value)
     return true;
 }
 
-bool wxSetEnv(const wxString& variable, const wxChar *value)
+bool wxSetEnv(const wxString& variable, const char *value)
 {
 #if defined(HAVE_SETENV)
-    return setenv(variable.mb_str(), value ? wxString(value).mb_str().data()
-                                           : NULL, 1 /* overwrite */) == 0;
+    return setenv(variable.mb_str(), value, 1 /* overwrite */) == 0;
 #elif defined(HAVE_PUTENV)
     wxString s = variable;
     if ( value )
@@ -263,6 +262,16 @@ bool wxSetEnv(const wxString& variable, const wxChar *value)
 #endif
 }
 
+bool wxSetEnv(const wxString& variable, const wxString& value)
+{
+    return wxDoSetEnv(variable, value.mb_str());
+}
+
+bool wxUnsetEnv(const wxString& variable)
+{
+    return wxDoSetEnv(variable, NULL);
+}
+
 void wxMilliSleep(
   unsigned long                     ulMilliseconds
 )
index f9f5806ec856ab36d5dbebe33ff21e514bfad3d7..c8d8d849088c24b76fea28d52e80ba403c581343 100644 (file)
@@ -127,6 +127,11 @@ bool wxSetEnv(const wxString& var, const wxChar *value)
     return false;
 }
 
+bool wxUnsetEnv(const wxString& var)
+{
+    return false;
+}
+
 // ----------------------------------------------------------------------------
 // process management
 // ----------------------------------------------------------------------------
index 25b1558c73500c7add00c24ef3a00f8a3c017bbb..88e0e5101f82f58a7b1387532024c2f85c14a293 100644 (file)
@@ -1064,13 +1064,10 @@ bool wxGetEnv(const wxString& var, wxString *value)
     return true;
 }
 
-bool wxSetEnv(const wxString& variable, const wxChar *value)
+static bool wxDoSetEnv(const wxString& variable, const char *value)
 {
 #if defined(HAVE_SETENV)
-    return setenv(variable.mb_str(),
-                  value ? (const char *)wxString(value).mb_str()
-                        : NULL,
-                  1 /* overwrite */) == 0;
+    return setenv(variable.mb_str(), value, 1 /* overwrite */) == 0;
 #elif defined(HAVE_PUTENV)
     wxString s = variable;
     if ( value )
@@ -1089,6 +1086,16 @@ bool wxSetEnv(const wxString& variable, const wxChar *value)
 #endif
 }
 
+bool wxSetEnv(const wxString& variable, const wxString& value)
+{
+    return wxDoSetEnv(variable, value.mb_str());
+}
+
+bool wxUnsetEnv(const wxString& variable)
+{
+    return wxDoSetEnv(variable, NULL);
+}
+
 // ----------------------------------------------------------------------------
 // signal handling
 // ----------------------------------------------------------------------------