]> granicus.if.org Git - procps-ng/commitdiff
p/version.c: osrelease for Cygwin
authorCraig Small <csmall@dropbear.xyz>
Mon, 11 Apr 2022 07:30:25 +0000 (17:30 +1000)
committerCraig Small <csmall@dropbear.xyz>
Mon, 11 Apr 2022 07:30:25 +0000 (17:30 +1000)
On Cygwin systems use a different file and format to get the
OS version.

Thanks to procps Cygwin maintainer Achim!

Signed-off-by: Craig Small <csmall@dropbear.xyz>
proc/version.c

index ee865a1462d0b556f72b383c957ebc9f122f9d19..e4df18bb57f760bb3960ecbeb405909b0d24b351 100644 (file)
 #include "misc.h"
 #include "procps-private.h"
 
+#ifdef __CYGWIN__
+#define PROCFS_OSRELEASE "/proc/version"
+#define PROCFS_OSPATTERN "%*s version %u.%u.%u"
+#else
 #define PROCFS_OSRELEASE "/proc/sys/kernel/osrelease"
+#define PROCFS_OSPATTERN "%u.%u.%u"
+#endif
 
 /*
  * procps_linux_version
@@ -55,7 +61,7 @@ PROCPS_EXPORT int procps_linux_version(void)
        return -EIO;
     }
     fclose(fp);
-    version_string_depth = sscanf(buf, "%u.%u.%u", &x, &y, &z);
+    version_string_depth = sscanf(buf, PROCFS_OSPATTERN, &x, &y, &z);
     if ((version_string_depth < 2) ||           /* Non-standard for all known kernels */
        ((version_string_depth < 3) && (x < 3))) /* Non-standard for 2.x.x kernels */
        return -ERANGE;