summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stapelberg <stapelberg@users.noreply.github.com>2015-07-07 23:12:13 -0700
committerMichael Stapelberg <stapelberg@users.noreply.github.com>2015-07-07 23:12:13 -0700
commit55a23712ade74836be11feb9602f90d360aea44a (patch)
tree8de541c9dffaaf20f078807ca6489e6cbf211301
parent326f26c5138526eccc7c57a22c3a1138e1535fcc (diff)
parent80e7b83d541044c698d6e9e40cc122e0cf287858 (diff)
Merge pull request #40 from afh/pull/osx
Mac OS X compatibility changes
-rw-r--r--Makefile4
-rw-r--r--i3status.c5
-rw-r--r--man/Makefile3
-rw-r--r--src/print_cpu_temperature.c2
-rw-r--r--src/print_disk_info.c6
5 files changed, 13 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index cf52d90..1823f3d 100644
--- a/Makefile
+++ b/Makefile
@@ -47,8 +47,8 @@ ifeq ($(OS),OpenBSD)
LIBS+=-lossaudio
endif
-ifeq ($(OS), NetBSD)
-LIBS+= -lprop
+ifeq ($(OS),NetBSD)
+LIBS+=-lprop
endif
# This probably applies for any pkgsrc based system
diff --git a/i3status.c b/i3status.c
index 46d557c..000584a 100644
--- a/i3status.c
+++ b/i3status.c
@@ -692,7 +692,12 @@ int main(int argc, char *argv[]) {
* We also align to 60 seconds modulo interval such
* that we start with :00 on every new minute. */
struct timespec ts;
+#if defined(__APPLE__)
+ gettimeofday(&tv, NULL);
+ ts.tv_sec = tv.tv_sec;
+#else
clock_gettime(CLOCK_REALTIME, &ts);
+#endif
ts.tv_sec += interval - (ts.tv_sec % interval);
ts.tv_nsec = 0;
diff --git a/man/Makefile b/man/Makefile
index ffcb80c..1db82a4 100644
--- a/man/Makefile
+++ b/man/Makefile
@@ -1,8 +1,9 @@
all: i3status.1
A2X?=a2x
+A2X_FLAGS=
i3status.1: asciidoc.conf i3status.man
- ${A2X} -f manpage --asciidoc-opts="-f asciidoc.conf" i3status.man
+ ${A2X} -f manpage --asciidoc-opts="-f asciidoc.conf" ${A2X_FLAGS} i3status.man
clean:
rm -f i3status.xml i3status.1 i3status.html
diff --git a/src/print_cpu_temperature.c b/src/print_cpu_temperature.c
index c0a6baa..71ee4d4 100644
--- a/src/print_cpu_temperature.c
+++ b/src/print_cpu_temperature.c
@@ -261,8 +261,8 @@ void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const
OUTPUT_FULL_TEXT(buffer);
return;
error:
-#endif
free(thermal_zone);
+#endif
OUTPUT_FULL_TEXT("can't read temp");
(void)fputs("i3status: Cannot read temperature. Verify that you have a thermal zone in /sys/class/thermal or disable the cpu_temperature module in your i3status config.\n", stderr);
diff --git a/src/print_disk_info.c b/src/print_disk_info.c
index 7fd47b9..e5e3ab1 100644
--- a/src/print_disk_info.c
+++ b/src/print_disk_info.c
@@ -7,7 +7,7 @@
#include <sys/stat.h>
#include <sys/statvfs.h>
#include <sys/types.h>
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || (__OpenBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || (__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
#include <sys/param.h>
#include <sys/mount.h>
#else
@@ -59,7 +59,7 @@ static int print_bytes_human(char *outwalk, uint64_t bytes, const char *prefix_t
* Determines whether remaining bytes are below given threshold.
*
*/
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
static bool below_threshold(struct statfs buf, const char *prefix_type, const char *threshold_type, const double low_threshold) {
#else
static bool below_threshold(struct statvfs buf, const char *prefix_type, const char *threshold_type, const double low_threshold) {
@@ -116,7 +116,7 @@ void print_disk_info(yajl_gen json_gen, char *buffer, const char *path, const ch
INSTANCE(path);
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
struct statfs buf;
if (statfs(path, &buf) == -1)