diff src/luan/modules/IoLuan.java @ 1181:51d1342e25ad

luanhost password handling
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 20 Feb 2018 19:50:30 -0700
parents e54ae41e9501
children 5d0cbd908582
line wrap: on
line diff
--- a/src/luan/modules/IoLuan.java	Wed Feb 14 16:49:56 2018 -0700
+++ b/src/luan/modules/IoLuan.java	Tue Feb 20 19:50:30 2018 -0700
@@ -59,8 +59,8 @@
 		public void close() throws IOException;
 	}
 
-	public static LuanTable textWriter(final PrintStream out) {
-		LuanWriter luanWriter = new LuanWriter() {
+	private static LuanWriter luanWriter(final PrintStream out) {
+		return new LuanWriter() {
 
 			public void write(LuanState luan,Object... args) throws LuanException {
 				for( Object obj : args ) {
@@ -72,11 +72,14 @@
 				out.close();
 			}
 		};
-		return writer(luanWriter);
 	}
 
-	public static LuanTable textWriter(final Writer out) {
-		LuanWriter luanWriter = new LuanWriter() {
+	public static LuanTable textWriter(final PrintStream out) {
+		return writer(luanWriter(out));
+	}
+
+	private static LuanWriter luanWriter(final Writer out) {
+		return new LuanWriter() {
 
 			public void write(LuanState luan,Object... args) throws LuanException, IOException {
 				for( Object obj : args ) {
@@ -88,7 +91,10 @@
 				out.close();
 			}
 		};
-		return writer(luanWriter);
+	}
+
+	public static LuanTable textWriter(final Writer out) {
+		return writer(luanWriter(out));
 	}
 
 	private static LuanTable writer(LuanWriter luanWriter) {
@@ -340,6 +346,12 @@
 			return binaryWriter(new BufferedOutputStream(outputStream()));
 		}
 
+		public void write_text(LuanState luan,Object... args) throws LuanException, IOException {
+			LuanWriter luanWriter = luanWriter(new BufferedWriter(new OutputStreamWriter(outputStream())));
+			luanWriter.write(luan,args);
+			luanWriter.close();
+		}
+
 		@Override public LuanTable table() {
 			LuanTable tbl = super.table();
 			try {
@@ -352,6 +364,9 @@
 				tbl.rawPut( "binary_writer", new LuanJavaFunction(
 					LuanIO.class.getMethod( "binary_writer" ), this
 				) );
+				tbl.rawPut( "write_text", new LuanJavaFunction(
+					LuanIO.class.getMethod( "write_text", LuanState.class, new Object[0].getClass() ), this
+				) );
 			} catch(NoSuchMethodException e) {
 				throw new RuntimeException(e);
 			}