Skip to content

Commit 1b3aa40

Browse files
committed
add yajl compat code
1 parent 9d7b696 commit 1b3aa40

16 files changed

+36
-0
lines changed

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ endif
3535

3636
CFLAGS+=$(EXTRA_CFLAGS)
3737

38+
# Fallback for libyajl 1 which did not include yajl_version.h. We need
39+
# YAJL_MAJOR from that file to decide which code path should be used.
40+
CFLAGS += -idirafter $(TOPDIR)/yajl-fallback
41+
3842
OBJS:=$(wildcard src/*.c *.c)
3943
OBJS:=$(OBJS:.c=.o)
4044

i3status.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include <locale.h>
3030

3131
#include <yajl/yajl_gen.h>
32+
#include <yajl/yajl_version.h>
3233

3334
#include "i3status.h"
3435

@@ -346,7 +347,11 @@ int main(int argc, char *argv[]) {
346347
|| !valid_color(cfg_getstr(cfg_general, "color_separator")))
347348
die("Bad color format");
348349

350+
#if YAJL_MAJOR >= 2
349351
yajl_gen json_gen = yajl_gen_alloc(NULL);
352+
#else
353+
yajl_gen json_gen = yajl_gen_alloc(NULL, NULL);
354+
#endif
350355

351356
if (output_format == O_I3BAR) {
352357
/* Initialize the i3bar protocol. See i3/docs/i3bar-protocol
@@ -466,7 +471,11 @@ int main(int argc, char *argv[]) {
466471
if (output_format == O_I3BAR) {
467472
yajl_gen_array_close(json_gen);
468473
const unsigned char *buf;
474+
#if YAJL_MAJOR >= 2
469475
size_t len;
476+
#else
477+
unsigned int len;
478+
#endif
470479
yajl_gen_get_buf(json_gen, &buf, &len);
471480
write(STDOUT_FILENO, buf, len);
472481
yajl_gen_clear(json_gen);

include/i3status.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ enum { O_DZEN2, O_XMOBAR, O_I3BAR, O_NONE } output_format;
77
#include <confuse.h>
88
#include <time.h>
99
#include <yajl/yajl_gen.h>
10+
#include <yajl/yajl_version.h>
1011
#include <unistd.h>
1112
#include <string.h>
1213

src/print_battery_info.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <stdlib.h>
55
#include <stdio.h>
66
#include <yajl/yajl_gen.h>
7+
#include <yajl/yajl_version.h>
78

89
#include "i3status.h"
910

src/print_cpu_temperature.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <stdio.h>
55
#include <string.h>
66
#include <yajl/yajl_gen.h>
7+
#include <yajl/yajl_version.h>
78

89
#include "i3status.h"
910

src/print_cpu_usage.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <stdio.h>
55
#include <string.h>
66
#include <yajl/yajl_gen.h>
7+
#include <yajl/yajl_version.h>
78

89
#ifdef __FreeBSD__
910
#include <sys/types.h>

src/print_ddate.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <stdlib.h>
55
#include <string.h>
66
#include <yajl/yajl_gen.h>
7+
#include <yajl/yajl_version.h>
78

89
#include "i3status.h"
910

src/print_disk_info.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <sys/mount.h>
1212
#endif
1313
#include <yajl/yajl_gen.h>
14+
#include <yajl/yajl_version.h>
1415

1516
#include "i3status.h"
1617

src/print_eth_info.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#include <net/if.h>
99
#include <netinet/in.h>
1010
#include <arpa/inet.h>
11+
#include <yajl/yajl_gen.h>
12+
#include <yajl/yajl_version.h>
1113

1214
#include "i3status.h"
1315

src/print_ipv6_addr.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <string.h>
1010
#include <arpa/inet.h>
1111
#include <yajl/yajl_gen.h>
12+
#include <yajl/yajl_version.h>
1213

1314
#include "i3status.h"
1415

0 commit comments

Comments
 (0)