From 39e1417931ae7a1715c82782f8b3f9a6882a147a Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 6 Jan 2006 00:03:11 +0000
Subject: [PATCH] alert() returns the string printed. The variable 'exit_code'
 is only used for the return value if it's a number. Bug-fix: sbbs_srand()
 wasn't being called - random number generator wasn't being seeded.

---
 src/sbbs3/jsexec.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c
index 894c56a916..48c36c44e9 100644
--- a/src/sbbs3/jsexec.c
+++ b/src/sbbs3/jsexec.c
@@ -392,6 +392,8 @@ js_alert(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 
 	fprintf(confp,"!%s\n",JS_GetStringBytes(str));
 
+	*rval = argv[0];
+
     return(JS_TRUE);
 }
 
@@ -735,7 +737,7 @@ long js_exec(const char *fname, char** args)
 
 	JS_GetProperty(js_cx, js_glob, "exit_code", &rval);
 
-	if(rval!=JSVAL_VOID) {
+	if(rval!=JSVAL_VOID && JSVAL_IS_NUMBER(rval)) {
 		fprintf(statfp,"Using JavaScript exit_code: %s\n",JS_GetStringBytes(JS_ValueToString(js_cx,rval)));
 		JS_ValueToInt32(js_cx,rval,&result);
 	}
@@ -963,6 +965,9 @@ int main(int argc, char **argv, char** environ)
 	if(nonbuffered_con)
 		setvbuf(confp,NULL,_IONBF,0);
 
+	/* Seed random number generator */
+	sbbs_srand();
+
 	/* Install Ctrl-C/Break signal handler here */
 #if defined(_WIN32)
 	SetConsoleCtrlHandler(ControlHandler, TRUE /* Add */);
-- 
GitLab