X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a8eaaeb23796c69ea0f67cbd48fc5f667d9823d0..cad61c3e8f976515852eb65b10587e08e0282445:/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 <vadim@wxwindows.org>
-// 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__