-- Calculates the width of the span box for Template:Flaglist -- based on the specified image size

local p = {} function p.width( frame )

local size local w local h

size = frame["args"][1]

if string.match(size,"^%d+x%d+px$") ~= nil then -- width and height (eg. 20x10px)

 -- use specified width
 w = string.gsub(size,"(%d+)x%d+px","%1")

elseif string.match(size,"^%d+px$") ~= nil then -- width only (eg. 20px)

 -- use specified width
 w = string.gsub(size,"(%d+)px","%1")

elseif string.match(size,"^x%d+px$") ~= nil then -- height only (eg. x10px)

 -- assume a width based on the height
 h = string.gsub(size,"x(%d+)px","%1")
 w = h * 2.2
 w = math.floor(w+0.5) -- round to integer

else -- empty or invalid input

 w = 23 -- default width for flagicons

end

w = w + 7 -- extra whitespace between icon and link return w

end return p