Fixes for passing non-PODs via '...'
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -416,28 +416,28 @@ void MyConnection::Log(const wxString& command, const wxString& topic,
 | 
			
		||||
{
 | 
			
		||||
    wxString s;
 | 
			
		||||
    if (topic.IsEmpty() && item.IsEmpty())
 | 
			
		||||
        s.Printf(_T("%s("), command);
 | 
			
		||||
        s.Printf(_T("%s("), command.c_str());
 | 
			
		||||
    else if (topic.IsEmpty())
 | 
			
		||||
        s.Printf(_T("%s(item=\"%s\","), command, item);
 | 
			
		||||
        s.Printf(_T("%s(item=\"%s\","), command.c_str(), item.c_str());
 | 
			
		||||
    else if (item.IsEmpty())
 | 
			
		||||
        s.Printf(_T("%s(topic=\"%s\","), command, topic);
 | 
			
		||||
        s.Printf(_T("%s(topic=\"%s\","), command.c_str(), topic.c_str());
 | 
			
		||||
    else
 | 
			
		||||
        s.Printf(_T("%s(topic=\"%s\",item=\"%s\","), command, topic, item);
 | 
			
		||||
        s.Printf(_T("%s(topic=\"%s\",item=\"%s\","), command.c_str(), topic.c_str(), item.c_str());
 | 
			
		||||
 | 
			
		||||
    if (format == wxIPC_TEXT || format == wxIPC_UNICODETEXT) 
 | 
			
		||||
        wxLogMessage(_T("%s\"%s\",%d)"), s, data, size);
 | 
			
		||||
        wxLogMessage(_T("%s\"%s\",%d)"), s.c_str(), data, size);
 | 
			
		||||
    else if (format == wxIPC_PRIVATE)
 | 
			
		||||
    {
 | 
			
		||||
        if (size == 3)
 | 
			
		||||
        {
 | 
			
		||||
            char *bytes = (char *)data;
 | 
			
		||||
            wxLogMessage(_T("%s'%c%c%c',%d)"), s, bytes[0], bytes[1], bytes[2], size);
 | 
			
		||||
            wxLogMessage(_T("%s'%c%c%c',%d)"), s.c_str(), bytes[0], bytes[1], bytes[2], size);
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
            wxLogMessage(_T("%s...,%d)"), s, size);
 | 
			
		||||
            wxLogMessage(_T("%s...,%d)"), s.c_str(), size);
 | 
			
		||||
    }
 | 
			
		||||
    else if (format == wxIPC_INVALID) 
 | 
			
		||||
        wxLogMessage(_T("%s[invalid data],%d)"), s, size);
 | 
			
		||||
        wxLogMessage(_T("%s[invalid data],%d)"), s.c_str(), size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool MyConnection::OnAdvise(const wxString& topic, const wxString& item, wxChar *data,
 | 
			
		||||
 
 | 
			
		||||
@@ -252,7 +252,7 @@ MyServer::~MyServer()
 | 
			
		||||
 | 
			
		||||
wxConnectionBase *MyServer::OnAcceptConnection(const wxString& topic)
 | 
			
		||||
{
 | 
			
		||||
    wxLogMessage(_T("OnAcceptConnection(\"%s\")"), topic);
 | 
			
		||||
    wxLogMessage(_T("OnAcceptConnection(\"%s\")"), topic.c_str());
 | 
			
		||||
 | 
			
		||||
    if ( topic == IPC_TOPIC )
 | 
			
		||||
    {
 | 
			
		||||
@@ -358,7 +358,7 @@ wxChar *MyConnection::OnRequest(const wxString& topic,
 | 
			
		||||
bool MyConnection::OnStartAdvise(const wxString& topic,
 | 
			
		||||
                                 const wxString& item)
 | 
			
		||||
{
 | 
			
		||||
    wxLogMessage(_T("OnStartAdvise(\"%s\",\"%s\")"), topic, item);
 | 
			
		||||
    wxLogMessage(_T("OnStartAdvise(\"%s\",\"%s\")"), topic.c_str(), item.c_str());
 | 
			
		||||
    wxLogMessage(_T("Returning true"));
 | 
			
		||||
    m_sAdvise = item;
 | 
			
		||||
    wxGetApp().GetFrame()->Enable();
 | 
			
		||||
@@ -368,7 +368,7 @@ bool MyConnection::OnStartAdvise(const wxString& topic,
 | 
			
		||||
bool MyConnection::OnStopAdvise(const wxString& topic,
 | 
			
		||||
                                 const wxString& item)
 | 
			
		||||
{
 | 
			
		||||
    wxLogMessage(_T("OnStopAdvise(\"%s\",\"%s\")"), topic, item);
 | 
			
		||||
    wxLogMessage(_T("OnStopAdvise(\"%s\",\"%s\")"), topic.c_str(), item.c_str());
 | 
			
		||||
    wxLogMessage(_T("Returning true"));
 | 
			
		||||
    m_sAdvise.Empty();
 | 
			
		||||
    wxGetApp().GetFrame()->Enable();
 | 
			
		||||
@@ -380,28 +380,28 @@ void MyConnection::Log(const wxString& command, const wxString& topic,
 | 
			
		||||
{
 | 
			
		||||
    wxString s;
 | 
			
		||||
    if (topic.IsEmpty() && item.IsEmpty())
 | 
			
		||||
        s.Printf(_T("%s("), command);
 | 
			
		||||
        s.Printf(_T("%s("), command.c_str());
 | 
			
		||||
    else if (topic.IsEmpty())
 | 
			
		||||
        s.Printf(_T("%s(\"%s\","), command, item);
 | 
			
		||||
        s.Printf(_T("%s(\"%s\","), command.c_str(), item.c_str());
 | 
			
		||||
    else if (item.IsEmpty())
 | 
			
		||||
        s.Printf(_T("%s(\"%s\","), command, topic);
 | 
			
		||||
        s.Printf(_T("%s(\"%s\","), command.c_str(), topic.c_str());
 | 
			
		||||
    else
 | 
			
		||||
        s.Printf(_T("%s(\"%s\",\"%s\","), command, topic, item);
 | 
			
		||||
        s.Printf(_T("%s(\"%s\",\"%s\","), command.c_str(), topic.c_str(), item.c_str());
 | 
			
		||||
 | 
			
		||||
    if (format == wxIPC_TEXT || format == wxIPC_UNICODETEXT) 
 | 
			
		||||
        wxLogMessage(_T("%s\"%s\",%d)"), s, data, size);
 | 
			
		||||
        wxLogMessage(_T("%s\"%s\",%d)"), s.c_str(), data, size);
 | 
			
		||||
    else if (format == wxIPC_PRIVATE)
 | 
			
		||||
    {
 | 
			
		||||
        if (size == 3)
 | 
			
		||||
        {
 | 
			
		||||
            char *bytes = (char *)data;
 | 
			
		||||
            wxLogMessage(_T("%s'%c%c%c',%d)"), s, bytes[0], bytes[1], bytes[2], size);
 | 
			
		||||
            wxLogMessage(_T("%s'%c%c%c',%d)"), s.c_str(), bytes[0], bytes[1], bytes[2], size);
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
            wxLogMessage(_T("%s...,%d)"), s, size);
 | 
			
		||||
            wxLogMessage(_T("%s...,%d)"), s.c_str(), size);
 | 
			
		||||
    }
 | 
			
		||||
    else if (format == wxIPC_INVALID) 
 | 
			
		||||
        wxLogMessage(_T("%s[invalid data],%d)"), s, size);
 | 
			
		||||
        wxLogMessage(_T("%s[invalid data],%d)"), s.c_str(), size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool MyConnection::Advise(const wxString& item, wxChar *data, int size, wxIPCFormat format)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user