Comparison

util/termcolours.lua @ 6777:5de6b93d0190

util.*: Remove use of module() function, make all module functions local and return them in a table at the end
author Kim Alvefur <zash@zash.se>
date Sat, 21 Feb 2015 10:36:37 +0100
parent 5776:bd0ff8ae98a8
child 7198:48d167f652ad
comparison
equal deleted inserted replaced
6774:3965662ae091 6777:5de6b93d0190
17 if os.getenv("WINDIR") then 17 if os.getenv("WINDIR") then
18 windows = require "util.windows"; 18 windows = require "util.windows";
19 end 19 end
20 local orig_color = windows and windows.get_consolecolor and windows.get_consolecolor(); 20 local orig_color = windows and windows.get_consolecolor and windows.get_consolecolor();
21 21
22 module "termcolours" 22 local _ENV = nil;
23 23
24 local stylemap = { 24 local stylemap = {
25 reset = 0; bright = 1, dim = 2, underscore = 4, blink = 5, reverse = 7, hidden = 8; 25 reset = 0; bright = 1, dim = 2, underscore = 4, blink = 5, reverse = 7, hidden = 8;
26 black = 30; red = 31; green = 32; yellow = 33; blue = 34; magenta = 35; cyan = 36; white = 37; 26 black = 30; red = 31; green = 32; yellow = 33; blue = 34; magenta = 35; cyan = 36; white = 37;
27 ["black background"] = 40; ["red background"] = 41; ["green background"] = 42; ["yellow background"] = 43; ["blue background"] = 44; ["magenta background"] = 45; ["cyan background"] = 46; ["white background"] = 47; 27 ["black background"] = 40; ["red background"] = 41; ["green background"] = 42; ["yellow background"] = 43; ["blue background"] = 44; ["magenta background"] = 45; ["cyan background"] = 46; ["white background"] = 47;
43 [43]="background-color:yellow", [44] = "background-color:blue", [45] = "background-color: magenta", 43 [43]="background-color:yellow", [44] = "background-color:blue", [45] = "background-color: magenta",
44 [46] = "background-color:cyan", [47] = "background-color: white"; 44 [46] = "background-color:cyan", [47] = "background-color: white";
45 }; 45 };
46 46
47 local fmt_string = char(0x1B).."[%sm%s"..char(0x1B).."[0m"; 47 local fmt_string = char(0x1B).."[%sm%s"..char(0x1B).."[0m";
48 function getstring(style, text) 48 local function getstring(style, text)
49 if style then 49 if style then
50 return format(fmt_string, style, text); 50 return format(fmt_string, style, text);
51 else 51 else
52 return text; 52 return text;
53 end 53 end
54 end 54 end
55 55
56 function getstyle(...) 56 local function getstyle(...)
57 local styles, result = { ... }, {}; 57 local styles, result = { ... }, {};
58 for i, style in ipairs(styles) do 58 for i, style in ipairs(styles) do
59 style = stylemap[style]; 59 style = stylemap[style];
60 if style then 60 if style then
61 t_insert(result, style); 61 t_insert(result, style);
63 end 63 end
64 return t_concat(result, ";"); 64 return t_concat(result, ";");
65 end 65 end
66 66
67 local last = "0"; 67 local last = "0";
68 function setstyle(style) 68 local function setstyle(style)
69 style = style or "0"; 69 style = style or "0";
70 if style ~= last then 70 if style ~= last then
71 io_write("\27["..style.."m"); 71 io_write("\27["..style.."m");
72 last = style; 72 last = style;
73 end 73 end
93 t_insert(css, cssmap[tonumber(code)]); 93 t_insert(css, cssmap[tonumber(code)]);
94 end 94 end
95 return "</span><span style='"..t_concat(css, ";").."'>"; 95 return "</span><span style='"..t_concat(css, ";").."'>";
96 end 96 end
97 97
98 function tohtml(input) 98 local function tohtml(input)
99 return input:gsub("\027%[(.-)m", ansi2css); 99 return input:gsub("\027%[(.-)m", ansi2css);
100 end 100 end
101 101
102 return _M; 102 return {
103 getstring = getstring;
104 getstyle = getstyle;
105 setstyle = setstyle;
106 tohtml = tohtml;
107 };