Annotate

util/termcolours.lua @ 7969:1c6a07606309

util-src: Specify size of various tables to be allocated
author Kim Alvefur <zash@zash.se>
date Thu, 09 Mar 2017 01:20:59 +0100
parent 7206:1c005878db55
child 8368:3629639d5fa9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1523
841d61be198f Remove version number from copyright headers
Matthew Wild <mwild1@gmail.com>
parents: 896
diff changeset
1 -- Prosody IM
2923
b7049746bd29 Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents: 1523
diff changeset
2 -- Copyright (C) 2008-2010 Matthew Wild
b7049746bd29 Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents: 1523
diff changeset
3 -- Copyright (C) 2008-2010 Waqas Hussain
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 4698
diff changeset
4 --
758
b1885732e979 GPL->MIT!
Matthew Wild <mwild1@gmail.com>
parents: 615
diff changeset
5 -- This project is MIT/X11 licensed. Please see the
b1885732e979 GPL->MIT!
Matthew Wild <mwild1@gmail.com>
parents: 615
diff changeset
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 --
7198
48d167f652ad util.termcolours: Silence luacheck warning
Kim Alvefur <zash@zash.se>
parents: 6777
diff changeset
8 --
48d167f652ad util.termcolours: Silence luacheck warning
Kim Alvefur <zash@zash.se>
parents: 6777
diff changeset
9 -- luacheck: ignore 213/i
519
cccd610a0ef9 Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents: 262
diff changeset
10
cccd610a0ef9 Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents: 262
diff changeset
11
262
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 local t_concat, t_insert = table.concat, table.insert;
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 local char, format = string.char, string.format;
4698
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
14 local tonumber = tonumber;
262
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local ipairs = ipairs;
3749
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
16 local io_write = io.write;
7203
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
17 local m_floor = math.floor;
7205
a6c4530c1bc0 util.termcolours: Validate color codes, fixes traceback
Kim Alvefur <zash@zash.se>
parents: 7204
diff changeset
18 local type = type;
a6c4530c1bc0 util.termcolours: Validate color codes, fixes traceback
Kim Alvefur <zash@zash.se>
parents: 7204
diff changeset
19 local setmetatable = setmetatable;
a6c4530c1bc0 util.termcolours: Validate color codes, fixes traceback
Kim Alvefur <zash@zash.se>
parents: 7204
diff changeset
20 local pairs = pairs;
3749
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
21
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
22 local windows;
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
23 if os.getenv("WINDIR") then
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
24 windows = require "util.windows";
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
25 end
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
26 local orig_color = windows and windows.get_consolecolor and windows.get_consolecolor();
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
27
6777
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
28 local _ENV = nil;
262
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 local stylemap = {
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 reset = 0; bright = 1, dim = 2, underscore = 4, blink = 5, reverse = 7, hidden = 8;
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 black = 30; red = 31; green = 32; yellow = 33; blue = 34; magenta = 35; cyan = 36; white = 37;
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 ["black background"] = 40; ["red background"] = 41; ["green background"] = 42; ["yellow background"] = 43; ["blue background"] = 44; ["magenta background"] = 45; ["cyan background"] = 46; ["white background"] = 47;
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 bold = 1, dark = 2, underline = 4, underlined = 4, normal = 0;
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 }
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36
3749
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
37 local winstylemap = {
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
38 ["0"] = orig_color, -- reset
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
39 ["1"] = 7+8, -- bold
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
40 ["1;33"] = 2+4+8, -- bold yellow
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
41 ["1;31"] = 4+8 -- bold red
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
42 }
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
43
4698
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
44 local cssmap = {
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
45 [1] = "font-weight: bold", [2] = "opacity: 0.5", [4] = "text-decoration: underline", [8] = "visibility: hidden",
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
46 [30] = "color:black", [31] = "color:red", [32]="color:green", [33]="color:#FFD700",
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
47 [34] = "color:blue", [35] = "color: magenta", [36] = "color:cyan", [37] = "color: white",
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
48 [40] = "background-color:black", [41] = "background-color:red", [42]="background-color:green",
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
49 [43]="background-color:yellow", [44] = "background-color:blue", [45] = "background-color: magenta",
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
50 [46] = "background-color:cyan", [47] = "background-color: white";
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
51 };
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
52
262
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 local fmt_string = char(0x1B).."[%sm%s"..char(0x1B).."[0m";
6777
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
54 local function getstring(style, text)
262
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 if style then
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 return format(fmt_string, style, text);
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 else
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 return text;
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 end
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 end
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61
7203
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
62 local function gray(n)
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
63 return m_floor(n*3/32)+0xe8;
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
64 end
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
65 local function color(r,g,b)
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
66 if r == g and g == b then
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
67 return gray(r);
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
68 end
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
69 r = m_floor(r*3/128);
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
70 g = m_floor(g*3/128);
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
71 b = m_floor(b*3/128);
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
72 return 0x10 + ( r * 36 ) + ( g * 6 ) + ( b );
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
73 end
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
74 local function hex2rgb(hex)
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
75 local r = tonumber(hex:sub(1,2),16);
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
76 local g = tonumber(hex:sub(3,4),16);
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
77 local b = tonumber(hex:sub(5,6),16);
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
78 return r,g,b;
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
79 end
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
80
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
81 setmetatable(stylemap, { __index = function(_, style)
7205
a6c4530c1bc0 util.termcolours: Validate color codes, fixes traceback
Kim Alvefur <zash@zash.se>
parents: 7204
diff changeset
82 if type(style) == "string" and style:find("%x%x%x%x%x%x") == 1 then
a6c4530c1bc0 util.termcolours: Validate color codes, fixes traceback
Kim Alvefur <zash@zash.se>
parents: 7204
diff changeset
83 local g = style:sub(7) == " background" and "48;5;" or "38;5;";
a6c4530c1bc0 util.termcolours: Validate color codes, fixes traceback
Kim Alvefur <zash@zash.se>
parents: 7204
diff changeset
84 return g .. color(hex2rgb(style));
a6c4530c1bc0 util.termcolours: Validate color codes, fixes traceback
Kim Alvefur <zash@zash.se>
parents: 7204
diff changeset
85 end
7203
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
86 end } );
be8b88ad35a3 util.termcolours: Add 256 color support
Kim Alvefur <zash@zash.se>
parents: 7199
diff changeset
87
7204
ab2b7496a617 util.termcolours: Add some CSS color names
Kim Alvefur <zash@zash.se>
parents: 7203
diff changeset
88 local csscolors = {
ab2b7496a617 util.termcolours: Add some CSS color names
Kim Alvefur <zash@zash.se>
parents: 7203
diff changeset
89 red = "ff0000"; fuchsia = "ff00ff"; green = "008000"; white = "ffffff";
ab2b7496a617 util.termcolours: Add some CSS color names
Kim Alvefur <zash@zash.se>
parents: 7203
diff changeset
90 lime = "00ff00"; yellow = "ffff00"; purple = "800080"; blue = "0000ff";
ab2b7496a617 util.termcolours: Add some CSS color names
Kim Alvefur <zash@zash.se>
parents: 7203
diff changeset
91 aqua = "00ffff"; olive = "808000"; black = "000000"; navy = "000080";
ab2b7496a617 util.termcolours: Add some CSS color names
Kim Alvefur <zash@zash.se>
parents: 7203
diff changeset
92 teal = "008080"; silver = "c0c0c0"; maroon = "800000"; gray = "808080";
ab2b7496a617 util.termcolours: Add some CSS color names
Kim Alvefur <zash@zash.se>
parents: 7203
diff changeset
93 }
7206
1c005878db55 util.termcolours: Rename loop variable [luacheck]
Kim Alvefur <zash@zash.se>
parents: 7205
diff changeset
94 for colorname, rgb in pairs(csscolors) do
1c005878db55 util.termcolours: Rename loop variable [luacheck]
Kim Alvefur <zash@zash.se>
parents: 7205
diff changeset
95 stylemap[colorname] = stylemap[colorname] or stylemap[rgb];
1c005878db55 util.termcolours: Rename loop variable [luacheck]
Kim Alvefur <zash@zash.se>
parents: 7205
diff changeset
96 colorname, rgb = colorname .. " background", rgb .. " background"
1c005878db55 util.termcolours: Rename loop variable [luacheck]
Kim Alvefur <zash@zash.se>
parents: 7205
diff changeset
97 stylemap[colorname] = stylemap[colorname] or stylemap[rgb];
7204
ab2b7496a617 util.termcolours: Add some CSS color names
Kim Alvefur <zash@zash.se>
parents: 7203
diff changeset
98 end
ab2b7496a617 util.termcolours: Add some CSS color names
Kim Alvefur <zash@zash.se>
parents: 7203
diff changeset
99
6777
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
100 local function getstyle(...)
262
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 local styles, result = { ... }, {};
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 for i, style in ipairs(styles) do
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103 style = stylemap[style];
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104 if style then
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 t_insert(result, style);
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
106 end
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 end
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
108 return t_concat(result, ";");
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
109 end
8c73fb2ff4a2 A treat for Linux users ;)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
110
3749
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
111 local last = "0";
6777
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
112 local function setstyle(style)
3749
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
113 style = style or "0";
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
114 if style ~= last then
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
115 io_write("\27["..style.."m");
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
116 last = style;
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
117 end
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
118 end
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
119
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
120 if windows then
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
121 function setstyle(style)
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
122 style = style or "0";
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
123 if style ~= last then
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
124 windows.set_consolecolor(winstylemap[style] or orig_color);
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
125 last = style;
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
126 end
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
127 end
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
128 if not orig_color then
7199
5846e0bca4ff util.termcolours: Remove argument from noop function [luacheck]
Kim Alvefur <zash@zash.se>
parents: 7198
diff changeset
129 function setstyle() end
3749
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
130 end
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
131 end
588c09d7903c util.termcolours: Added setstyle(str), which works on Windows too.
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
132
4698
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
133 local function ansi2css(ansi_codes)
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
134 if ansi_codes == "0" then return "</span>"; end
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
135 local css = {};
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
136 for code in ansi_codes:gmatch("[^;]+") do
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
137 t_insert(css, cssmap[tonumber(code)]);
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
138 end
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
139 return "</span><span style='"..t_concat(css, ";").."'>";
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
140 end
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
141
6777
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
142 local function tohtml(input)
4698
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
143 return input:gsub("\027%[(.-)m", ansi2css);
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
144 end
739f7ae1a01e util.termcolours: tohtml() for converting output to HTML. I don't know.
Matthew Wild <mwild1@gmail.com>
parents: 3749
diff changeset
145
6777
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
146 return {
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
147 getstring = getstring;
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
148 getstyle = getstyle;
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
149 setstyle = setstyle;
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
150 tohtml = tohtml;
5de6b93d0190 util.*: Remove use of module() function, make all module functions local and return them in a table at the end
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
151 };