git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54695
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
your code if you overrode these functions and change the functions in the
derived classes to use const reference as well.
your code if you overrode these functions and change the functions in the
derived classes to use const reference as well.
+- Under MSW wxExecute() arguments are now always properly quoted, as under
+ Unix, and so shouldn't contain quotes unless they are part of the argument.
Changes in behaviour which may result in compilation errors
-----------------------------------------------------------
Changes in behaviour which may result in compilation errors
-----------------------------------------------------------
const wxChar*. wxCStrData is implicitly convertible to both "const char *"
and "const wchar_t *", so this only presents a problem if the compiler cannot
apply the conversion. This can happen in 2 cases:
const wxChar*. wxCStrData is implicitly convertible to both "const char *"
and "const wchar_t *", so this only presents a problem if the compiler cannot
apply the conversion. This can happen in 2 cases:
+ There is an ambiguity because the function being called is overloaded to
take both "const char *" and "const wchar_t *" as the compiler can't choose
between them. In this case you may use s.wx_str() to call the function
+ There is an ambiguity because the function being called is overloaded to
take both "const char *" and "const wchar_t *" as the compiler can't choose
between them. In this case you may use s.wx_str() to call the function
use simpler OnExec() version which is called with wxString argument
- wxMenuItem::GetLabel has been deprecated in favour of wxMenuItem::GetItemLabelText
- wxMenuItem::GetText has been deprecated in favour of wxMenuItem::GetItemLabel
use simpler OnExec() version which is called with wxString argument
- wxMenuItem::GetLabel has been deprecated in favour of wxMenuItem::GetItemLabelText
- wxMenuItem::GetText has been deprecated in favour of wxMenuItem::GetItemLabel
-- wxMenuItem::GetLabelFromText has been deprecated in favour of wxMenuItem::GetLabelText
+- wxMenuItem::GetLabelFromText has been deprecated in favour of wxMenuItem::GetLabelText
- wxMenuItem::SetText has been deprecated in favour of wxMenuItem::SetItemLabel
- wxBrush's, wxPen's SetStyle() and GetStyle() as well as the wxBrush/wxPen ctor now take
respectively a wxBrushStyle and a wxPenStyle value instead of a plain "int style";
- wxMenuItem::SetText has been deprecated in favour of wxMenuItem::SetItemLabel
- wxBrush's, wxPen's SetStyle() and GetStyle() as well as the wxBrush/wxPen ctor now take
respectively a wxBrushStyle and a wxPenStyle value instead of a plain "int style";
- // escape any quotes present in the string to avoid interfering with
- // the command line parsing in the child process
- arg.Replace("\"", "\\\"", true /* replace all */);
+ bool quote;
+ if ( arg.empty() )
+ {
+ // we need to quote empty arguments, otherwise they'd just
+ // disappear
+ quote = true;
+ }
+ else // non-empty
+ {
+ // escape any quotes present in the string to avoid interfering
+ // with the command line parsing in the child process
+ arg.Replace("\"", "\\\"", true /* replace all */);
- // and quote any arguments containing the spaces to prevent them from
- // being broken down
- if ( arg.find_first_of(" \t") == wxString::npos )
- command += arg;
- else
+ // and quote any arguments containing the spaces to prevent them from
+ // being broken down
+ quote = arg.find_first_of(" \t") != wxString::npos;
+ }
+
+ if ( quote )
command += '\"' + arg + '\"';
command += '\"' + arg + '\"';