From: Steven Barth Date: Thu, 11 Sep 2008 12:58:57 +0000 (+0000) Subject: UVL: Fixed dependency handling X-Git-Tag: 0.9.0~1348 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=e5cb252043e0f5350ba26702e89a73713088d2a3 UVL: Fixed dependency handling --- diff --git a/libs/uvl/luasrc/uvl.lua b/libs/uvl/luasrc/uvl.lua index 9cdb9948d..f7943d8d7 100644 --- a/libs/uvl/luasrc/uvl.lua +++ b/libs/uvl/luasrc/uvl.lua @@ -663,20 +663,20 @@ end -- Read a dependency specification function UVL._read_dependency( self, values, deps ) - local expr = "%$?[a-zA-Z0-9_]+" + local expr = "%$?[%w_]+" if values then values = ( type(values) == "table" and values or { values } ) for _, value in ipairs(values) do local condition = { } - for val in value:gmatch("[^%s,]+") do - local k, v = val:match("([^%s=]+)%s*=*%s*([^%s]*)") + for val in value:gmatch("[^,]+") do + local k, e, v = val:match("%s*([%w$_.]+)%s*(=?)%s*(.*)") if k and ( k:match("^"..expr.."%."..expr.."%."..expr.."$") or k:match("^"..expr.."%."..expr.."$") or k:match("^"..expr.."$") ) then - condition[k] = v or true + condition[k] = (e == '=') and v or true else return nil end