merged 2.2 branch

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Bryan Petty
2000-07-15 19:51:35 +00:00
parent 8a693e6e04
commit f6bcfd974e
1835 changed files with 237729 additions and 67990 deletions

View File

@@ -513,8 +513,8 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label)
else
#endif // 0
{
wxLogDebug(wxT("Unrecognized accel key '%s', accel "
"string ignored."), current.c_str());
wxLogDebug(wxT("Unrecognized accel key '%s', accel string ignored."),
current.c_str());
}
}
}
@@ -1025,7 +1025,7 @@ wxWindowDisabler::~wxWindowDisabler()
{
if ( !::SetForegroundWindow(GetHwndOf(m_winTop)) )
{
wxLogLastError("SetForegroundWindow");
wxLogLastError(wxT("SetForegroundWindow"));
}
}
#else
@@ -1208,31 +1208,89 @@ wxString wxGetCurrentDir()
// wxExecute
// ----------------------------------------------------------------------------
long wxExecute(const wxString& command, wxArrayString& output)
// this is a private function because it hasn't a clean interface: the first
// array is passed by reference, the second by pointer - instead we have 2
// public versions of wxExecute() below
static long wxDoExecuteWithCapture(const wxString& command,
wxArrayString& output,
wxArrayString* error)
{
#ifdef __WIN16__
wxFAIL_MSG("Sorry, this version of wxExecute not implemented on WIN16.");
return 0;
#else
#else // !Win16
// create a wxProcess which will capture the output
wxProcess *process = new wxProcess;
process->Redirect();
long rc = wxExecute(command, TRUE /* sync */, process);
#if wxUSE_STREAMS
if ( rc != -1 )
{
wxInputStream& is = *process->GetInputStream();
wxTextInputStream tis(is);
while ( !is.Eof() && is.IsOk() )
{
wxString line = tis.ReadLine();
if ( is.LastError() )
break;
wxInputStream* is = process->GetInputStream();
wxCHECK_MSG( is, -1, _T("if wxExecute() succeded, stream can't be NULL") );
wxTextInputStream tis(*is);
output.Add(line);
wxTextInputStream *tes = NULL;
wxInputStream *es = NULL;
if ( error )
{
es = process->GetErrorStream();
wxCHECK_MSG( es, -1, _T("stderr can't be NULL") );
tes = new wxTextInputStream(*es);
}
bool cont;
do
{
cont = FALSE;
if ( !is->Eof() && is->IsOk() )
{
wxString line = tis.ReadLine();
if ( is->LastError() )
break;
cont = TRUE;
output.Add(line);
}
if ( error && !es->Eof() && es->IsOk() )
{
wxString line = tes->ReadLine();
if ( es->LastError() )
break;
cont = TRUE;
error->Add(line);
}
}
while ( cont );
delete tes;
}
#endif // wxUSE_STREAMS
delete process;
return rc;
#endif
#endif // IO redirection supoprted
}
long wxExecute(const wxString& command, wxArrayString& output)
{
return wxDoExecuteWithCapture(command, output, NULL);
}
long wxExecute(const wxString& command,
wxArrayString& output,
wxArrayString& error)
{
return wxDoExecuteWithCapture(command, output, &error);
}