// process management
// ----------------------------------------------------------------------------
-int wxKill(long pid, wxSignal sig, wxKillError *rc)
+int wxKill(long pid, wxSignal sig, wxKillError *rc, int flags)
{
- int err = kill((pid_t)pid, (int)sig);
+ int err = kill((pid_t) (flags & wxKILL_CHILDREN) ? -pid : pid, (int)sig);
+ if ( !err )
+ *rc = wxKILL_OK;
+ else
if ( rc )
{
switch ( errno )
wxString wxGetOsDescription()
{
-#ifndef WXWIN_OS_DESCRIPTION
- #error WXWIN_OS_DESCRIPTION should be defined in config.h by configure
-#else
- return wxString::FromAscii( WXWIN_OS_DESCRIPTION );
-#endif
+ FILE *f = popen("uname -s -r -m", "r");
+ if (f)
+ {
+ char buf[256];
+ size_t c = fread(buf, 1, sizeof(buf) - 1, f);
+ pclose(f);
+ // Trim newline from output.
+ if (c && buf[c - 1] == '\n')
+ --c;
+ buf[c] = '\0';
+ return wxString::FromAscii( buf );
+ }
+ wxFAIL_MSG( _T("uname failed") );
+ return _T("");
}
#endif // !__WXMAC__