X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7e86b10b7bced8fd5640e6db75e3232a65146496..0770c0a05faf7a863af7d8e7fd203401265d0fac:/src/unix/utilsunx.cpp?ds=inline diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp index a5c3221bb2..18bea9bdef 100644 --- a/src/unix/utilsunx.cpp +++ b/src/unix/utilsunx.cpp @@ -202,7 +202,7 @@ void wxMicroSleep(unsigned long microseconds) tmReq.tv_nsec = (microseconds % 1000000) * 1000; // we're not interested in remaining time nor in return value - (void)nanosleep(&tmReq, (timespec *)NULL); + (void)nanosleep(&tmReq, NULL); #elif defined(HAVE_USLEEP) // uncomment this if you feel brave or if you are sure that your version // of Solaris has a safe usleep() function but please notice that usleep() @@ -255,7 +255,7 @@ int wxKill(long pid, wxSignal sig, wxKillError *rc, int flags) default: // this goes against Unix98 docs so log it - wxLogDebug(_T("unexpected kill(2) return value %d"), err); + wxLogDebug(wxT("unexpected kill(2) return value %d"), err); // something else... *rc = wxKILL_ERROR; @@ -274,11 +274,11 @@ bool wxShutdown(int flags) switch ( flags ) { case wxSHUTDOWN_POWEROFF: - level = _T('0'); + level = wxT('0'); break; case wxSHUTDOWN_REBOOT: - level = _T('6'); + level = wxT('6'); break; case wxSHUTDOWN_LOGOFF: @@ -286,7 +286,7 @@ bool wxShutdown(int flags) return false; default: - wxFAIL_MSG( _T("unknown wxShutdown() flag") ); + wxFAIL_MSG( wxT("unknown wxShutdown() flag") ); return false; } @@ -326,7 +326,7 @@ bool wxPipeInputStream::CanRead() const return false; default: - wxFAIL_MSG(_T("unexpected select() return value")); + wxFAIL_MSG(wxT("unexpected select() return value")); // still fall through case 1: @@ -349,12 +349,12 @@ static wxString wxMakeShellCommand(const wxString& command) if ( !command ) { // just an interactive shell - cmd = _T("xterm"); + cmd = wxT("xterm"); } else { // execute command in a shell - cmd << _T("/bin/sh -c '") << command << _T('\''); + cmd << wxT("/bin/sh -c '") << command << wxT('\''); } return cmd; @@ -367,7 +367,7 @@ bool wxShell(const wxString& command) bool wxShell(const wxString& command, wxArrayString& output) { - wxCHECK_MSG( !command.empty(), false, _T("can't exec shell non interactively") ); + wxCHECK_MSG( !command.empty(), false, wxT("can't exec shell non interactively") ); return wxExecute(wxMakeShellCommand(command), output); } @@ -429,7 +429,7 @@ private: int m_argc; char **m_argv; - DECLARE_NO_COPY_CLASS(ArgsArray) + wxDECLARE_NO_COPY_CLASS(ArgsArray); }; } // anonymous namespace @@ -480,7 +480,7 @@ long wxExecute(char **argv, int flags, wxProcess *process) // don't know what yet, so for now just warn the user (this is the least we // can do) about it wxASSERT_MSG( wxThread::IsMain(), - _T("wxExecute() can be called only from the main thread") ); + wxT("wxExecute() can be called only from the main thread") ); #endif // wxUSE_THREADS #if defined(__WXCOCOA__) || ( defined(__WXOSX_MAC__) && wxOSX_USE_COCOA_OR_CARBON ) @@ -601,6 +601,8 @@ long wxExecute(char **argv, int flags, wxProcess *process) { // save it for WaitForChild() use execData.pid = pid; + if (execData.process) + execData.process->SetPid(pid); // and also in the wxProcess // prepare for IO redirection @@ -720,7 +722,7 @@ static wxString wxGetCommandOutput(const wxString &cmd) FILE *f = popen(cmd.ToAscii(), "r"); if ( !f ) { - wxLogSysError(_T("Executing \"%s\" failed"), cmd.c_str()); + wxLogSysError(wxT("Executing \"%s\" failed"), cmd.c_str()); return wxEmptyString; } @@ -736,7 +738,7 @@ static wxString wxGetCommandOutput(const wxString &cmd) pclose(f); - if ( !s.empty() && s.Last() == _T('\n') ) + if ( !s.empty() && s.Last() == wxT('\n') ) s.RemoveLast(); return s; @@ -871,6 +873,25 @@ bool wxIsPlatform64Bit() machine.Contains(wxT("alpha")); } +#ifdef __LINUX__ +wxLinuxDistributionInfo wxGetLinuxDistributionInfo() +{ + const wxString id = wxGetCommandOutput(wxT("lsb_release --id")); + const wxString desc = wxGetCommandOutput(wxT("lsb_release --description")); + const wxString rel = wxGetCommandOutput(wxT("lsb_release --release")); + const wxString codename = wxGetCommandOutput(wxT("lsb_release --codename")); + + wxLinuxDistributionInfo ret; + + id.StartsWith("Distributor ID:\t", &ret.Id); + desc.StartsWith("Description:\t", &ret.Description); + rel.StartsWith("Release:\t", &ret.Release); + codename.StartsWith("Codename:\t", &ret.CodeName); + + return ret; +} +#endif + // these functions are in src/osx/utilsexc_base.cpp for wxMac #ifndef __WXMAC__ @@ -1074,7 +1095,7 @@ static bool wxDoSetEnv(const wxString& variable, const char *value) #elif defined(HAVE_PUTENV) wxString s = variable; if ( value ) - s << _T('=') << value; + s << wxT('=') << value; // transform to ANSI const wxWX2MBbuf p = s.mb_str(); @@ -1157,7 +1178,7 @@ bool wxHandleFatalExceptions(bool doit) ok &= sigaction(SIGSEGV, &act, &s_handlerSEGV) == 0; if ( !ok ) { - wxLogDebug(_T("Failed to install our signal handler.")); + wxLogDebug(wxT("Failed to install our signal handler.")); } s_savedHandlers = true; @@ -1171,7 +1192,7 @@ bool wxHandleFatalExceptions(bool doit) ok &= sigaction(SIGSEGV, &s_handlerSEGV, NULL) == 0; if ( !ok ) { - wxLogDebug(_T("Failed to uninstall our signal handler.")); + wxLogDebug(wxT("Failed to uninstall our signal handler.")); } s_savedHandlers = false; @@ -1263,7 +1284,7 @@ public: protected: const int m_fd; - DECLARE_NO_COPY_CLASS(wxReadFDIOHandler) + wxDECLARE_NO_COPY_CLASS(wxReadFDIOHandler); }; // class for monitoring our end of the process detection pipe, simply sets a @@ -1284,7 +1305,7 @@ public: private: bool m_terminated; - DECLARE_NO_COPY_CLASS(wxEndHandler) + wxDECLARE_NO_COPY_CLASS(wxEndHandler); }; #if HAS_PIPE_INPUT_STREAM @@ -1313,7 +1334,7 @@ public: private: wxStreamTempInputBuffer * const m_buf; - DECLARE_NO_COPY_CLASS(wxRedirectedIOHandler) + wxDECLARE_NO_COPY_CLASS(wxRedirectedIOHandler); }; #endif // HAS_PIPE_INPUT_STREAM