From b7c2ba58c839a747eb8d7750e2fd21689ad43842 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 12 Oct 2005 08:44:40 +0000
Subject: [PATCH] Bug-fix: prompt() no longer returns the \n with the string
 (whoops). js_exec() now displays the number of seconds/milliseconds it took
 to compile and execute a script (if either duration is greater than 0).

---
 src/sbbs3/jsexec.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c
index 377126f210..3827976f31 100644
--- a/src/sbbs3/jsexec.c
+++ b/src/sbbs3/jsexec.c
@@ -430,7 +430,7 @@ js_prompt(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	if(!fgets(instr,sizeof(instr),stdin))
 		return(JS_TRUE);
 
-	if((str=JS_NewStringCopyZ(cx, instr))==NULL)
+	if((str=JS_NewStringCopyZ(cx, truncnl(instr)))==NULL)
 	    return(JS_FALSE);
 
 	*rval = STRING_TO_JSVAL(str);
@@ -613,6 +613,8 @@ long js_exec(const char *fname, char** args)
 	jsval		val;
 	jsval		rval=JSVAL_VOID;
 	int32		result=0;
+	clock_t		start;
+	clock_t		diff;
 	
 	if(fname!=NULL) {
 		if(strcspn(fname,"/\\")==strlen(fname)) {
@@ -707,14 +709,27 @@ long js_exec(const char *fname, char** args)
 	if(fp!=NULL && fp!=stdin)
 		fclose(fp);
 
+	start=msclock();
 	if((js_script=JS_CompileScript(js_cx, js_glob, js_buf, js_buflen, fname==NULL ? NULL : path, 1))==NULL) {
 		lprintf(LOG_ERR,"!Error compiling script from %s",path);
 		return(-1);
 	}
-	JS_ExecuteScript(js_cx, js_glob, js_script, &rval);
+	if((diff=msclock()-start) > 0)
+		fprintf(statfp,"%s compiled in %u.%03u seconds\n"
+			,path
+			,diff/MSCLOCKS_PER_SEC
+			,diff%MSCLOCKS_PER_SEC);
 
+	start=msclock();
+	JS_ExecuteScript(js_cx, js_glob, js_script, &rval);
 	js_EvalOnExit(js_cx, js_glob, &branch);
 
+	if((diff=msclock()-start) > 0)
+		fprintf(statfp,"%s executed in %u.%03u seconds\n"
+			,path
+			,diff/MSCLOCKS_PER_SEC
+			,diff%MSCLOCKS_PER_SEC);
+
 	JS_GetProperty(js_cx, js_glob, "exit_code", &rval);
 
 	if(rval!=JSVAL_VOID) {
-- 
GitLab