From 756e91b4220bf9d6109ed2583632b76673a6948c Mon Sep 17 00:00:00 2001 From: deuce <> Date: Fri, 19 Mar 2010 21:47:49 +0000 Subject: [PATCH] Use HTML and a DIV rather than plaintext --- src/ZuulTerm/chrome/content/Term.js | 34 ++++++++++++++++++++---- src/ZuulTerm/chrome/content/default.html | 3 ++- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/ZuulTerm/chrome/content/Term.js b/src/ZuulTerm/chrome/content/Term.js index 9523f284d8..6a4f8895ef 100644 --- a/src/ZuulTerm/chrome/content/Term.js +++ b/src/ZuulTerm/chrome/content/Term.js @@ -1,12 +1,35 @@ var connection=null; -function writeText(data) +function writeHTML(data) { - var term=document.getElementById("frame").contentDocument.getElementById("terminal"); - var win=document.getElementById("frame").contentWindow; + var frame=document.getElementById("frame"); + var doc=frame.contentDocument; + var win=frame.contentWindow; + var term=doc.getElementById("terminal"); + var top; term.innerHTML += data; - win.scroll(0, term.clientHeight); + if(term.scroll != undefined && term.clientHeight != undefined) { + term.scroll(0, term.clientHeight); + } + else if(term.scrollHeight != undefined && term.scrollTop != undefined) { + top=term.scrollHeight-term.clientHeight; + if(top < 0) + top=0; + if(term.scrollTop != top) + term.scrollTop=top; + } +} + +function writeText(data) +{ + data=data.replace(/&/g,'&'); + data=data.replace(/</g,'<'); + data=data.replace(/>/g,'>'); + data=data.replace(/'/g,'''); + data=data.replace(/"/g,'"'); + data=data.replace(/ /g,' '); + writeHTML(data); } function handleCtrl(byte) @@ -17,9 +40,10 @@ function handleCtrl(byte) switch(byte) { case '\n': + writeHTML('<br>'); + break; case '\t': case '\r': - writeText(byte); break; case '\b': term.innerHTML = term.innerHTML.replace(/[^\x00-\x1F]$/,''); diff --git a/src/ZuulTerm/chrome/content/default.html b/src/ZuulTerm/chrome/content/default.html index 6462923c2d..a2c0dd8728 100644 --- a/src/ZuulTerm/chrome/content/default.html +++ b/src/ZuulTerm/chrome/content/default.html @@ -1,2 +1,3 @@ <html> - <body><plaintext id="terminal"> + <body><div id="terminal" width="640px" height="400px"></textarea></body> +</html> \ No newline at end of file -- GitLab