From 8a0d082b374d7bbf4c6ed6234bda501d7e2f0aa7 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 6 Jul 2006 18:14:14 +0000
Subject: [PATCH] Fix bug introduced in rev 1.198, don't [re]define argc unless
 A) there were additional args passed to load(), or B) it's a
 background-loaded script (in which case we always define argv now as well).
 This fixes the Deuce-reported bug: "When chat_sec.js calls irc.js, argc is
 apparently zero."

---
 src/sbbs3/js_global.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index 59a2263aac..0727071879 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -302,7 +302,7 @@ js_load(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	if((filename=js_ValueToStringBytes(cx, argv[argn++], NULL))==NULL)
 		return(JS_FALSE);
 
-	if(argc>argn) {
+	if(argc>argn || background) {
 
 		if((js_argv=JS_NewArrayObject(exec_cx, 0, NULL)) == NULL)
 			return(JS_FALSE);
@@ -312,9 +312,10 @@ js_load(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 
 		for(i=argn; i<argc; i++)
 			JS_SetElement(exec_cx, js_argv, i-argn, js_CopyValue(cx,argv[i],exec_cx,&val));
+
+		JS_DefineProperty(exec_cx, exec_obj, "argc", INT_TO_JSVAL(argc-argn)
+			,NULL,NULL,JSPROP_ENUMERATE|JSPROP_READONLY);
 	}
-	JS_DefineProperty(exec_cx, exec_obj, "argc", INT_TO_JSVAL(argc-argn)
-		,NULL,NULL,JSPROP_ENUMERATE|JSPROP_READONLY);
 
 	errno = 0;
 	if(isfullpath(filename))
-- 
GitLab