local function processResult(options, success, ...) if not success then local message = tostring(... or '(no message)') if options.removeLocation then message = string.gsub(message, '^Module:[^:]+:%d+: ', , 1) end return string.format(options.errFormat, message) end return ...end
local function protect(func, errFormat, options) if type(errFormat)
nil or options.removeLocation return function (...) return processResult(options, pcall(func, ...)) endend
return protect