X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a8eaaeb23796c69ea0f67cbd48fc5f667d9823d0..38511687af1f6f5500b66978b3c32d9d72ec4f88:/src/unix/baseunix.cpp diff --git a/src/unix/baseunix.cpp b/src/unix/baseunix.cpp index 630ad555a0..d77d5891bd 100644 --- a/src/unix/baseunix.cpp +++ b/src/unix/baseunix.cpp @@ -6,7 +6,7 @@ // Created: 23.06.2003 // RCS-ID: $Id$ // Copyright: (c) 2003 Vadim Zeitlin -// License: wxWindows license +// License: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -88,15 +88,28 @@ wxConsoleAppTraits::WaitForChild(wxExecuteData& execData) // this is in mac/utils.cpp under Mac #ifndef __WXMAC__ -wxToolkitInfo *wxConsoleAppTraits::GetToolkitInfo() +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; } @@ -106,7 +119,7 @@ wxToolkitInfo *wxConsoleAppTraits::GetToolkitInfo() info.name = _T("wxBase"); info.os = wxUNIX; - return &info; + return info; } #endif // __WXMAC__