From 6ba1f86b7b3034c240f474a7f11f03d57de31d23 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Mon, 10 Sep 2012 02:45:53 +0000 Subject: [PATCH] Fix global "arg" value for scripts run tom "lua" command. --- src/jse/lua.java | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/jse/lua.java b/src/jse/lua.java index 3fcf0f9d..a8c9b3b9 100644 --- a/src/jse/lua.java +++ b/src/jse/lua.java @@ -45,7 +45,7 @@ import org.luaj.vm2.luajc.LuaJC; * lua command for use in java se environments. */ public class lua { - private static final String version = Lua._VERSION + "Copyright (c) 2009 Luaj.org.org"; + private static final String version = Lua._VERSION + "Copyright (c) 2012 Luaj.org.org"; private static final String usage = "usage: java -cp luaj-jse.jar lua [options] [script [args]].\n" + @@ -56,7 +56,6 @@ public class lua { " -v show version information\n" + " -b use luajc bytecode-to-bytecode compiler (requires bcel on class path)\n" + " -n nodebug - do not load debug library by default\n" + - " -p pretty-print the prototype\n" + " -- stop handling options\n" + " - execute stdin and stop handling options"; @@ -111,9 +110,6 @@ public class lua { case 'n': nodebug = true; break; - case 'p': - print = true; - break; case '-': if ( args[i].length() > 2 ) usageExit(); @@ -191,28 +187,23 @@ public class lua { LuaFunction c; try { c = LoadState.load(script, chunkname, "bt", _G); - if (c instanceof LuaClosure) { - LuaClosure closure = (LuaClosure) c; - Print.print(closure.p); - // DebugLib.DEBUG_ENABLED = true; - } else { - System.out.println( "Not a LuaClosure: "+c); - } - Print.print(((LuaClosure)c).p); } finally { script.close(); } - Varargs scriptargs = (args!=null? setGlobalArg(args, firstarg): LuaValue.NONE); + Varargs scriptargs = setGlobalArg(chunkname, args, firstarg, _G); c.invoke( scriptargs ); } catch ( Exception e ) { e.printStackTrace( System.err ); } } - private static Varargs setGlobalArg(String[] args, int i) { + private static Varargs setGlobalArg(String chunkname, String[] args, int i, LuaValue _G) { LuaTable arg = LuaValue.tableOf(); for ( int j=0; j