vlc/vlc-1.2 | branch: master | Pierre Ynard <[email protected]> | Sat Jan 7 17:58:09 2012 +0100| [5c1cb49e05d03a3dc52ebac9d2e0b84f5a03a1a7] | committer: Pierre Ynard
lua: add and use us_tonumber() for decimal numbers Closes #5705 (cherry picked from commit c90a3e02568368f55f454aee7c89ed57a945ed17) Signed-off-by: Pierre Ynard <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.2.git/?a=commit;h=5c1cb49e05d03a3dc52ebac9d2e0b84f5a03a1a7 --- share/lua/intf/cli.lua | 2 +- share/lua/intf/modules/common.lua | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/share/lua/intf/cli.lua b/share/lua/intf/cli.lua index 265b938..ed2a685 100644 --- a/share/lua/intf/cli.lua +++ b/share/lua/intf/cli.lua @@ -464,7 +464,7 @@ end function rate(name,client,value) local input = vlc.object.input() if name == "rate" then - vlc.var.set(input, "rate", tonumber(value)) + vlc.var.set(input, "rate", common.us_tonumber(value)) elseif name == "normal" then vlc.var.set(input,"rate",1) else diff --git a/share/lua/intf/modules/common.lua b/share/lua/intf/modules/common.lua index 5744427..ca51344 100644 --- a/share/lua/intf/modules/common.lua +++ b/share/lua/intf/modules/common.lua @@ -46,6 +46,19 @@ function table_copy(t) return c end +-- tonumber() for decimals number, using a dot as decimal separator +-- regardless of the system locale +function us_tonumber(str) + local i, d = string.match(str, "([+-]?%d*)%.?(%d*)") + if i == nil or i == "" then + i = "0" + end + if d == nil or d == "" then + d = "0" + end + return tonumber(i) + tonumber(d)/(10^string.len(d)) +end + -- strip leading and trailing spaces function strip(str) return string.gsub(str, "^%s*(.-)%s*$", "%1") @@ -119,9 +132,9 @@ function seek(value) local input = vlc.object.input() if input ~= nil and value ~= nil then if string.sub(value,-1) == "%" then - local number = tonumber(string.sub(value,1,-2)) + local number = us_tonumber(string.sub(value,1,-2)) if number ~= nil then - local posPercent = tonumber( string.sub(value,1,-2))/100. + local posPercent = number/100. if string.sub(value,1,1) == "+" or string.sub(value,1,1) == "-" then vlc.var.set(input,"position",vlc.var.get(input,"position") + posPercent) else _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
