X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=libs%2Fuvl%2Fluasrc%2Fuvl%2Ferrors.lua;h=a575f40599b228a8e26cb8274b5dffb9c82491b6;hp=bdd596ca820c0b2e347b1c5423f518769fb06821;hb=d1796b2991d347d78cb02d95f09bc4c157b444cc;hpb=c939a799cefc729fbc672991415987aa0aa6a480 diff --git a/libs/uvl/luasrc/uvl/errors.lua b/libs/uvl/luasrc/uvl/errors.lua index bdd596ca8..a575f4059 100644 --- a/libs/uvl/luasrc/uvl/errors.lua +++ b/libs/uvl/luasrc/uvl/errors.lua @@ -19,7 +19,7 @@ local uvl = require "luci.uvl" local util = require "luci.util" local string = require "string" -local ipairs, error, type = ipairs, error, type +local ipairs, error, type = ipairs, error, type local tonumber, unpack = tonumber, unpack @@ -66,6 +66,7 @@ ERRCODES = { { 'OPT_NOTLIST', 'Option "%i" is defined as list but stored as plain value' }, { 'OPT_DATATYPE', 'Option "%i" has unknown datatype "%1"' }, { 'OPT_NOTFOUND', 'Option "%p.%s.%o" not found in config' }, + { 'OPT_RANGE', 'Option "%p.%s.%o" is not within the specified range' }, { 'DEP_NOTEQUAL', 'Dependency (%1) failed:\nOption "%i" is not eqal "%2"' }, { 'DEP_NOVALUE', 'Dependency (%1) failed:\nOption "%i" has no value' }, @@ -121,7 +122,7 @@ function error.child(self, err) if not self.childs then self.childs = { err } else - table.insert( self.childs, err ) + self.childs[#self.childs+1] = err end return self end @@ -183,3 +184,17 @@ function error.is(self, code) end return false end + +function error.is_all(self, ...) + local codes = { ... } + + if util.contains(codes, self.code) then + return true + else + local equal = false + for _, c in ipairs(self.childs) do + equal = util.contains(codes, c.code) + end + return equal + end +end