diff src/luan/lib/BasicLib.java @ 115:eacf6ce1b47d

add IoLib git-svn-id: https://luan-java.googlecode.com/svn/trunk@116 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Thu, 29 May 2014 09:26:44 +0000
parents f5af13062b10
children 1ff1c32417eb
line wrap: on
line diff
--- a/src/luan/lib/BasicLib.java	Mon May 26 05:39:54 2014 +0000
+++ b/src/luan/lib/BasicLib.java	Thu May 29 09:26:44 2014 +0000
@@ -6,6 +6,8 @@
 import java.lang.reflect.Method;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
 import luan.Luan;
 import luan.LuanState;
 import luan.LuanTable;
@@ -63,12 +65,15 @@
 	}
 
 	public static void print(LuanState luan,Object... args) throws LuanException {
+		LuanFunction write = (LuanFunction)luan.get("Io.stdout.write");
+		List list = new ArrayList();
 		for( int i=0; i<args.length; i++ ) {
 			if( i > 0 )
-				luan.out.print('\t');
-			luan.out.print( luan.JAVA.toString(args[i]) );
+				list.add("\t");
+			list.add(args[i]);
 		}
-		luan.out.println();
+		list.add("\n");
+		write.call(luan,list.toArray());
 	}
 
 	public static String type(Object obj) {
@@ -83,16 +88,12 @@
 	}
 
 
-	public static LuanFunction load_file(LuanState luan,String fileName) throws LuanException {
-		try {
-			String src = fileName==null ? Utils.readAll(new InputStreamReader(System.in)) : Utils.read(new File(fileName));
-			return load(luan,src,fileName,false);
-		} catch(IOException e) {
-			throw luan.JAVA.exception(e);
-		}
+	public static LuanFunction load_file(LuanState luan,String fileName) throws LuanException, IOException {
+		String src = fileName==null ? Utils.readAll(new InputStreamReader(System.in)) : Utils.read(new File(fileName));
+		return load(luan,src,fileName,false);
 	}
 
-	public static Object do_file(LuanState luan,String fileName) throws LuanException {
+	public static Object do_file(LuanState luan,String fileName) throws LuanException, IOException {
 		LuanFunction fn = load_file(luan,fileName);
 		return luan.JAVA.call(fn,null);
 	}