X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..258b2ca6819988c73a953bb8c2760b91c78d520c:/src/unix/baseunix.cpp diff --git a/src/unix/baseunix.cpp b/src/unix/baseunix.cpp index 0b03067e58..de2ee2f156 100644 --- a/src/unix/baseunix.cpp +++ b/src/unix/baseunix.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: unix/baseunix.cpp +// Name: src/unix/baseunix.cpp // Purpose: misc stuff only used in console applications under Unix // Author: Vadim Zeitlin // Modified by: @@ -27,10 +27,10 @@ #ifndef WX_PRECOMP #include "wx/log.h" #include "wx/intl.h" + #include "wx/utils.h" #endif //WX_PRECOMP #include "wx/apptrait.h" -#include "wx/utils.h" #include "wx/unix/execute.h" // for waitpid() @@ -86,17 +86,30 @@ wxConsoleAppTraits::WaitForChild(wxExecuteData& execData) // ---------------------------------------------------------------------------- // this is in mac/utils.cpp under Mac -#ifndef __WXMAC__ +#if !defined(__WXMAC__) wxToolkitInfo& wxConsoleAppTraits::GetToolkitInfo() { static wxToolkitInfo info; int major, minor; - char name[256]; - if ( sscanf(WXWIN_OS_DESCRIPTION, "%255s %d.%d", name, &major, &minor) != 3 ) + FILE *f = popen("uname -r", "r"); + if (f) { - // unreckognized uname string format + char buf[32]; + size_t c = fread(buf, 1, sizeof(buf) - 1, f); + pclose(f); + buf[c] = '\0'; + if ( sscanf(buf, "%d.%d", &major, &minor) != 2 ) + { + // unrecognized uname string format + major = + minor = -1; + } + } + else + { + // failed to run uname major = minor = -1; } @@ -110,4 +123,3 @@ wxToolkitInfo& wxConsoleAppTraits::GetToolkitInfo() } #endif // __WXMAC__ -