diff --git a/helpers.lua b/helpers.lua index 874de73..cc5d823 100644 --- a/helpers.lua +++ b/helpers.lua @@ -5,7 +5,10 @@ -- {{{ Grab environment local pairs = pairs -local string = { gsub = string.gsub } +local string = { + sub = string.sub, + gsub = string.gsub +} -- }}} @@ -38,4 +41,16 @@ function escape(text) return text and text:gsub("[\"&'<>]", xml_entities) end -- }}} + +--{{{ Truncate a string +function truncate(text, maxlen) + txtlen = text:len() + + if txtlen > maxlen then + text = text:sub(1, maxlen - 3) .. "..." + end + + return text +end +-- }}} -- }}} diff --git a/mbox.lua b/mbox.lua index f0a5817..d5c1b56 100644 --- a/mbox.lua +++ b/mbox.lua @@ -36,9 +36,7 @@ function worker(format, mbox) subject = helpers.escape(subject) -- Don't abuse the wibox, truncate - if subject:len() > 22 then - subject = subject:sub(1, 19) .. "..." - end + subject = helpers.truncate(subject, 22) return {subject} end diff --git a/mpd.lua b/mpd.lua index f8c0400..bb193b5 100644 --- a/mpd.lua +++ b/mpd.lua @@ -34,12 +34,22 @@ function worker(format) nowplaying = helpers.escape(np) -- Don't abuse the wibox, truncate - if nowplaying:len() > 30 then - nowplaying = nowplaying:sub(1, 27) .. "..." - end + nowplaying = helpers.truncate(nowplaying, 30) return {nowplaying} end -- }}} setmetatable(_M, { __call = function(_, ...) return worker(...) end }) + + + + + + + + + + + +