choose appropriate unpack function in example.lua wrt lua version
authorandrei zavada <johnhommer@gmail.com>
Sun, 7 Dec 2014 23:39:43 +0000 (01:39 +0200)
committerandrei zavada <johnhommer@gmail.com>
Sun, 7 Dec 2014 23:39:43 +0000 (01:39 +0200)
upstream/doc/examples/example1.lua

index 2feca9f544d631aa5dd882667499feaf494881d5..3f91c8220164a84291fd83068aba739adfed8baa 100644 (file)
 -- 4. Don't lose the context object.  It will not be gabage-collected
 --    for you (it is a C++ thing).
 
--- To execute this script with lua-5.1, do s/table.unpack/unpack/g.
+local effective_unpack = table.unpack
+if _VERSION == "Lua 5.1" then
+   effective_unpack = unpack
+end
 
 local M = require("cnrun")
 
@@ -45,7 +48,7 @@ print ("Setting verbosely to 4")
 M.set_model_parameter (C, mname, "verbosely", 4)
 
 result = {M.list_models (C)}
-res, ult = result[1], {table.unpack(result, 2)}
+res, ult = result[1], {effective_unpack(result, 2)}
 if res == nil then
    print (ult)
    return
@@ -88,7 +91,7 @@ end
 
 
 result = {M.get_units_matching(C, mname, "L.*")}
-res, ult = result[1], {table.unpack(result, 2)}
+res, ult = result[1], {effective_unpack(result, 2)}
 if res == nil then
    print (ult)
    return
@@ -103,7 +106,7 @@ print (string.format(
 print (string.rep('-', 87))
 for _, u in ipairs(unit_list) do
    result = {M.get_unit_properties (C, mname, u)}
-   res, ult = result[1], {table.unpack(result, 2)}
+   res, ult = result[1], {effective_unpack(result, 2)}
    local b = function (x) if x then return "yes" else return "no" end end
    print (string.format(
              fmt,
@@ -155,7 +158,7 @@ print ("State variables:")
 for i = 1, 6, 1 do
    M.advance (C, mname, 1000)
    result = {M.get_unit_vars (C, mname, "LNz.0")}
-   res, ult = result[1], {table.unpack(result, 2)}
+   res, ult = result[1], {effective_unpack(result, 2)}
    print (table.concat(ult, '; '))
 end
 print()