X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/ac6615db205af4ac3679b1cd87941fa2b32306bf..fd82b1dabac8a156142d303b5042ba6ed23e906a:/widgets/maildir.lua

diff --git a/widgets/maildir.lua b/widgets/maildir.lua
index 5cb6840..eed6138 100644
--- a/widgets/maildir.lua
+++ b/widgets/maildir.lua
@@ -1,3 +1,4 @@
+
 --[[
                                                   
      Licensed under GNU General Public License v2 
@@ -7,10 +8,13 @@
 --]]
 
 local newtimer        = require("lain.helpers").newtimer
+local read_pipe       = require("lain.helpers").read_pipe
 
 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,
@@ -47,10 +51,9 @@ local function worker(args)
                 -- match files that begin with a dot.
                 -- Afterwards the length of this string is the number of
                 -- new mails in that box.
-                local np = io.popen("find " .. line ..
+                local mailstring = read_pipe("find " .. line ..
                                     "/new -mindepth 1 -type f " ..
                                     "-not -name '.*' -printf a")
-                local mailstring = np:read("*all")
 
                 -- Strip off leading mailpath.
                 local box = string.match(line, mailpath .. "/*([^/]+)")
@@ -62,18 +65,20 @@ local function worker(args)
             end
         until line == nil
 
+	p:close()
         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