Update copyright notices for 2009
[prosody.git] / util / termcolours.lua
1 -- Prosody IM v0.3
2 -- Copyright (C) 2008-2009 Matthew Wild
3 -- Copyright (C) 2008-2009 Waqas Hussain
4 -- 
5 -- This project is MIT/X11 licensed. Please see the
6 -- COPYING file in the source package for more information.
7 --
8
9
10 local t_concat, t_insert = table.concat, table.insert;
11 local char, format = string.char, string.format;
12 local ipairs = ipairs;
13 module "termcolours"
14
15 local stylemap = {
16                         reset = 0; bright = 1, dim = 2, underscore = 4, blink = 5, reverse = 7, hidden = 8;
17                         black = 30; red = 31; green = 32; yellow = 33; blue = 34; magenta = 35; cyan = 36; white = 37;
18                         ["black background"] = 40; ["red background"] = 41; ["green background"] = 42; ["yellow background"] = 43; ["blue background"] = 44; ["magenta background"] = 45; ["cyan background"] = 46; ["white background"] = 47;
19                         bold = 1, dark = 2, underline = 4, underlined = 4, normal = 0;
20                 }
21
22 local fmt_string = char(0x1B).."[%sm%s"..char(0x1B).."[0m";
23 function getstring(style, text)
24         if style then
25                 return format(fmt_string, style, text);
26         else
27                 return text;
28         end
29 end
30
31 function getstyle(...)
32         local styles, result = { ... }, {};
33         for i, style in ipairs(styles) do
34                 style = stylemap[style];
35                 if style then
36                         t_insert(result, style);
37                 end
38         end
39         return t_concat(result, ";");
40 end
41
42 return _M;