Mercurial Hosting > luan
diff core/src/luan/modules/PackageLuan.java @ 301:a6bf8ff720f8
add java security
git-svn-id: https://luan-java.googlecode.com/svn/trunk@302 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Wed, 17 Dec 2014 12:35:57 +0000 |
parents | a74559240b4f |
children | d34be4588556 |
line wrap: on
line diff
--- a/core/src/luan/modules/PackageLuan.java Tue Dec 16 13:13:33 2014 +0000 +++ b/core/src/luan/modules/PackageLuan.java Wed Dec 17 12:35:57 2014 +0000 @@ -41,16 +41,20 @@ } public static Object load(LuanState luan,String modName) throws LuanException { - if( modName.startsWith("java:") ) - return JavaLuan.load(luan,modName.substring(5)); LuanTable loaded = loaded(luan); Object mod = loaded.get(modName); if( mod == null ) { - String src = read(luan,modName+".luan"); - if( src == null ) - return null; - LuanFunction loader = BasicLuan.load(luan,src,modName,null,false); - mod = Luan.first(luan.call(loader,"<require \""+modName+"\">",new Object[]{modName})); + if( modName.startsWith("java:") ) { + mod = JavaLuan.load(luan,modName.substring(5)); + } else { + String src = read(luan,modName+".luan"); + if( src == null ) + return null; + LuanFunction loader = BasicLuan.load(luan,src,modName,null,false); + mod = Luan.first( + luan.call(loader,"<require \""+modName+"\">",new Object[]{modName}) + ); + } if( mod != null ) { loaded.put(modName,mod); } else { @@ -68,6 +72,10 @@ LuanTable t = IoLuan.Uri(luan,uri); if( t == null ) return null; + LuanFunction existsFn = (LuanFunction)t.get("exists"); + boolean exists = (Boolean)Luan.first(luan.call(existsFn)); + if( !exists ) + return null; LuanFunction reader = (LuanFunction)t.get("read_text"); return (String)Luan.first(luan.call(reader)); }