plugins.xkcd: Escape non-balanced non-empty square brackets in search queries

Mon, 21 Feb 2011 16:30:31 +0100

author
Kim Alvefur <zash@zash.se>
date
Mon, 21 Feb 2011 16:30:31 +0100
changeset 63
8f9675d0101d
parent 62
0785a911fce9
child 64
a317a5d4340c

plugins.xkcd: Escape non-balanced non-empty square brackets in search queries

plugins/xkcd.lua file | annotate | diff | comparison | revisions
--- a/plugins/xkcd.lua	Mon Feb 21 16:12:13 2011 +0100
+++ b/plugins/xkcd.lua	Mon Feb 21 16:30:31 2011 +0100
@@ -37,6 +37,8 @@
 		if not xkcdnum then return "Please supply an XKCD number or a search string :)"; end
 			if not tonumber(xkcdnum) then -- Search for an xkcd
 				xkcdnum = xkcdnum:gsub("[()]", function(s) return "%" .. s end)
+					:gsub("[%[]",function(s) return "%" .. s end)
+					:gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end);
 				local results = {};
 				for x, xkcd in pairs(xkcd_list) do
 					name = " "..xkcd:lower().." ";

mercurial