util.termcolours: Validate color codes, fixes traceback
authorKim Alvefur <zash@zash.se>
Sun, 28 Feb 2016 15:03:01 +0100
changeset 7208 a6c4530c1bc0
parent 7207 ab2b7496a617
child 7209 1c005878db55
util.termcolours: Validate color codes, fixes traceback
util/termcolours.lua
--- a/util/termcolours.lua	Sat Feb 27 16:56:34 2016 +0100
+++ b/util/termcolours.lua	Sun Feb 28 15:03:01 2016 +0100
@@ -15,6 +15,9 @@
 local ipairs = ipairs;
 local io_write = io.write;
 local m_floor = math.floor;
+local type = type;
+local setmetatable = setmetatable;
+local pairs = pairs;
 
 local windows;
 if os.getenv("WINDIR") then
@@ -76,8 +79,10 @@
 end
 
 setmetatable(stylemap, { __index = function(_, style)
-	local g = style:sub(7) == " background" and "48;5;" or "38;5;";
-	return g .. color(hex2rgb(style));
+	if type(style) == "string" and style:find("%x%x%x%x%x%x") == 1 then
+		local g = style:sub(7) == " background" and "48;5;" or "38;5;";
+		return g .. color(hex2rgb(style));
+	end
 end } );
 
 local csscolors = {