diff --git a/Makefile.am b/Makefile.am index ae35ca0..35d9951 100644 --- a/Makefile.am +++ b/Makefile.am @@ -184,7 +184,7 @@ clean-local: -e d "$<"`" \ -e "s/^#/\/\/ #/" \ -e "s/VERSION/\"@VERSION@\"/g" "$<" >"$@.pre" && \ - \ + objcopy \ -I binary `echo $(host_cpu) | \ grep -q '^i[0-9]86$$' && \ echo ' -O elf32-i386 -B i386' || \ diff --git a/Makefile.in b/Makefile.in index a310b45..5823fd5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1075,7 +1075,7 @@ clean-local: -e d "$<"`" \ -e "s/^#/\/\/ #/" \ -e "s/VERSION/\"@VERSION@\"/g" "$<" >"$@.pre" && \ - \ + objcopy \ -I binary `echo $(host_cpu) | \ grep -q '^i[0-9]86$$' && \ echo ' -O elf32-i386 -B i386' || \ diff --git a/shellinabox/vt100.js b/shellinabox/vt100.js index 032ae8c..d5ba1c1 100644 --- a/shellinabox/vt100.js +++ b/shellinabox/vt100.js @@ -1183,7 +1183,8 @@ VT100.prototype.clearRegion = function(x, y, w, h, style) { // not have a scrollback buffer. In that case, we should just remove all // child nodes. if (!this.numScrollbackLines && - w == this.terminalWidth && h == this.terminalHeight) { + w == this.terminalWidth && h == this.terminalHeight && + !style) { var console = this.console[this.currentScreen]; while (console.lastChild) { console.removeChild(console.lastChild); @@ -1344,7 +1345,8 @@ VT100.prototype.scrollRegion = function(x, y, w, h, incX, incY, style) { if (this.numScrollbackLines > 0 || console.childNodes.length > this.numScrollbackLines+y+h+incY) { for (var i = -incY; i-- > 0; ) { - this.insertBlankLine(this.numScrollbackLines + y + h + incY); + this.insertBlankLine(this.numScrollbackLines + y + h + incY, + style); } } } @@ -1356,7 +1358,7 @@ VT100.prototype.scrollRegion = function(x, y, w, h, incX, incY, style) { console.removeChild(console.childNodes[this.numScrollbackLines+y+h]); } for (var i = incY; i--; ) { - this.insertBlankLine(this.numScrollbackLines + y); + this.insertBlankLine(this.numScrollbackLines + y, style); } } } else { @@ -1666,7 +1668,7 @@ VT100.prototype.handleKey = function(event) { case 9: /* Tab */ ch = '\u0009'; break; case 10: /* Return */ ch = '\u000A'; break; case 13: /* Enter */ ch = this.crLfMode ? - '\r\n' : '\n'; break; + '\r\n' : '\r'; break; case 16: /* Shift */ return; case 17: /* Ctrl */ return; case 18: /* Alt */ return; @@ -2304,6 +2306,8 @@ VT100.prototype.setMode = function(state) { case 9: this.mouseReporting = state; break; case 25: if (state) { this.showCursor(); } else { this.hideCursor(); } break; + case 1047: + case 1049: case 47: this.enableAlternateScreen(state); break; default: break; }