comparison core/src/luan/modules/PackageLuan.java @ 296:7ea6dfdf81ba

add env param to load_file() git-svn-id: https://luan-java.googlecode.com/svn/trunk@297 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Mon, 15 Dec 2014 08:03:32 +0000
parents 4a0a84c38617
children 899253043270
comparison
equal deleted inserted replaced
295:1f4cc8505308 296:7ea6dfdf81ba
81 } 81 }
82 } 82 }
83 return mod; 83 return mod;
84 } 84 }
85 85
86 static LuanFunction loader(LuanState luan,String name,boolean loading) throws LuanException { 86 static LuanFunction loader(LuanState luan,String name,boolean loading,LuanTable env) throws LuanException {
87 LuanTable t = IoLuan.Uri(luan,name,loading); 87 LuanTable t = IoLuan.Uri(luan,name,loading);
88 if( t == null ) 88 if( t == null )
89 return null; 89 return null;
90 LuanFunction loader = (LuanFunction)t.get("loader"); 90 LuanFunction loader = (LuanFunction)t.get("loader");
91 if( loader == null ) 91 if( loader == null )
92 return null; 92 return null;
93 return (LuanFunction)Luan.first(luan.call(loader,new Object[]{name})); 93 return (LuanFunction)Luan.first(luan.call(loader,new Object[]{name,env}));
94 } 94 }
95 95
96 public static Object[] search(LuanState luan,String modName) throws LuanException { 96 public static Object[] search(LuanState luan,String modName) throws LuanException {
97 LuanFunction fn = loader(luan,modName,true); 97 LuanFunction fn = loader(luan,modName,true,null);
98 return fn==null ? null : new Object[]{fn,modName}; 98 return fn==null ? null : new Object[]{fn,modName};
99 } 99 }
100 100
101 101
102 static LuanFunction load_lib(LuanState luan,String path) 102 static LuanFunction load_lib(LuanState luan,String path)