From b8c28a13601643263830c906cfce3b2dbe996748 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Sat, 14 Nov 2015 05:33:38 +0000
Subject: [PATCH] Create stdin, stdout, and stderr global File objects in
 jsexec (and jsdoor).

---
 src/sbbs3/jsexec.c | 16 ++++++++++++++++
 src/sbbs3/sbbs.h   |  1 +
 2 files changed, 17 insertions(+)

diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c
index f26a379164..13b407584f 100644
--- a/src/sbbs3/jsexec.c
+++ b/src/sbbs3/jsexec.c
@@ -802,6 +802,22 @@ static BOOL js_init(char** environ)
 		return(FALSE);
 	}
 
+	/* STDIO objects */
+	if(!js_CreateFileObject(js_cx, js_glob, "stdout", stdout)) {
+		JS_ENDREQUEST(js_cx);
+		return(FALSE);
+	}
+
+	if(!js_CreateFileObject(js_cx, js_glob, "stdin", stdin)) {
+		JS_ENDREQUEST(js_cx);
+		return(FALSE);
+	}
+
+	if(!js_CreateFileObject(js_cx, js_glob, "stderr", stderr)) {
+		JS_ENDREQUEST(js_cx);
+		return(FALSE);
+	}
+
 	return(TRUE);
 }
 
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 8dad968f44..57e5023c97 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -1258,6 +1258,7 @@ extern "C" {
 
 	/* js_file.c */
 	DLLEXPORT JSObject* DLLCALL js_CreateFileClass(JSContext* cx, JSObject* parent);
+	DLLEXPORT JSObject* DLLCALL js_CreateFileObject(JSContext* cx, JSObject* parent, char *name, FILE* fp);
 
 	/* js_sprintf.c */
 	DLLEXPORT char*		DLLCALL js_sprintf(JSContext* cx, uint argn, unsigned argc, jsval *argv);
-- 
GitLab