-- Prosody IM
-- Copyright (C) 2008-2010 Matthew Wild
-- Copyright (C) 2008-2010 Waqas Hussain
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--
local t_concat , t_insert = table.concat , table.insert ;
local char , format = string.char , string.format ;
local ipairs = ipairs ;
module " termcolours "
local stylemap = {
reset = 0 ; bright = 1 , dim = 2 , underscore = 4 , blink = 5 , reverse = 7 , hidden = 8 ;
black = 30 ; red = 31 ; green = 32 ; yellow = 33 ; blue = 34 ; magenta = 35 ; cyan = 36 ; white = 37 ;
[ " black background " ] = 40 ; [ " red background " ] = 41 ; [ " green background " ] = 42 ; [ " yellow background " ] = 43 ; [ " blue background " ] = 44 ; [ " magenta background " ] = 45 ; [ " cyan background " ] = 46 ; [ " white background " ] = 47 ;
bold = 1 , dark = 2 , underline = 4 , underlined = 4 , normal = 0 ;
}
local fmt_string = char ( 0x1B ) .. " [%sm%s " .. char ( 0x1B ) .. " [0m " ;
function getstring ( style , text )
if style then
return format ( fmt_string , style , text ) ;
else
return text ;
end
end
function getstyle ( ... )
local styles , result = { ... } , { } ;
for i , style in ipairs ( styles ) do
style = stylemap [ style ] ;
if style then
t_insert ( result , style ) ;
end
end
return t_concat ( result , " ; " ) ;
end
return _M ;