From 4939a1da8dcd518c37a0505fba97105af8ed3798 Mon Sep 17 00:00:00 2001 From: Craig Small Date: Mon, 11 Apr 2022 17:30:25 +1000 Subject: [PATCH] p/version.c: osrelease for Cygwin 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 --- proc/version.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/proc/version.c b/proc/version.c index ee865a14..e4df18bb 100644 --- a/proc/version.c +++ b/proc/version.c @@ -25,7 +25,13 @@ #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;