diff --git a/!Compatibility/api/luaAPI.lua b/!Compatibility/api/luaAPI.lua index 96c5134..b1a0427 100644 --- a/!Compatibility/api/luaAPI.lua +++ b/!Compatibility/api/luaAPI.lua @@ -46,14 +46,19 @@ math.huge = 1/0 string.gmatch = gfind function difftime(time2, time1) - assert(type(time2) == "number", format("bad argument #1 to 'difftime' (number expected, got %s)", time2 and type(time2) or "no value")) - assert(not time1 or type(time1) == "number", format("bad argument #2 to 'difftime' (number expected, got %s)", time1 and type(time1) or "no value")) + if type(time2) ~= "number" then + error(format("bad argument #1 to 'difftime' (number expected, got %s)", time2 and type(time2) or "no value"), 2) + elseif time1 and type(time1) ~= "number" then + error(format("bad argument #2 to 'difftime' (number expected, got %s)", time1 and type(time1) or "no value"), 2) + end return time1 and time2 - time1 or time2 end function select(n, ...) - assert(type(n) == "number" or (type(n) == "string" and n == "#"), format("bad argument #1 to 'select' (number expected, got %s)", n and type(n) or "no value")) + if not (type(n) == "number" or (type(n) == "string" and n == "#")) then + error(format("bad argument #1 to 'select' (number expected, got %s)", n and type(n) or "no value"), 2) + end if type(n) == "string" then return getn(arg) @@ -73,7 +78,9 @@ function select(n, ...) end function math.modf(i) - assert(type(i) == "number", format("bad argument #1 to 'modf' (number expected, got %s)", i and type(i) or "no value")) + if type(i) ~= "number" then + error(format("bad argument #1 to 'modf' (number expected, got %s)", i and type(i) or "no value"), 2) + end local int = i >= 0 and floor(i) or ceil(i) @@ -81,7 +88,9 @@ function math.modf(i) end function string.join(delimiter, ...) - assert(type(delimiter) == "string" or type(delimiter) == "number", format("bad argument #1 to 'join' (string expected, got %s)", delimiter and type(delimiter) or "no value")) + if type(delimiter) ~= "string" and type(delimiter) ~= "number" then + error(format("bad argument #1 to 'join' (string expected, got %s)", delimiter and type(delimiter) or "no value"), 2) + end local size = getn(arg) if size == 0 then @@ -98,9 +107,13 @@ end strjoin = string.join function string.match(str, pattern, index) - assert(type(str) == "string" or type(str) == "number", format("bad argument #1 to 'match' (string expected, got %s)", str and type(str) or "no value")) - assert(type(pattern) == "string" or type(pattern) == "number", format("bad argument #2 to 'match' (string expected, got %s)", pattern and type(pattern) or "no value")) - assert(not index or type(index) == "number" or type(index) == "string", format("bad argument #3 to 'match' (number expected, got %s)", index and type(index) or "no value")) + if type(str) ~= "string" and type(str) ~= "number" then + error(format("bad argument #1 to 'match' (string expected, got %s)", str and type(str) or "no value"), 2) + elseif type(pattern) ~= "string" and type(pattern) ~= "number" then + error(format("bad argument #2 to 'match' (string expected, got %s)", pattern and type(pattern) or "no value"), 2) + elseif index and type(index) ~= "number" and (type(index) ~= "string" or index == "") then + error(format("bad argument #3 to 'match' (number expected, got %s)", index and type(index) or "no value"), 2) + end str = type(str) == "number" and tostring(str) or str pattern = type(pattern) == "number" and tostring(pattern) or pattern @@ -122,8 +135,11 @@ end strmatch = string.match function string.split(delimiter, str) - assert(type(delimiter) == "string" or type(str) == "number", format("bad argument #1 to 'split' (string expected, got %s)", delimiter and type(delimiter) or "no value")) - assert(type(str) == "string" or type(str) == "number", format("bad argument #2 to 'split' (string expected, got %s)", str and type(str) or "no value")) + if type(delimiter) ~= "string" and type(delimiter) ~= "number" then + error(format("bad argument #1 to 'split' (string expected, got %s)", delimiter and type(delimiter) or "no value"), 2) + elseif type(str) ~= "string" and type(str) ~= "number" then + error(format("bad argument #2 to 'split' (string expected, got %s)", str and type(str) or "no value"), 2) + end str = type(str) == "number" and tostring(str) or str @@ -135,8 +151,11 @@ end strsplit = string.split function string.trim(str, chars) - assert(type(str) == "string" or type(str) == "number", format("bad argument #1 to 'trim' (string expected, got %s)", str and type(str) or "no value")) - assert(not chars or type(chars) == "string" or type(chars) == "number", format("bad argument #2 to 'trim' (string expected, got %s)", chars and type(chars) or "no value")) + if type(str) ~= "string" and type(str) ~= "number" then + error(format("bad argument #1 to 'trim' (string expected, got %s)", str and type(str) or "no value"), 2) + elseif chars and (type(chars) ~= "string" and type(chars) ~= "number") then + error(format("bad argument #2 to 'trim' (string expected, got %s)", chars and type(chars) or "no value"), 2) + end str = type(str) == "number" and tostring(str) or str @@ -179,7 +198,9 @@ end strtrim = string.trim function table.wipe(t) - assert(type(t) == "table", format("bad argument #1 to 'wipe' (table expected, got %s)", t and type(t) or "no value")) + if type(t) ~= "table" then + error(format("bad argument #1 to 'wipe' (table expected, got %s)", t and type(t) or "no value"), 2) + end for k in pairs(t) do t[k] = nil diff --git a/!Compatibility/api/wowAPI.lua b/!Compatibility/api/wowAPI.lua index 2900473..0df9605 100644 --- a/!Compatibility/api/wowAPI.lua +++ b/!Compatibility/api/wowAPI.lua @@ -1,7 +1,7 @@ --Cache global variables local _G = _G -local assert = assert local date = date +local error = error local pairs = pairs local select = select local tonumber = tonumber @@ -62,7 +62,9 @@ QuestDifficultyColors = { } function HookScript(frame, scriptType, handler) - assert(type(frame) == "table" and frame.GetScript and type(scriptType) == "string" and type(handler) == "function", "Usage: HookScript(frame, \"type\", function)") + if not (type(frame) == "table" and frame.GetScript and type(scriptType) == "string" and type(handler) == "function") then + error("Usage: HookScript(frame, \"type\", function)", 2) + end local original_scipt = frame:GetScript(scriptType) if original_scipt then @@ -79,7 +81,9 @@ end function hooksecurefunc(arg1, arg2, arg3) local isMethod = type(arg1) == "table" and type(arg2) == "string" and type(arg1[arg2]) == "function" and type(arg3) == "function" - assert(isMethod or (type(arg1) == "string" and type(_G[arg1]) == "function" and type(arg2) == "function"), "Usage: hooksecurefunc([table,] \"functionName\", hookfunc)") + if not (isMethod or (type(arg1) == "string" and type(_G[arg1]) == "function" and type(arg2) == "function")) then + error("Usage: hooksecurefunc([table,] \"functionName\", hookfunc)", 2) + end if not isMethod then arg1, arg2, arg3 = _G, arg1, arg2 @@ -103,7 +107,9 @@ end If a table is passed first, it checks table.variable (e.g. issecurevariable(PlayerFrame, "Show") checks PlayerFrame["Show"] or PlayerFrame.Show (they are the same thing)). ]] function issecurevariable(t, var) --- assert(type(t) == "table" and type(var) == "string", "Usage: issecurevariable([table,] \"variable\")") +-- if type(var) ~= "table" or type(var) ~= "string" then +-- error("Usage: issecurevariable([table,] \"variable\")", 2) +-- end return end @@ -121,7 +127,9 @@ function tContains(table, item) end function UnitAura(unit, i, filter) - assert((type(unit) == "string" or type(unit) == "number") and (type(i) == "string" or type(i) == "number"), "Usage: UnitAura(\"unit\", index [, filter])") + if not ((type(unit) == "string" or type(unit) == "number") and (type(i) == "string" or type(i) == "number")) then + error("Usage: UnitAura(\"unit\", index [, filter])", 2) + end if not filter or match(filter, "(HELPFUL)") then local name, rank, aura, count, duration, maxDuration = UnitBuff(unit, i, filter) @@ -159,7 +167,9 @@ function GetQuestDifficultyColor(level) end function FillLocalizedClassList(tab, female) - assert(type(tab) == "table", "Usage: FillLocalizedClassList(classTable[, isFemale])") + if type(tab) ~= "table" then + error("Usage: FillLocalizedClassList(classTable[, isFemale])", 2) + end for _, engClass in ipairs(CLASS_SORT_ORDER) do if female then @@ -237,7 +247,9 @@ function GetCurrentMapAreaID() end function GetMapNameByID(id) - assert(type(id) == "string" or type(id) == "number", format("Bad argument #1 to \"GetMapNameByID\" (number expected, got %s)", id and type(id) or "no value")) + if not (type(id) == "string" or type(id) == "number") then + error(format("Bad argument #1 to \"GetMapNameByID\" (number expected, got %s)", id and type(id) or "no value"), 2) + end return mapByID[tonumber(id)] end @@ -296,8 +308,11 @@ local function OnValueChanged() end function CreateStatusBarTexturePointer(statusbar) - assert(type(statusbar) == "table", format("Bad argument #1 to \"CreateStatusBarTexturePointer\" (table expected, got %s)", statusbar and type(statusbar) or "no value")) - assert(statusbar.GetObjectType and statusbar:GetObjectType() == "StatusBar", "Bad argument #1 to \"CreateStatusBarTexturePointer\" (statusbar object expected)") + if type(statusbar) ~= "table" then + error(format("Bad argument #1 to \"CreateStatusBarTexturePointer\" (table expected, got %s)", statusbar and type(statusbar) or "no value"), 2) + elseif not (statusbar.GetObjectType and statusbar:GetObjectType() == "StatusBar") then + error("Bad argument #1 to \"CreateStatusBarTexturePointer\" (statusbar object expected)", 2) + end local f = statusbar:CreateTexture() f.width = statusbar:GetWidth() @@ -338,7 +353,9 @@ function GetThreatStatusColor(statusIndex) end function GetThreatStatus(currentThreat, maxThreat) - assert(type(currentThreat) == "number" and type(maxThreat) == "number", "Usage: GetThreatStatus(currentThreat, maxThreat)") + if type(currentThreat) ~= "number" or type(maxThreat) ~= "number" then + error("Usage: GetThreatStatus(currentThreat, maxThreat)", 2) + end if not maxThreat or maxThreat == 0 then maxThreat = 1