From ed03d2450ceae3cc7952b65d8349373bbb45a487 Mon Sep 17 00:00:00 2001
From: Jasper Lievisse Adriaanse <jasper@openbsd.org>
Date: Wed, 10 Oct 2012 09:52:27 +0200
Subject: i3status - Handle down wireless interfaces just like ethernet
 interfaces (e.g. colors)

---
 src/print_wireless_info.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/print_wireless_info.c b/src/print_wireless_info.c
index b5e7ba2..1eddd96 100644
--- a/src/print_wireless_info.c
+++ b/src/print_wireless_info.c
@@ -305,6 +305,15 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
 
         INSTANCE(interface);
 
+	const char *ip_address = get_ip_addr(interface);
+	if (ip_address == NULL) {
+		START_COLOR("color_bad");
+		outwalk += sprintf(outwalk, "%s", format_down);
+		goto out;
+	} else {
+		START_COLOR("color_good");
+	}
+
         if (get_wireless_info(interface, &info)) {
                 walk = format_up;
                 if (info.flags & WIRELESS_INFO_FLAG_HAS_QUALITY)
@@ -366,9 +375,8 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
                 }
 
                 if (BEGINS_WITH(walk+1, "ip")) {
-                        const char *ip_address = get_ip_addr(interface);
-                        outwalk += sprintf(outwalk, "%s", (ip_address ? ip_address : "no IP"));
-                        walk += strlen("ip");
+			outwalk += sprintf(outwalk, "%s", ip_address);
+			walk += strlen("ip");
                 }
 
 #ifdef LINUX
@@ -383,6 +391,7 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
 #endif
         }
 
+out:
         END_COLOR;
         OUTPUT_FULL_TEXT(buffer);
 }
-- 
cgit v1.2.3