From 4ec02bea7bbe534ef4b610bc63d1694bf0823174 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Thu, 6 Jan 2011 18:22:46 +0100 Subject: implement the 'path' option for cpu temperature --- src/print_cpu_temperature.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/print_cpu_temperature.c') diff --git a/src/print_cpu_temperature.c b/src/print_cpu_temperature.c index d524f0b..84f78e0 100644 --- a/src/print_cpu_temperature.c +++ b/src/print_cpu_temperature.c @@ -21,11 +21,14 @@ static char *thermal_zone; * returns the temperature in degree celcius. * */ -void print_cpu_temperature_info(int zone, const char *format) { +void print_cpu_temperature_info(int zone, const char *path, const char *format) { const char *walk; static char buf[16]; - asprintf(&thermal_zone, THERMAL_ZONE, zone); + if (path == NULL) { + asprintf(&thermal_zone, THERMAL_ZONE, zone); + path = thermal_zone; + } for (walk = format; *walk != '\0'; walk++) { if (*walk != '%') { @@ -36,8 +39,8 @@ void print_cpu_temperature_info(int zone, const char *format) { if (BEGINS_WITH(walk+1, "degrees")) { #if defined(LINUX) long int temp; - if (!slurp(thermal_zone, buf, sizeof(buf))) - die("Could not open \"%s\"\n", thermal_zone); + if (!slurp(path, buf, sizeof(buf))) + die("Could not open \"%s\"\n", path); temp = strtol(buf, NULL, 10); if (temp == LONG_MIN || temp == LONG_MAX || temp <= 0) (void)printf("?"); @@ -46,7 +49,7 @@ void print_cpu_temperature_info(int zone, const char *format) { #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) int sysctl_rslt; size_t sysctl_size = sizeof(sysctl_rslt); - if (sysctlbyname(thermal_zone, &sysctl_rslt, &sysctl_size, NULL, 0)) { + if (sysctlbyname(path, &sysctl_rslt, &sysctl_size, NULL, 0)) { (void)printf("No thermal zone found"); return; } -- cgit v1.2.3