Software / code / prosody
Annotate
util/termcolours.lua @ 819:a0c62a66ee47
Automated merge with http://waqas.ath.cx:8000/
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 18 Feb 2009 19:34:26 +0000 |
| parent | 760:90ce865eebd8 |
| child | 896:2c0b9e3c11c3 |
| rev | line source |
|---|---|
| 759 | 1 -- Prosody IM v0.3 |
|
760
90ce865eebd8
Update copyright notices for 2009
Matthew Wild <mwild1@gmail.com>
parents:
759
diff
changeset
|
2 -- Copyright (C) 2008-2009 Matthew Wild |
|
90ce865eebd8
Update copyright notices for 2009
Matthew Wild <mwild1@gmail.com>
parents:
759
diff
changeset
|
3 -- Copyright (C) 2008-2009 Waqas Hussain |
|
519
cccd610a0ef9
Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents:
262
diff
changeset
|
4 -- |
| 758 | 5 -- This project is MIT/X11 licensed. Please see the |
| 6 -- COPYING file in the source package for more information. | |
|
519
cccd610a0ef9
Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents:
262
diff
changeset
|
7 -- |
|
cccd610a0ef9
Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents:
262
diff
changeset
|
8 |
|
cccd610a0ef9
Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents:
262
diff
changeset
|
9 |
| 262 | 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; |