From 3953b064f54965e70eb9ddef6d5569201efd0690 Mon Sep 17 00:00:00 2001
From: Kevin Hamacher <kevin.hamacher@ruhr-uni-bochum.de>
Date: Thu, 31 Mar 2016 13:51:06 +0200
Subject: [PATCH] improve endianess handeling

---
 sway/border.c | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/sway/border.c b/sway/border.c
index fa54ebe2..acabc8e0 100644
--- a/sway/border.c
+++ b/sway/border.c
@@ -8,21 +8,16 @@
 #include "config.h"
 #include "client/pango.h"
 
+#include <arpa/inet.h>
+
 void cairo_set_source_u32(cairo_t *cairo, uint32_t color) {
-	int endian = 1;
-	if (*(char *)&endian == 1) { // little endian
-		cairo_set_source_rgba(cairo,
-				(color >> (1*8) & 0xFF) / 255.0,
-				(color >> (2*8) & 0xFF) / 255.0,
-				(color >> (3*8) & 0xFF) / 255.0,
-				(color >> (0*8) & 0xFF) / 255.0);
-	} else { // big endian
-		cairo_set_source_rgba(cairo,
-				(color >> (0*8) & 0xFF) / 255.0,
-				(color >> (3*8) & 0xFF) / 255.0,
-				(color >> (2*8) & 0xFF) / 255.0,
-				(color >> (1*8) & 0xFF) / 255.0);
-	}
+    color = htonl(color);
+
+    cairo_set_source_rgba(cairo,
+            (color >> (2*8) & 0xFF) / 255.0,
+            (color >> (1*8) & 0xFF) / 255.0,
+            (color >> (0*8) & 0xFF) / 255.0,
+            (color >> (3*8) & 0xFF) / 255.0);
 }
 
 static cairo_t *create_border_buffer(swayc_t *view, struct wlc_geometry geo, cairo_surface_t **surface) {