From 7728c35401cf53dc87832c9bb1b0bfe32fa1ed92 Mon Sep 17 00:00:00 2001
From: Michael Stapelberg <michael@stapelberg.de>
Date: Wed, 13 Jul 2011 17:21:35 +0200
Subject: correctly auto-detect the output format with zsh (Thanks mist)

---
 src/auto_detect_format.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/auto_detect_format.c b/src/auto_detect_format.c
index 2df13f5..299614a 100644
--- a/src/auto_detect_format.c
+++ b/src/auto_detect_format.c
@@ -74,6 +74,19 @@ char *auto_detect_format() {
     if (!parentname)
         goto out;
 
+    /* Some shells, for example zsh, open a pipe in a way which will make the
+     * pipe target the parent process of i3status. If we detect that, we set
+     * the format and we are done. */
+    if (strcasecmp(parentname, "i3bar") == 0)
+        format = "none";
+    else if (strcasecmp(parentname, "dzen2") == 0)
+        format = "dzen2";
+    else if (strcasecmp(parentname, "xmobar") == 0)
+        format = "xmobar";
+
+    if (format)
+        goto out;
+
     rewinddir(dir);
 
     while ((entry = readdir(dir)) != NULL) {
-- 
cgit v1.2.3