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