Introduced the truncate helper.

Function takes two arguments, the text to be truncated and the max
lenght. Last three characters will be replaced by "...". Mbox and MPD
widgets that previously did it them selves are now using this helper.
This commit is contained in:
Adrian C. (anrxc) 2009-08-05 22:11:11 +02:00
parent 2d0cbf562e
commit 3c76e0ddd2
3 changed files with 30 additions and 7 deletions

View File

@ -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
-- }}}
-- }}}

View File

@ -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

16
mpd.lua
View File

@ -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 })