#include "i3status.h"
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
#include <err.h>
#include <sys/types.h>
#include <sys/sysctl.h>
#ifdef THERMAL_ZONE
const char *walk;
char *outwalk = buffer;
- bool colorful_output;
+ bool colorful_output = false;
if (path == NULL)
asprintf(&thermal_zone, THERMAL_ZONE, zone);
temp = strtol(buf, NULL, 10);
if (temp == LONG_MIN || temp == LONG_MAX || temp <= 0)
*(outwalk++) = '?';
- else
+ else {
+ if ((temp/1000) >= max_threshold) {
+ START_COLOR("color_bad");
+ colorful_output = true;
+ }
outwalk += sprintf(outwalk, "%ld", (temp/1000));
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ if (colorful_output) {
+ END_COLOR;
+ colorful_output = false;
+ }
+ }
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
int sysctl_rslt;
size_t sysctl_size = sizeof(sysctl_rslt);
if (sysctlbyname(path, &sysctl_rslt, &sysctl_size, NULL, 0))
outwalk += sprintf(outwalk, "%.2f", MUKTOC(sensor.value));
- if (colorful_output)
+ if (colorful_output) {
END_COLOR;
+ colorful_output = false;
+ }
}
}
}