Improve compatibility with luaj 1.0
This commit is contained in:
@@ -204,7 +204,7 @@ public class LuaC extends Lua implements LuaCompiler {
|
|||||||
lexstate.open_func(funcstate);
|
lexstate.open_func(funcstate);
|
||||||
/* main func. is always vararg */
|
/* main func. is always vararg */
|
||||||
funcstate.f.is_vararg = LuaC.VARARG_ISVARARG;
|
funcstate.f.is_vararg = LuaC.VARARG_ISVARARG;
|
||||||
funcstate.f.source = (LuaString) LuaValue.valueOf("@"+name);
|
funcstate.f.source = (LuaString) LuaValue.valueOf(name);
|
||||||
lexstate.next(); /* read first token */
|
lexstate.next(); /* read first token */
|
||||||
lexstate.chunk();
|
lexstate.chunk();
|
||||||
lexstate.check(LexState.TK_EOS);
|
lexstate.check(LexState.TK_EOS);
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ public class PackageLib extends OneArgFunction {
|
|||||||
if ( e < 0 )
|
if ( e < 0 )
|
||||||
e = fname.m_length;
|
e = fname.m_length;
|
||||||
LuaString key = fname.substring(b, e);
|
LuaString key = fname.substring(b, e);
|
||||||
LuaValue val = table.get(key);
|
LuaValue val = table.rawget(key);
|
||||||
if ( val.isnil() ) { /* no such field? */
|
if ( val.isnil() ) { /* no such field? */
|
||||||
LuaTable field = new LuaTable(); /* new table for field */
|
LuaTable field = new LuaTable(); /* new table for field */
|
||||||
table.set(key, field);
|
table.set(key, field);
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
package org.luaj.vm2.vm1;
|
package org.luaj.vm2.vm1;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
@@ -55,9 +57,10 @@ public class Luajvm1CompatibilityTest extends TestCase {
|
|||||||
|
|
||||||
private static InputStream open(String file) {
|
private static InputStream open(String file) {
|
||||||
try {
|
try {
|
||||||
String path = jarpath+file;
|
File f = new File(file);
|
||||||
URL url = new URL(path);
|
return f.exists()?
|
||||||
return url.openStream();
|
new FileInputStream(f):
|
||||||
|
new URL(jarpath+file).openStream();
|
||||||
} catch ( Exception e ) {
|
} catch ( Exception e ) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -99,7 +102,7 @@ public class Luajvm1CompatibilityTest extends TestCase {
|
|||||||
if ( is == null )
|
if ( is == null )
|
||||||
return LuaValue.valueOf("not found: "+file);
|
return LuaValue.valueOf("not found: "+file);
|
||||||
try {
|
try {
|
||||||
return org.luaj.vm2.LoadState.load(is, name, env);
|
return org.luaj.vm2.LoadState.load(is, file, env);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return LuaValue.valueOf(e.toString());
|
return LuaValue.valueOf(e.toString());
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user