X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/0ef82f83e0baaa2936b6204a24ee3b3b638fd409..1973b16fdc6a371e6dadcf9b8f25196202013145:/widgets/maildir.lua?ds=sidebyside

diff --git a/widgets/maildir.lua b/widgets/maildir.lua
index 4ac34bc..246341f 100644
--- a/widgets/maildir.lua
+++ b/widgets/maildir.lua
@@ -11,7 +11,9 @@ local newtimer        = require("lain.helpers").newtimer
 
 local wibox           = require("wibox")
 
-local io              = io
+local util            = require("lain.util")
+
+local io              = { popen  = io.popen }
 local os              = { getenv = os.getenv }
 local pairs           = pairs
 local string          = { len    = string.len,
@@ -33,7 +35,7 @@ local function worker(args)
 
     maildir.widget = wibox.widget.textbox('')
 
-    function maildir.update()
+    function update()
         -- Find pathes to mailboxes.
         local p = io.popen("find " .. mailpath ..
                            " -mindepth 1 -maxdepth 1 -type d" ..
@@ -51,7 +53,7 @@ local function worker(args)
                 local np = io.popen("find " .. line ..
                                     "/new -mindepth 1 -type f " ..
                                     "-not -name '.*' -printf a")
-                local mailstring = np:read("*all")
+                local mailstring = np:read("*a")
 
                 -- Strip off leading mailpath.
                 local box = string.match(line, mailpath .. "/*([^/]+)")
@@ -66,15 +68,16 @@ local function worker(args)
         table.sort(boxes)
 
         newmail = "no mail"
+        --Count the total number of mails irrespective of where it was found
+        total = 0
 
-        local count = 0
         for box, number in pairs(boxes)
         do
-            count = count + 1
             -- Add this box only if it's not to be ignored.
             if not util.element_in_table(box, ignore_boxes)
             then
-                if newmail == ""
+                total = total + number
+                if newmail == "no mail"
                 then
                     newmail = box .. "(" .. number .. ")"
                 else
@@ -88,8 +91,7 @@ local function worker(args)
         settings()
     end
 
-    newtimer(mailpath, timeout, maildir.update, true)
-
+    newtimer(mailpath, timeout, update, true)
     return maildir.widget
 end