From b9692cfdc8a8c0ec2ee36c27b4ba38827629d3c1 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Sat, 14 Feb 2009 02:05:55 +0000
Subject: [PATCH] Add IC and CUU tests

---
 exec/irc.js         |  8 ++++++++
 exec/termtest.js    | 24 ++++++++++++++++++++++++
 exec/typehtml.js    | 25 +++++++++++++------------
 exec/xjs_handler.js |  7 ++++---
 4 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/exec/irc.js b/exec/irc.js
index f3ec4f4462..12f79a2d95 100644
--- a/exec/irc.js
+++ b/exec/irc.js
@@ -6,6 +6,14 @@
 // $Id$
 
 // disable auto-termination.
+var old_auto_terminate=js.auto_terminate;
+
+function restore_auto_terminate()
+{
+	js.auto_terminate=old_auto_terminate;
+}
+
+js.on_exit("restore_auto_terminate");
 js.auto_terminate=false;
 
 const REVISION = "$Revision$".split(' ')[1];
diff --git a/exec/termtest.js b/exec/termtest.js
index d3b88618bf..ca34c70dee 100644
--- a/exec/termtest.js
+++ b/exec/termtest.js
@@ -514,12 +514,36 @@ function test_ctrl_seqs(results)
 		/* No intermediate bytes */
 		"ICH":{
 			char:"@",
+			test:function(results) {
+				if(results.ctrl.BS) {
+					console.writeln("InsertCharTest\b\b\b\b\033[@\b\b\b\b\033[@");
+					return(console.yesno('Are there spaces in "Insert Char Test"'));
+				}
+				return(null);
+			},
 		},
 		"CUU":{
 			char:"A",
+			test:function(results) {
+				console.writeln(" Line 1");
+				console.crlf();
+				console.writeln(" \033[ALine 2");
+				console.crlf();
+				console.crlf();
+				console.writeln(" \033[2ALine 3");
+				console.writeln(" Line 4");
+				return(console.yesno('Does "Line 1" to "Line 4" line up with no gaps'));
+			}
 		},
 		"CUD":{
 			char:"B",
+			test:function(results) {
+				if(results.ctrl_seqs.CUU) {
+				}
+				else if(results.ctrl.FF) {
+				}
+				return(null);
+			}
 		},
 		"CUF":{
 			char:"C",
diff --git a/exec/typehtml.js b/exec/typehtml.js
index 3fecf39236..5fc0ca6ab7 100644
--- a/exec/typehtml.js
+++ b/exec/typehtml.js
@@ -8,22 +8,23 @@
 
 load("sbbsdefs.js");	// USER_HTML
 
-var NORMAL			="\1N\1H"
-var HEADING1		="\1H\1Y"
-var HEADING2		="\1H\1C"
-var HEADING3		="\1H\1M"
-var HEADING4		="\1H\1G"
-var HEADING5		="\1H\1B"	
-var HEADING6		="\1H\1R"
-var BOLD			="\1H\1C\x014"
-var ITALIC			="\1H\1G\x012"
-var UNDERLINE		="\1H\1W\x016"
-var STRIKE_THROUGH	="\1N\1K\x017"
-var LIST_ITEM 		="\1N\r\n    \1H\1Wo \1G"
+var NORMAL			="\1N\1H";
+var HEADING1		="\1H\1Y";
+var HEADING2		="\1H\1C";
+var HEADING3		="\1H\1M";
+var HEADING4		="\1H\1G";
+var HEADING5		="\1H\1B";
+var HEADING6		="\1H\1R";
+var BOLD			="\1H\1C\x014";
+var ITALIC			="\1H\1G\x012";
+var UNDERLINE		="\1H\1W\x016";
+var STRIKE_THROUGH	="\1N\1K\x017";
+var LIST_ITEM 		="\1N\r\n    \1H\1Wo \1G";
 
 var f;
 var mono=true;
 var i;
+var buf;
 
 for(i in argv) {
 	switch(argv[i].toLowerCase()) {
diff --git a/exec/xjs_handler.js b/exec/xjs_handler.js
index e790d324c3..97e2960ccb 100644
--- a/exec/xjs_handler.js
+++ b/exec/xjs_handler.js
@@ -4,15 +4,13 @@
 
 var xjs_filename;
 
-if(this.http_request!=undefined)	/* Requested through web-server */
+if(this.http_request!==undefined)	/* Requested through web-server */
 	xjs_filename = http_request.real_path;
 else
 	xjs_filename = argv[0];
 
 var cwd='';
 
-xjs_load(xjs_filename);
-
 function xjs_compile(filename) {
 	if(cwd != '') {
 		if(filename.search(/^((\/)|([A-Za-z]:[\/\\]))/)==-1)
@@ -111,3 +109,6 @@ function xjs_load(filename)
 	load(xjs_compile(filename));
 	cwd=old_cwd;
 }
+
+xjs_load(xjs_filename);
+
-- 
GitLab