about summary refs log tree commit diff
path: root/src/engine/e_console.c
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-03-01 14:36:36 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-03-01 14:36:36 +0000
commit0747c2dff9289db6204b82501d03447f3ec6cc99 (patch)
treeecca83ee860dfa5293f4dba9233820579a4bf4ac /src/engine/e_console.c
parent622dbc6f3e5a5f398af8c6ef98d057a200c813a0 (diff)
downloadzcatch-0747c2dff9289db6204b82501d03447f3ec6cc99.tar.gz
zcatch-0747c2dff9289db6204b82501d03447f3ec6cc99.zip
fixed remote console. some gui tweaks aswell.
Diffstat (limited to 'src/engine/e_console.c')
-rw-r--r--src/engine/e_console.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/engine/e_console.c b/src/engine/e_console.c
index db0398b4..27add750 100644
--- a/src/engine/e_console.c
+++ b/src/engine/e_console.c
@@ -1,6 +1,7 @@
 #include "e_system.h"
 #include "e_console.h"
 #include "e_config.h"
+#include "e_linereader.h"
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -339,7 +340,7 @@ void console_print(const char *str)
 		print_callback(str);
 }
 
-void console_execute(const char *str)
+void console_execute_line(const char *str)
 {
 	LEXER_RESULT result;
 	int error;
@@ -374,6 +375,28 @@ void console_execute(const char *str)
 	}
 }
 
+void console_execute_file(const char *filename)
+{
+	IOHANDLE file;
+	file = io_open(filename, IOFLAG_READ);
+	
+	if(file)
+	{
+		char *line;
+		LINEREADER lr;
+		
+		dbg_msg("console", "executing '%s'", filename);
+		linereader_init(&lr, file);
+
+		while((line = linereader_get(&lr)))
+			console_execute_line(line);
+
+		io_close(file);
+	}
+	else
+		dbg_msg("console", "failed to open '%s'", filename);
+}
+
 static void echo_command(void *result, void *user_data)
 {
 	const char *str;