vcl/unx/generic/app/geninst.cxx |   24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

New commits:
commit b883dd8a32b1b58910272ec4791aeb241914932e
Author:     Gleb Popov <6year...@gmail.com>
AuthorDate: Thu Oct 22 19:33:41 2020 +0400
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Fri Oct 23 02:09:17 2020 +0200

    Implement SalGenericInstance::getOSVersion() for FreeBSD.
    
    Change-Id: I01f565bdfc3c46a94485a62cd0f249ce2002fe21
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104689
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    Tested-by: Jenkins

diff --git a/vcl/unx/generic/app/geninst.cxx b/vcl/unx/generic/app/geninst.cxx
index b6611631b50d..c385ab57d587 100644
--- a/vcl/unx/generic/app/geninst.cxx
+++ b/vcl/unx/generic/app/geninst.cxx
@@ -22,6 +22,9 @@
 #if defined(LINUX)
 #  include <stdio.h>
 #endif
+#if defined(__FreeBSD__)
+#  include <sys/utsname.h>
+#endif
 
 #include <config_features.h>
 #if HAVE_FEATURE_OPENGL
@@ -50,7 +53,6 @@ OUString SalGenericInstance::getOSVersion()
 {
     OUString aKernelVer = "unknown";
 
-// not so generic, but at least shared between all unix backend
 #if defined(LINUX)
     FILE* pVersion = fopen( "/proc/version", "r" );
     if ( pVersion )
@@ -70,8 +72,26 @@ OUString SalGenericInstance::getOSVersion()
         }
         fclose( pVersion );
     }
-#endif
     return aKernelVer;
+#elif defined(__FreeBSD__)
+    struct utsname stName;
+    if ( uname( &stName ) != 0 )
+        return aKernelVer;
+
+    sal_Int32 nDots = 0;
+    sal_Int32 nIndex = 0;
+    aKernelVer = OUString::createFromAscii( stName.release );
+    while ( nIndex++ < aKernelVer.getLength() )
+    {
+        const char c = stName.release[ nIndex ];
+        if ( c == ' ' || c == '-' || ( c == '.' && nDots++ > 0 ) )
+            break;
+    }
+    return OUString::createFromAscii( stName.sysname ) + " " +
+        aKernelVer.copy( 0, nIndex );
+#else
+    return aKernelVer;
+#endif
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to