diff --git a/jsdoc.json b/jsdoc.json index 28ca16cb..66b174e5 100644 --- a/jsdoc.json +++ b/jsdoc.json @@ -16,6 +16,9 @@ "recurse": true, "verbose": true }, + "plugins": [ + "plugins/markdown" + ], "templates": { "cleverLinks": false, "monospaceLinks": false diff --git a/package.json b/package.json index 055ef340..48882006 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,24 @@ { "name": "xterm", "version": "0.33.0", - "ignore": ["demo", "test", ".gitignore"], + "ignore": [ + "demo", + "test", + ".gitignore" + ], "main": "src/xterm.js", "repository": "https://github.com/sourcelair/xterm.js", "license": "MIT", "devDependencies": { + "chai": "3.5.0", + "docdash": "0.4.0", "express": "4.13.4", "express-ws": "2.0.0-rc.1", - "pty.js": "0.3.0", - "mocha": "2.5.3", - "chai": "3.5.0", + "glob": "^7.0.5", "jsdoc": "3.4.0", - "docdash": "0.4.0" + "mocha": "2.5.3", + "pty.js": "0.3.0", + "sleep": "^3.0.1" }, "scripts": { "start": "node demo/app", diff --git a/src/xterm.js b/src/xterm.js index f506e8e1..89473aaf 100644 --- a/src/xterm.js +++ b/src/xterm.js @@ -149,6 +149,8 @@ * - cursorBlink (boolean): Whether the terminal cursor blinks * * @public + * @class Xterm Xterm + * @alias module:xterm/src/xterm */ function Terminal(options) { var self = this; @@ -315,7 +317,9 @@ inherits(Terminal, EventEmitter); - // back_color_erase feature for xterm. + /** + * back_color_erase feature for xterm. + */ Terminal.prototype.eraseAttr = function() { // if (this.is('screen')) return this.defAttr; return (this.defAttr & ~0x1ff) | (this.curAttr & 0x1ff); @@ -431,8 +435,6 @@ /** * Focus the terminal. Delegates focus handling to the terminal's DOM element. - * - * @public */ Terminal.prototype.focus = function() { return this.element.focus(); @@ -457,8 +459,6 @@ /** * Blur the terminal. Delegates blur handling to the terminal's DOM element. - * - * @public */ Terminal.prototype.blur = function() { return this.element.blur(); @@ -492,9 +492,9 @@ Terminal.bindBlur(this); }; - /** - * Clears all selected text, inside the terminal. - */ + /** + * Clears all selected text, inside the terminal. + */ Terminal.prototype.clearSelection = function() { var selectionBaseNode = window.getSelection().baseNode; @@ -503,11 +503,11 @@ } }; - /** - * This function temporarily enables (leases) the contentEditable value of the terminal, which - * should be set back to false within 5 seconds at most. - */ - Terminal.prototype.leaseContentEditable = function (ms, callback) { + /** + * This function temporarily enables (leases) the contentEditable value of the terminal, which + * should be set back to false within 5 seconds at most. + */ + Terminal.prototype.leaseContentEditable = function (ms, callback) { var term = this; term.element.contentEditable = true; @@ -585,8 +585,11 @@ }; - /* + /** * Apply key handling to the terminal + * + * @param {Xterm} term The terminal on which to bind key handling + * @static */ Terminal.bindKeys = function(term) { on(term.element, 'keydown', function(ev) { @@ -606,7 +609,7 @@ * @returns {string} * @static */ - Terminal.prepareCopiedTextForClipboard = function (text) { + Terminal.prepareCopiedTextForClipboard = function (text) { var space = String.fromCharCode(32), nonBreakingSpace = String.fromCharCode(160), allNonBreakingSpaces = new RegExp(nonBreakingSpace, 'g'), @@ -637,41 +640,46 @@ }); }; - /** - * Cancel the cut event completely - */ - Terminal.bindCut = function(term) { + /** + * Cancel the cut event completely. + * @param {Xterm} term The terminal on which to bind the cut event handling functionality. + * @static + */ + Terminal.bindCut = function(term) { on(term.element, 'cut', function (ev) { ev.preventDefault(); }); }; + /** + * Do not perform the "drop" event. Altering the contents of the + * terminal with drag n drop is unwanted behavior. + * @param {Xterm} term The terminal on which to bind the drop event handling functionality. + * @static + */ Terminal.bindDrop = function (term) { - /* - * Do not perform the "drop" event. Altering the contents of the - * terminal with drag n drop is unwanted behavior. - */ on(term.element, 'drop', function (ev) { term.cancel(ev, true); }); }; - + /** + * Cancel click handling on the given terminal + * @param {Xterm} term The terminal on which to bind the click event handling functionality. + * @static + */ Terminal.click = function (term) { - /* - * Do not perform the "drop" event. Altering the contents of the - * terminal with drag n drop is unwanted behavior. - */ on(term.element, 'click', function (ev) { term.cancel(ev, true); }); }; - /* + /** * Insert the given row to the terminal or produce a new one * if no row argument is passed. Return the inserted row. + * @param {HTMLElement} row (optional) The row to append to the terminal. */ Terminal.prototype.insertRow = function (row) { if (typeof row != 'object') { @@ -689,8 +697,6 @@ * Opens the terminal within an element. * * @param {HTMLElement} parent The element to create the terminal within. - * - * @public */ Terminal.prototype.open = function(parent) { var self=this, i=0, div; @@ -809,22 +815,19 @@ }; - // XTerm mouse events - // http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Mouse%20Tracking - // To better understand these - // the xterm code is very helpful: - // Relevant files: - // button.c, charproc.c, misc.c - // Relevant functions in xterm/button.c: - // BtnCode, EmitButtonCode, EditorButton, SendMousePosition + /** + * XTerm mouse events + * http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Mouse%20Tracking + * To better understand these + * the xterm code is very helpful: + * Relevant files: + * button.c, charproc.c, misc.c + * Relevant functions in xterm/button.c: + * BtnCode, EmitButtonCode, EditorButton, SendMousePosition + */ Terminal.prototype.bindMouse = function() { - var el = this.element - , self = this - , pressed = 32; - - var wheelEvent = 'onmousewheel' in this.context - ? 'mousewheel' - : 'DOMMouseScroll'; + var el = this.element, self = this, pressed = 32; + var wheelEvent = ('onmousewheel' in this.context) ? 'mousewheel' : 'DOMMouseScroll'; // mouseup, mousedown, mousewheel // left click: ^[[M 3<^[[M#3< @@ -1150,8 +1153,6 @@ /** * Destroys the terminal. - * - * @public */ Terminal.prototype.destroy = function() { this.readable = false; @@ -1177,28 +1178,27 @@ INVISIBLE: 16 } - /* - * Rendering Engine - * - * In the screen buffer, each character - * is stored as a an array with a character - * and a 32-bit integer. - * First value: a utf-16 character. - * Second value: - * Next 9 bits: background color (0-511). - * Next 9 bits: foreground color (0-511). - * Next 14 bits: a mask for misc. flags: - * 1=bold, 2=underline, 4=blink, 8=inverse, 16=invisible - */ - /** - * Refreshes terminal content within two rows (inclusive). + * Refreshes (re-renders) terminal content within two rows (inclusive) + * + * Rendering Engine: + * + * In the screen buffer, each character is stored as a an array with a character + * and a 32-bit integer: + * - First value: a utf-16 character. + * - Second value: + * - Next 9 bits: background color (0-511). + * - Next 9 bits: foreground color (0-511). + * - Next 14 bits: a mask for misc. flags: + * - 1=bold + * - 2=underline + * - 4=blink + * - 8=inverse + * - 16=invisible * * @param {number} start The row to start from (between 0 and terminal's height terminal - 1) * @param {number} end The row to end at (between fromRow and terminal's height terminal - 1) * @param {boolean} queue Whether the refresh should ran right now or be queued - * - * @public */ Terminal.prototype.refresh = function(start, end, queue) { var self = this; @@ -1401,6 +1401,9 @@ this.emit('refresh', {element: this.element, start: start, end: end}); }; + /** + * Display the cursor element + */ Terminal.prototype.showCursor = function() { if (!this.cursorState) { this.cursorState = 1; @@ -1408,6 +1411,9 @@ } }; + /** + * Scroll the terminal + */ Terminal.prototype.scroll = function() { var row; @@ -1448,6 +1454,10 @@ this.updateRange(this.scrollBottom); }; + /** + * Scroll the display of the terminal + * @param {number} disp The number of lines to scroll down (negatives scroll up). + */ Terminal.prototype.scrollDisp = function(disp) { this.ydisp += disp; @@ -1462,10 +1472,7 @@ /** * Writes text to the terminal. - * * @param {string} text The text to write to the terminal. - * - * @public */ Terminal.prototype.write = function(data) { var l = data.length, i = 0, j, cs, ch, code, low, ch_width, row; @@ -2514,6 +2521,10 @@ this.refresh(this.refreshStart, this.refreshEnd); }; + /** + * Writes text to the terminal, followed by a break line character (\n). + * @param {string} text The text to write to the terminal. + */ Terminal.prototype.writeln = function(data) { this.write(data + '\r\n'); }; @@ -2530,8 +2541,12 @@ this.customKeydownHandler = customKeydownHandler; } - // Key Resources: - // https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent + /** + * Handle a keydown event + * Key Resources: + * - https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent + * @param {KeyboardEvent} ev The keydown event to be handled. + */ Terminal.prototype.keyDown = function(ev) { if (this.customKeydownHandler && !this.customKeydownHandler(ev)) { return; @@ -2570,6 +2585,7 @@ * returned value is the new key code to pass to the PTY. * * Reference: http://invisible-island.net/xterm/ctlseqs/ctlseqs.html + * @param {KeyboardEvent} ev The keyboard event to be translated to key escape sequence. */ Terminal.prototype.evaluateKeyEscapeSequence = function(ev) { var result = { @@ -2758,11 +2774,20 @@ return result; }; + /** + * Set the G level of the terminal + * @param g + */ Terminal.prototype.setgLevel = function(g) { this.glevel = g; this.charset = this.charsets[g]; }; + /** + * Set the charset for the given G level of the terminal + * @param g + * @param charset + */ Terminal.prototype.setgCharset = function(g, charset) { this.charsets[g] = charset; if (this.glevel === g) { @@ -2770,6 +2795,12 @@ } }; + /** + * Handle a keypress event. + * Key Resources: + * - https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent + * @param {KeyboardEvent} ev The keypress event to be handled. + */ Terminal.prototype.keyPress = function(ev) { var key; @@ -2809,6 +2840,10 @@ return false; }; + /** + * Send data for handling to the terminal + * @param {string} data + */ Terminal.prototype.send = function(data) { var self = this; @@ -2822,6 +2857,10 @@ this.queue += data; }; + /** + * Ring the bell. + * Note: We could do sweet things with webaudio here + */ Terminal.prototype.bell = function() { if (!this.visualBell) return; var self = this; @@ -2832,6 +2871,9 @@ if (this.popOnBell) this.focus(); }; + /** + * Log the current state to the console. + */ Terminal.prototype.log = function() { if (!this.debug) return; if (!this.context.console || !this.context.console.log) return; @@ -2839,6 +2881,9 @@ this.context.console.log.apply(this.context.console, args); }; + /** + * Log the current state as error to the console. + */ Terminal.prototype.error = function() { if (!this.debug) return; if (!this.context.console || !this.context.console.error) return; @@ -2851,8 +2896,6 @@ * * @param {number} x The number of columns to resize to. * @param {number} y The number of rows to resize to. - * - * @public */ Terminal.prototype.resize = function(x, y) { var line @@ -2962,6 +3005,10 @@ this.emit('resize', {terminal: this, cols: x, rows: y}); }; + /** + * Updates the range of rows to refresh + * @param {number} y The number of rows to refresh next. + */ Terminal.prototype.updateRange = function(y) { if (y < this.refreshStart) this.refreshStart = y; if (y > this.refreshEnd) this.refreshEnd = y; @@ -2973,11 +3020,20 @@ // } }; + /** + * Set the range of refreshing to the maximyum value + */ Terminal.prototype.maxRange = function() { this.refreshStart = 0; this.refreshEnd = this.rows - 1; }; + + + /** + * Setup the tab stops. + * @param {number} i + */ Terminal.prototype.setupStops = function(i) { if (i != null) { if (!this.tabs[i]) { @@ -2993,6 +3049,11 @@ } }; + + /** + * Move the cursor to the previous tab stop from the given position (default is current). + * @param {number} x The position to move the cursor to the previous tab stop. + */ Terminal.prototype.prevStop = function(x) { if (x == null) x = this.x; while (!this.tabs[--x] && x > 0); @@ -3001,6 +3062,11 @@ : x < 0 ? 0 : x; }; + + /** + * Move the cursor one tab stop forward from the given position (default is current). + * @param {number} x The position to move the cursor one tab stop forward. + */ Terminal.prototype.nextStop = function(x) { if (x == null) x = this.x; while (!this.tabs[++x] && x < this.cols); @@ -3009,6 +3075,12 @@ : x < 0 ? 0 : x; }; + + /** + * Erase in the identified line everything from "x" to the end of the line (right). + * @param {number} x The column from which to start erasing to the end of the line. + * @param {number} y The line in which to operate. + */ Terminal.prototype.eraseRight = function(x, y) { var line = this.lines[this.ybase + y] , ch = [this.eraseAttr(), ' ', 1]; // xterm @@ -3021,6 +3093,13 @@ this.updateRange(y); }; + + + /** + * Erase in the identified line everything from "x" to the start of the line (left). + * @param {number} x The column from which to start erasing to the start of the line. + * @param {number} y The line in which to operate. + */ Terminal.prototype.eraseLeft = function(x, y) { var line = this.lines[this.ybase + y] , ch = [this.eraseAttr(), ' ', 1]; // xterm @@ -3031,10 +3110,20 @@ this.updateRange(y); }; + + /** + * Erase all content in the given line + * @param {number} y The line to erase all of its contents. + */ Terminal.prototype.eraseLine = function(y) { this.eraseRight(0, y); }; + + /** + * Return the data array of a blank line/ + * @param {number} cur First bunch of data for each "blank" character. + */ Terminal.prototype.blankLine = function(cur) { var attr = cur ? this.eraseAttr() @@ -3051,30 +3140,53 @@ return line; }; + + /** + * If cur return the back color xterm feature attribute. Else return defAttr. + * @param {object} cur + */ Terminal.prototype.ch = function(cur) { return cur ? [this.eraseAttr(), ' ', 1] : [this.defAttr, ' ', 1]; }; + + /** + * Evaluate if the current erminal is the given argument. + * @param {object} term The terminal to evaluate + */ Terminal.prototype.is = function(term) { var name = this.termName; return (name + '').indexOf(term) === 0; }; + + /** + * Emit the 'data' event and populate the given data. + * @param {string} data The data to populate in the event. + */ Terminal.prototype.handler = function(data) { this.emit('data', data); }; + + /** + * Emit the 'title' event and populate the given title. + * @param {string} title The title to populate in the event. + */ Terminal.prototype.handleTitle = function(title) { this.emit('title', title); }; + /** * ESC */ - // ESC D Index (IND is 0x84). + /** + * ESC D Index (IND is 0x84). + */ Terminal.prototype.index = function() { this.y++; if (this.y > this.scrollBottom) { @@ -3084,7 +3196,10 @@ this.state = normal; }; - // ESC M Reverse Index (RI is 0x8d). + + /** + * ESC M Reverse Index (RI is 0x8d). + */ Terminal.prototype.reverseIndex = function() { var j; this.y--; @@ -3103,7 +3218,10 @@ this.state = normal; }; - // ESC c Full Reset (RIS). + + /** + * ESC c Full Reset (RIS). + */ Terminal.prototype.reset = function() { this.options.rows = this.rows; this.options.cols = this.cols; @@ -3111,18 +3229,24 @@ this.refresh(0, this.rows - 1); }; - // ESC H Tab Set (HTS is 0x88). + + /** + * ESC H Tab Set (HTS is 0x88). + */ Terminal.prototype.tabSet = function() { this.tabs[this.x] = true; this.state = normal; }; + /** * CSI */ - // CSI Ps A - // Cursor Up Ps Times (default = 1) (CUU). + /** + * CSI Ps A + * Cursor Up Ps Times (default = 1) (CUU). + */ Terminal.prototype.cursorUp = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3130,8 +3254,11 @@ if (this.y < 0) this.y = 0; }; - // CSI Ps B - // Cursor Down Ps Times (default = 1) (CUD). + + /** + * CSI Ps B + * Cursor Down Ps Times (default = 1) (CUD). + */ Terminal.prototype.cursorDown = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3141,8 +3268,11 @@ } }; - // CSI Ps C - // Cursor Forward Ps Times (default = 1) (CUF). + + /** + * CSI Ps C + * Cursor Forward Ps Times (default = 1) (CUF). + */ Terminal.prototype.cursorForward = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3152,8 +3282,11 @@ } }; - // CSI Ps D - // Cursor Backward Ps Times (default = 1) (CUB). + + /** + * CSI Ps D + * Cursor Backward Ps Times (default = 1) (CUB). + */ Terminal.prototype.cursorBackward = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3161,8 +3294,11 @@ if (this.x < 0) this.x = 0; }; - // CSI Ps ; Ps H - // Cursor Position [row;column] (default = [1,1]) (CUP). + + /** + * CSI Ps ; Ps H + * Cursor Position [row;column] (default = [1,1]) (CUP). + */ Terminal.prototype.cursorPos = function(params) { var row, col; @@ -3190,16 +3326,19 @@ this.y = row; }; - // CSI Ps J Erase in Display (ED). - // Ps = 0 -> Erase Below (default). - // Ps = 1 -> Erase Above. - // Ps = 2 -> Erase All. - // Ps = 3 -> Erase Saved Lines (xterm). - // CSI ? Ps J - // Erase in Display (DECSED). - // Ps = 0 -> Selective Erase Below (default). - // Ps = 1 -> Selective Erase Above. - // Ps = 2 -> Selective Erase All. + + /** + * CSI Ps J Erase in Display (ED). + * Ps = 0 -> Erase Below (default). + * Ps = 1 -> Erase Above. + * Ps = 2 -> Erase All. + * Ps = 3 -> Erase Saved Lines (xterm). + * CSI ? Ps J + * Erase in Display (DECSED). + * Ps = 0 -> Selective Erase Below (default). + * Ps = 1 -> Selective Erase Above. + * Ps = 2 -> Selective Erase All. + */ Terminal.prototype.eraseInDisplay = function(params) { var j; switch (params[0]) { @@ -3227,15 +3366,18 @@ } }; - // CSI Ps K Erase in Line (EL). - // Ps = 0 -> Erase to Right (default). - // Ps = 1 -> Erase to Left. - // Ps = 2 -> Erase All. - // CSI ? Ps K - // Erase in Line (DECSEL). - // Ps = 0 -> Selective Erase to Right (default). - // Ps = 1 -> Selective Erase to Left. - // Ps = 2 -> Selective Erase All. + + /** + * CSI Ps K Erase in Line (EL). + * Ps = 0 -> Erase to Right (default). + * Ps = 1 -> Erase to Left. + * Ps = 2 -> Erase All. + * CSI ? Ps K + * Erase in Line (DECSEL). + * Ps = 0 -> Selective Erase to Right (default). + * Ps = 1 -> Selective Erase to Left. + * Ps = 2 -> Selective Erase All. + */ Terminal.prototype.eraseInLine = function(params) { switch (params[0]) { case 0: @@ -3250,68 +3392,71 @@ } }; - // CSI Pm m Character Attributes (SGR). - // Ps = 0 -> Normal (default). - // Ps = 1 -> Bold. - // Ps = 4 -> Underlined. - // Ps = 5 -> Blink (appears as Bold). - // Ps = 7 -> Inverse. - // Ps = 8 -> Invisible, i.e., hidden (VT300). - // Ps = 2 2 -> Normal (neither bold nor faint). - // Ps = 2 4 -> Not underlined. - // Ps = 2 5 -> Steady (not blinking). - // Ps = 2 7 -> Positive (not inverse). - // Ps = 2 8 -> Visible, i.e., not hidden (VT300). - // Ps = 3 0 -> Set foreground color to Black. - // Ps = 3 1 -> Set foreground color to Red. - // Ps = 3 2 -> Set foreground color to Green. - // Ps = 3 3 -> Set foreground color to Yellow. - // Ps = 3 4 -> Set foreground color to Blue. - // Ps = 3 5 -> Set foreground color to Magenta. - // Ps = 3 6 -> Set foreground color to Cyan. - // Ps = 3 7 -> Set foreground color to White. - // Ps = 3 9 -> Set foreground color to default (original). - // Ps = 4 0 -> Set background color to Black. - // Ps = 4 1 -> Set background color to Red. - // Ps = 4 2 -> Set background color to Green. - // Ps = 4 3 -> Set background color to Yellow. - // Ps = 4 4 -> Set background color to Blue. - // Ps = 4 5 -> Set background color to Magenta. - // Ps = 4 6 -> Set background color to Cyan. - // Ps = 4 7 -> Set background color to White. - // Ps = 4 9 -> Set background color to default (original). - // If 16-color support is compiled, the following apply. Assume - // that xterm's resources are set so that the ISO color codes are - // the first 8 of a set of 16. Then the aixterm colors are the - // bright versions of the ISO colors: - // Ps = 9 0 -> Set foreground color to Black. - // Ps = 9 1 -> Set foreground color to Red. - // Ps = 9 2 -> Set foreground color to Green. - // Ps = 9 3 -> Set foreground color to Yellow. - // Ps = 9 4 -> Set foreground color to Blue. - // Ps = 9 5 -> Set foreground color to Magenta. - // Ps = 9 6 -> Set foreground color to Cyan. - // Ps = 9 7 -> Set foreground color to White. - // Ps = 1 0 0 -> Set background color to Black. - // Ps = 1 0 1 -> Set background color to Red. - // Ps = 1 0 2 -> Set background color to Green. - // Ps = 1 0 3 -> Set background color to Yellow. - // Ps = 1 0 4 -> Set background color to Blue. - // Ps = 1 0 5 -> Set background color to Magenta. - // Ps = 1 0 6 -> Set background color to Cyan. - // Ps = 1 0 7 -> Set background color to White. - - // If xterm is compiled with the 16-color support disabled, it - // supports the following, from rxvt: - // Ps = 1 0 0 -> Set foreground and background color to - // default. - - // If 88- or 256-color support is compiled, the following apply. - // Ps = 3 8 ; 5 ; Ps -> Set foreground color to the second - // Ps. - // Ps = 4 8 ; 5 ; Ps -> Set background color to the second - // Ps. + /** + * CSI Pm m Character Attributes (SGR). + * Ps = 0 -> Normal (default). + * Ps = 1 -> Bold. + * Ps = 4 -> Underlined. + * Ps = 5 -> Blink (appears as Bold). + * Ps = 7 -> Inverse. + * Ps = 8 -> Invisible, i.e., hidden (VT300). + * Ps = 2 2 -> Normal (neither bold nor faint). + * Ps = 2 4 -> Not underlined. + * Ps = 2 5 -> Steady (not blinking). + * Ps = 2 7 -> Positive (not inverse). + * Ps = 2 8 -> Visible, i.e., not hidden (VT300). + * Ps = 3 0 -> Set foreground color to Black. + * Ps = 3 1 -> Set foreground color to Red. + * Ps = 3 2 -> Set foreground color to Green. + * Ps = 3 3 -> Set foreground color to Yellow. + * Ps = 3 4 -> Set foreground color to Blue. + * Ps = 3 5 -> Set foreground color to Magenta. + * Ps = 3 6 -> Set foreground color to Cyan. + * Ps = 3 7 -> Set foreground color to White. + * Ps = 3 9 -> Set foreground color to default (original). + * Ps = 4 0 -> Set background color to Black. + * Ps = 4 1 -> Set background color to Red. + * Ps = 4 2 -> Set background color to Green. + * Ps = 4 3 -> Set background color to Yellow. + * Ps = 4 4 -> Set background color to Blue. + * Ps = 4 5 -> Set background color to Magenta. + * Ps = 4 6 -> Set background color to Cyan. + * Ps = 4 7 -> Set background color to White. + * Ps = 4 9 -> Set background color to default (original). + * + * If 16-color support is compiled, the following apply. Assume + * that xterm's resources are set so that the ISO color codes are + * the first 8 of a set of 16. Then the aixterm colors are the + * bright versions of the ISO colors: + * Ps = 9 0 -> Set foreground color to Black. + * Ps = 9 1 -> Set foreground color to Red. + * Ps = 9 2 -> Set foreground color to Green. + * Ps = 9 3 -> Set foreground color to Yellow. + * Ps = 9 4 -> Set foreground color to Blue. + * Ps = 9 5 -> Set foreground color to Magenta. + * Ps = 9 6 -> Set foreground color to Cyan. + * Ps = 9 7 -> Set foreground color to White. + * Ps = 1 0 0 -> Set background color to Black. + * Ps = 1 0 1 -> Set background color to Red. + * Ps = 1 0 2 -> Set background color to Green. + * Ps = 1 0 3 -> Set background color to Yellow. + * Ps = 1 0 4 -> Set background color to Blue. + * Ps = 1 0 5 -> Set background color to Magenta. + * Ps = 1 0 6 -> Set background color to Cyan. + * Ps = 1 0 7 -> Set background color to White. + * + * If xterm is compiled with the 16-color support disabled, it + * supports the following, from rxvt: + * Ps = 1 0 0 -> Set foreground and background color to + * default. + * + * If 88- or 256-color support is compiled, the following apply. + * Ps = 3 8 ; 5 ; Ps -> Set foreground color to the second + * Ps. + * Ps = 4 8 ; 5 ; Ps -> Set background color to the second + * Ps. + */ Terminal.prototype.charAttributes = function(params) { // Optimize a single SGR0. if (params.length === 1 && params[0] === 0) { @@ -3429,27 +3574,30 @@ this.curAttr = (flags << 18) | (fg << 9) | bg; }; - // CSI Ps n Device Status Report (DSR). - // Ps = 5 -> Status Report. Result (``OK'') is - // CSI 0 n - // Ps = 6 -> Report Cursor Position (CPR) [row;column]. - // Result is - // CSI r ; c R - // CSI ? Ps n - // Device Status Report (DSR, DEC-specific). - // Ps = 6 -> Report Cursor Position (CPR) [row;column] as CSI - // ? r ; c R (assumes page is zero). - // Ps = 1 5 -> Report Printer status as CSI ? 1 0 n (ready). - // or CSI ? 1 1 n (not ready). - // Ps = 2 5 -> Report UDK status as CSI ? 2 0 n (unlocked) - // or CSI ? 2 1 n (locked). - // Ps = 2 6 -> Report Keyboard status as - // CSI ? 2 7 ; 1 ; 0 ; 0 n (North American). - // The last two parameters apply to VT400 & up, and denote key- - // board ready and LK01 respectively. - // Ps = 5 3 -> Report Locator status as - // CSI ? 5 3 n Locator available, if compiled-in, or - // CSI ? 5 0 n No Locator, if not. + + /** + * CSI Ps n Device Status Report (DSR). + * Ps = 5 -> Status Report. Result (``OK'') is + * CSI 0 n + * Ps = 6 -> Report Cursor Position (CPR) [row;column]. + * Result is + * CSI r ; c R + * CSI ? Ps n + * Device Status Report (DSR, DEC-specific). + * Ps = 6 -> Report Cursor Position (CPR) [row;column] as CSI + * ? r ; c R (assumes page is zero). + * Ps = 1 5 -> Report Printer status as CSI ? 1 0 n (ready). + * or CSI ? 1 1 n (not ready). + * Ps = 2 5 -> Report UDK status as CSI ? 2 0 n (unlocked) + * or CSI ? 2 1 n (locked). + * Ps = 2 6 -> Report Keyboard status as + * CSI ? 2 7 ; 1 ; 0 ; 0 n (North American). + * The last two parameters apply to VT400 & up, and denote key- + * board ready and LK01 respectively. + * Ps = 5 3 -> Report Locator status as + * CSI ? 5 3 n Locator available, if compiled-in, or + * CSI ? 5 0 n No Locator, if not. + */ Terminal.prototype.deviceStatus = function(params) { if (!this.prefix) { switch (params[0]) { @@ -3498,12 +3646,15 @@ } }; + /** * Additions */ - // CSI Ps @ - // Insert Ps (Blank) Character(s) (default = 1) (ICH). + /** + * CSI Ps @ + * Insert Ps (Blank) Character(s) (default = 1) (ICH). + */ Terminal.prototype.insertChars = function(params) { var param, row, j, ch; @@ -3520,9 +3671,11 @@ } }; - // CSI Ps E - // Cursor Next Line Ps Times (default = 1) (CNL). - // same as CSI Ps B ? + /** + * CSI Ps E + * Cursor Next Line Ps Times (default = 1) (CNL). + * same as CSI Ps B ? + */ Terminal.prototype.cursorNextLine = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3533,9 +3686,12 @@ this.x = 0; }; - // CSI Ps F - // Cursor Preceding Line Ps Times (default = 1) (CNL). - // reuse CSI Ps A ? + + /** + * CSI Ps F + * Cursor Preceding Line Ps Times (default = 1) (CNL). + * reuse CSI Ps A ? + */ Terminal.prototype.cursorPrecedingLine = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3544,16 +3700,22 @@ this.x = 0; }; - // CSI Ps G - // Cursor Character Absolute [column] (default = [row,1]) (CHA). + + /** + * CSI Ps G + * Cursor Character Absolute [column] (default = [row,1]) (CHA). + */ Terminal.prototype.cursorCharAbsolute = function(params) { var param = params[0]; if (param < 1) param = 1; this.x = param - 1; }; - // CSI Ps L - // Insert Ps Line(s) (default = 1) (IL). + + /** + * CSI Ps L + * Insert Ps Line(s) (default = 1) (IL). + */ Terminal.prototype.insertLines = function(params) { var param, row, j; @@ -3576,8 +3738,11 @@ this.updateRange(this.scrollBottom); }; - // CSI Ps M - // Delete Ps Line(s) (default = 1) (DL). + + /** + * CSI Ps M + * Delete Ps Line(s) (default = 1) (DL). + */ Terminal.prototype.deleteLines = function(params) { var param, row, j; @@ -3600,8 +3765,11 @@ this.updateRange(this.scrollBottom); }; - // CSI Ps P - // Delete Ps Character(s) (default = 1) (DCH). + + /** + * CSI Ps P + * Delete Ps Character(s) (default = 1) (DCH). + */ Terminal.prototype.deleteChars = function(params) { var param, row, ch; @@ -3617,8 +3785,10 @@ } }; - // CSI Ps X - // Erase Ps Character(s) (default = 1) (ECH). + /** + * CSI Ps X + * Erase Ps Character(s) (default = 1) (ECH). + */ Terminal.prototype.eraseChars = function(params) { var param, row, j, ch; @@ -3634,8 +3804,10 @@ } }; - // CSI Pm ` Character Position Absolute - // [column] (default = [row,1]) (HPA). + /** + * CSI Pm ` Character Position Absolute + * [column] (default = [row,1]) (HPA). + */ Terminal.prototype.charPosAbsolute = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3645,9 +3817,12 @@ } }; - // 141 61 a * HPR - - // Horizontal Position Relative - // reuse CSI Ps C ? + + /** + * 141 61 a * HPR - + * Horizontal Position Relative + * reuse CSI Ps C ? + */ Terminal.prototype.HPositionRelative = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3657,41 +3832,44 @@ } }; - // CSI Ps c Send Device Attributes (Primary DA). - // Ps = 0 or omitted -> request attributes from terminal. The - // response depends on the decTerminalID resource setting. - // -> CSI ? 1 ; 2 c (``VT100 with Advanced Video Option'') - // -> CSI ? 1 ; 0 c (``VT101 with No Options'') - // -> CSI ? 6 c (``VT102'') - // -> CSI ? 6 0 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; c (``VT220'') - // The VT100-style response parameters do not mean anything by - // themselves. VT220 parameters do, telling the host what fea- - // tures the terminal supports: - // Ps = 1 -> 132-columns. - // Ps = 2 -> Printer. - // Ps = 6 -> Selective erase. - // Ps = 8 -> User-defined keys. - // Ps = 9 -> National replacement character sets. - // Ps = 1 5 -> Technical characters. - // Ps = 2 2 -> ANSI color, e.g., VT525. - // Ps = 2 9 -> ANSI text locator (i.e., DEC Locator mode). - // CSI > Ps c - // Send Device Attributes (Secondary DA). - // Ps = 0 or omitted -> request the terminal's identification - // code. The response depends on the decTerminalID resource set- - // ting. It should apply only to VT220 and up, but xterm extends - // this to VT100. - // -> CSI > Pp ; Pv ; Pc c - // where Pp denotes the terminal type - // Pp = 0 -> ``VT100''. - // Pp = 1 -> ``VT220''. - // and Pv is the firmware version (for xterm, this was originally - // the XFree86 patch number, starting with 95). In a DEC termi- - // nal, Pc indicates the ROM cartridge registration number and is - // always zero. - // More information: - // xterm/charproc.c - line 2012, for more information. - // vim responds with ^[[?0c or ^[[?1c after the terminal's response (?) + + /** + * CSI Ps c Send Device Attributes (Primary DA). + * Ps = 0 or omitted -> request attributes from terminal. The + * response depends on the decTerminalID resource setting. + * -> CSI ? 1 ; 2 c (``VT100 with Advanced Video Option'') + * -> CSI ? 1 ; 0 c (``VT101 with No Options'') + * -> CSI ? 6 c (``VT102'') + * -> CSI ? 6 0 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; c (``VT220'') + * The VT100-style response parameters do not mean anything by + * themselves. VT220 parameters do, telling the host what fea- + * tures the terminal supports: + * Ps = 1 -> 132-columns. + * Ps = 2 -> Printer. + * Ps = 6 -> Selective erase. + * Ps = 8 -> User-defined keys. + * Ps = 9 -> National replacement character sets. + * Ps = 1 5 -> Technical characters. + * Ps = 2 2 -> ANSI color, e.g., VT525. + * Ps = 2 9 -> ANSI text locator (i.e., DEC Locator mode). + * CSI > Ps c + * Send Device Attributes (Secondary DA). + * Ps = 0 or omitted -> request the terminal's identification + * code. The response depends on the decTerminalID resource set- + * ting. It should apply only to VT220 and up, but xterm extends + * this to VT100. + * -> CSI > Pp ; Pv ; Pc c + * where Pp denotes the terminal type + * Pp = 0 -> ``VT100''. + * Pp = 1 -> ``VT220''. + * and Pv is the firmware version (for xterm, this was originally + * the XFree86 patch number, starting with 95). In a DEC termi- + * nal, Pc indicates the ROM cartridge registration number and is + * always zero. + * More information: + * xterm/charproc.c - line 2012, for more information. + * vim responds with ^[[?0c or ^[[?1c after the terminal's response (?) + */ Terminal.prototype.sendDeviceAttributes = function(params) { if (params[0] > 0) return; @@ -3721,8 +3899,11 @@ } }; - // CSI Pm d - // Line Position Absolute [row] (default = [1,column]) (VPA). + + /** + * CSI Pm d + * Line Position Absolute [row] (default = [1,column]) (VPA). + */ Terminal.prototype.linePosAbsolute = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3732,8 +3913,11 @@ } }; - // 145 65 e * VPR - Vertical Position Relative - // reuse CSI Ps B ? + + /** + * 145 65 e * VPR - Vertical Position Relative + * reuse CSI Ps B ? + */ Terminal.prototype.VPositionRelative = function(params) { var param = params[0]; if (param < 1) param = 1; @@ -3743,9 +3927,12 @@ } }; - // CSI Ps ; Ps f - // Horizontal and Vertical Position [row;column] (default = - // [1,1]) (HVP). + + /** + * CSI Ps ; Ps f + * Horizontal and Vertical Position [row;column] (default = + * [1,1]) (HVP). + */ Terminal.prototype.HVPosition = function(params) { if (params[0] < 1) params[0] = 1; if (params[1] < 1) params[1] = 1; @@ -3761,90 +3948,93 @@ } }; - // CSI Pm h Set Mode (SM). - // Ps = 2 -> Keyboard Action Mode (AM). - // Ps = 4 -> Insert Mode (IRM). - // Ps = 1 2 -> Send/receive (SRM). - // Ps = 2 0 -> Automatic Newline (LNM). - // CSI ? Pm h - // DEC Private Mode Set (DECSET). - // Ps = 1 -> Application Cursor Keys (DECCKM). - // Ps = 2 -> Designate USASCII for character sets G0-G3 - // (DECANM), and set VT100 mode. - // Ps = 3 -> 132 Column Mode (DECCOLM). - // Ps = 4 -> Smooth (Slow) Scroll (DECSCLM). - // Ps = 5 -> Reverse Video (DECSCNM). - // Ps = 6 -> Origin Mode (DECOM). - // Ps = 7 -> Wraparound Mode (DECAWM). - // Ps = 8 -> Auto-repeat Keys (DECARM). - // Ps = 9 -> Send Mouse X & Y on button press. See the sec- - // tion Mouse Tracking. - // Ps = 1 0 -> Show toolbar (rxvt). - // Ps = 1 2 -> Start Blinking Cursor (att610). - // Ps = 1 8 -> Print form feed (DECPFF). - // Ps = 1 9 -> Set print extent to full screen (DECPEX). - // Ps = 2 5 -> Show Cursor (DECTCEM). - // Ps = 3 0 -> Show scrollbar (rxvt). - // Ps = 3 5 -> Enable font-shifting functions (rxvt). - // Ps = 3 8 -> Enter Tektronix Mode (DECTEK). - // Ps = 4 0 -> Allow 80 -> 132 Mode. - // Ps = 4 1 -> more(1) fix (see curses resource). - // Ps = 4 2 -> Enable Nation Replacement Character sets (DECN- - // RCM). - // Ps = 4 4 -> Turn On Margin Bell. - // Ps = 4 5 -> Reverse-wraparound Mode. - // Ps = 4 6 -> Start Logging. This is normally disabled by a - // compile-time option. - // Ps = 4 7 -> Use Alternate Screen Buffer. (This may be dis- - // abled by the titeInhibit resource). - // Ps = 6 6 -> Application keypad (DECNKM). - // Ps = 6 7 -> Backarrow key sends backspace (DECBKM). - // Ps = 1 0 0 0 -> Send Mouse X & Y on button press and - // release. See the section Mouse Tracking. - // Ps = 1 0 0 1 -> Use Hilite Mouse Tracking. - // Ps = 1 0 0 2 -> Use Cell Motion Mouse Tracking. - // Ps = 1 0 0 3 -> Use All Motion Mouse Tracking. - // Ps = 1 0 0 4 -> Send FocusIn/FocusOut events. - // Ps = 1 0 0 5 -> Enable Extended Mouse Mode. - // Ps = 1 0 1 0 -> Scroll to bottom on tty output (rxvt). - // Ps = 1 0 1 1 -> Scroll to bottom on key press (rxvt). - // Ps = 1 0 3 4 -> Interpret "meta" key, sets eighth bit. - // (enables the eightBitInput resource). - // Ps = 1 0 3 5 -> Enable special modifiers for Alt and Num- - // Lock keys. (This enables the numLock resource). - // Ps = 1 0 3 6 -> Send ESC when Meta modifies a key. (This - // enables the metaSendsEscape resource). - // Ps = 1 0 3 7 -> Send DEL from the editing-keypad Delete - // key. - // Ps = 1 0 3 9 -> Send ESC when Alt modifies a key. (This - // enables the altSendsEscape resource). - // Ps = 1 0 4 0 -> Keep selection even if not highlighted. - // (This enables the keepSelection resource). - // Ps = 1 0 4 1 -> Use the CLIPBOARD selection. (This enables - // the selectToClipboard resource). - // Ps = 1 0 4 2 -> Enable Urgency window manager hint when - // Control-G is received. (This enables the bellIsUrgent - // resource). - // Ps = 1 0 4 3 -> Enable raising of the window when Control-G - // is received. (enables the popOnBell resource). - // Ps = 1 0 4 7 -> Use Alternate Screen Buffer. (This may be - // disabled by the titeInhibit resource). - // Ps = 1 0 4 8 -> Save cursor as in DECSC. (This may be dis- - // abled by the titeInhibit resource). - // Ps = 1 0 4 9 -> Save cursor as in DECSC and use Alternate - // Screen Buffer, clearing it first. (This may be disabled by - // the titeInhibit resource). This combines the effects of the 1 - // 0 4 7 and 1 0 4 8 modes. Use this with terminfo-based - // applications rather than the 4 7 mode. - // Ps = 1 0 5 0 -> Set terminfo/termcap function-key mode. - // Ps = 1 0 5 1 -> Set Sun function-key mode. - // Ps = 1 0 5 2 -> Set HP function-key mode. - // Ps = 1 0 5 3 -> Set SCO function-key mode. - // Ps = 1 0 6 0 -> Set legacy keyboard emulation (X11R6). - // Ps = 1 0 6 1 -> Set VT220 keyboard emulation. - // Ps = 2 0 0 4 -> Set bracketed paste mode. - // Modes: - // http://vt100.net/docs/vt220-rm/chapter4.html + + /** + * CSI Pm h Set Mode (SM). + * Ps = 2 -> Keyboard Action Mode (AM). + * Ps = 4 -> Insert Mode (IRM). + * Ps = 1 2 -> Send/receive (SRM). + * Ps = 2 0 -> Automatic Newline (LNM). + * CSI ? Pm h + * DEC Private Mode Set (DECSET). + * Ps = 1 -> Application Cursor Keys (DECCKM). + * Ps = 2 -> Designate USASCII for character sets G0-G3 + * (DECANM), and set VT100 mode. + * Ps = 3 -> 132 Column Mode (DECCOLM). + * Ps = 4 -> Smooth (Slow) Scroll (DECSCLM). + * Ps = 5 -> Reverse Video (DECSCNM). + * Ps = 6 -> Origin Mode (DECOM). + * Ps = 7 -> Wraparound Mode (DECAWM). + * Ps = 8 -> Auto-repeat Keys (DECARM). + * Ps = 9 -> Send Mouse X & Y on button press. See the sec- + * tion Mouse Tracking. + * Ps = 1 0 -> Show toolbar (rxvt). + * Ps = 1 2 -> Start Blinking Cursor (att610). + * Ps = 1 8 -> Print form feed (DECPFF). + * Ps = 1 9 -> Set print extent to full screen (DECPEX). + * Ps = 2 5 -> Show Cursor (DECTCEM). + * Ps = 3 0 -> Show scrollbar (rxvt). + * Ps = 3 5 -> Enable font-shifting functions (rxvt). + * Ps = 3 8 -> Enter Tektronix Mode (DECTEK). + * Ps = 4 0 -> Allow 80 -> 132 Mode. + * Ps = 4 1 -> more(1) fix (see curses resource). + * Ps = 4 2 -> Enable Nation Replacement Character sets (DECN- + * RCM). + * Ps = 4 4 -> Turn On Margin Bell. + * Ps = 4 5 -> Reverse-wraparound Mode. + * Ps = 4 6 -> Start Logging. This is normally disabled by a + * compile-time option. + * Ps = 4 7 -> Use Alternate Screen Buffer. (This may be dis- + * abled by the titeInhibit resource). + * Ps = 6 6 -> Application keypad (DECNKM). + * Ps = 6 7 -> Backarrow key sends backspace (DECBKM). + * Ps = 1 0 0 0 -> Send Mouse X & Y on button press and + * release. See the section Mouse Tracking. + * Ps = 1 0 0 1 -> Use Hilite Mouse Tracking. + * Ps = 1 0 0 2 -> Use Cell Motion Mouse Tracking. + * Ps = 1 0 0 3 -> Use All Motion Mouse Tracking. + * Ps = 1 0 0 4 -> Send FocusIn/FocusOut events. + * Ps = 1 0 0 5 -> Enable Extended Mouse Mode. + * Ps = 1 0 1 0 -> Scroll to bottom on tty output (rxvt). + * Ps = 1 0 1 1 -> Scroll to bottom on key press (rxvt). + * Ps = 1 0 3 4 -> Interpret "meta" key, sets eighth bit. + * (enables the eightBitInput resource). + * Ps = 1 0 3 5 -> Enable special modifiers for Alt and Num- + * Lock keys. (This enables the numLock resource). + * Ps = 1 0 3 6 -> Send ESC when Meta modifies a key. (This + * enables the metaSendsEscape resource). + * Ps = 1 0 3 7 -> Send DEL from the editing-keypad Delete + * key. + * Ps = 1 0 3 9 -> Send ESC when Alt modifies a key. (This + * enables the altSendsEscape resource). + * Ps = 1 0 4 0 -> Keep selection even if not highlighted. + * (This enables the keepSelection resource). + * Ps = 1 0 4 1 -> Use the CLIPBOARD selection. (This enables + * the selectToClipboard resource). + * Ps = 1 0 4 2 -> Enable Urgency window manager hint when + * Control-G is received. (This enables the bellIsUrgent + * resource). + * Ps = 1 0 4 3 -> Enable raising of the window when Control-G + * is received. (enables the popOnBell resource). + * Ps = 1 0 4 7 -> Use Alternate Screen Buffer. (This may be + * disabled by the titeInhibit resource). + * Ps = 1 0 4 8 -> Save cursor as in DECSC. (This may be dis- + * abled by the titeInhibit resource). + * Ps = 1 0 4 9 -> Save cursor as in DECSC and use Alternate + * Screen Buffer, clearing it first. (This may be disabled by + * the titeInhibit resource). This combines the effects of the 1 + * 0 4 7 and 1 0 4 8 modes. Use this with terminfo-based + * applications rather than the 4 7 mode. + * Ps = 1 0 5 0 -> Set terminfo/termcap function-key mode. + * Ps = 1 0 5 1 -> Set Sun function-key mode. + * Ps = 1 0 5 2 -> Set HP function-key mode. + * Ps = 1 0 5 3 -> Set SCO function-key mode. + * Ps = 1 0 6 0 -> Set legacy keyboard emulation (X11R6). + * Ps = 1 0 6 1 -> Set VT220 keyboard emulation. + * Ps = 2 0 0 4 -> Set bracketed paste mode. + * Modes: + * http: *vt100.net/docs/vt220-rm/chapter4.html + */ Terminal.prototype.setMode = function(params) { if (typeof params === 'object') { var l = params.length @@ -3967,86 +4157,88 @@ } }; - // CSI Pm l Reset Mode (RM). - // Ps = 2 -> Keyboard Action Mode (AM). - // Ps = 4 -> Replace Mode (IRM). - // Ps = 1 2 -> Send/receive (SRM). - // Ps = 2 0 -> Normal Linefeed (LNM). - // CSI ? Pm l - // DEC Private Mode Reset (DECRST). - // Ps = 1 -> Normal Cursor Keys (DECCKM). - // Ps = 2 -> Designate VT52 mode (DECANM). - // Ps = 3 -> 80 Column Mode (DECCOLM). - // Ps = 4 -> Jump (Fast) Scroll (DECSCLM). - // Ps = 5 -> Normal Video (DECSCNM). - // Ps = 6 -> Normal Cursor Mode (DECOM). - // Ps = 7 -> No Wraparound Mode (DECAWM). - // Ps = 8 -> No Auto-repeat Keys (DECARM). - // Ps = 9 -> Don't send Mouse X & Y on button press. - // Ps = 1 0 -> Hide toolbar (rxvt). - // Ps = 1 2 -> Stop Blinking Cursor (att610). - // Ps = 1 8 -> Don't print form feed (DECPFF). - // Ps = 1 9 -> Limit print to scrolling region (DECPEX). - // Ps = 2 5 -> Hide Cursor (DECTCEM). - // Ps = 3 0 -> Don't show scrollbar (rxvt). - // Ps = 3 5 -> Disable font-shifting functions (rxvt). - // Ps = 4 0 -> Disallow 80 -> 132 Mode. - // Ps = 4 1 -> No more(1) fix (see curses resource). - // Ps = 4 2 -> Disable Nation Replacement Character sets (DEC- - // NRCM). - // Ps = 4 4 -> Turn Off Margin Bell. - // Ps = 4 5 -> No Reverse-wraparound Mode. - // Ps = 4 6 -> Stop Logging. (This is normally disabled by a - // compile-time option). - // Ps = 4 7 -> Use Normal Screen Buffer. - // Ps = 6 6 -> Numeric keypad (DECNKM). - // Ps = 6 7 -> Backarrow key sends delete (DECBKM). - // Ps = 1 0 0 0 -> Don't send Mouse X & Y on button press and - // release. See the section Mouse Tracking. - // Ps = 1 0 0 1 -> Don't use Hilite Mouse Tracking. - // Ps = 1 0 0 2 -> Don't use Cell Motion Mouse Tracking. - // Ps = 1 0 0 3 -> Don't use All Motion Mouse Tracking. - // Ps = 1 0 0 4 -> Don't send FocusIn/FocusOut events. - // Ps = 1 0 0 5 -> Disable Extended Mouse Mode. - // Ps = 1 0 1 0 -> Don't scroll to bottom on tty output - // (rxvt). - // Ps = 1 0 1 1 -> Don't scroll to bottom on key press (rxvt). - // Ps = 1 0 3 4 -> Don't interpret "meta" key. (This disables - // the eightBitInput resource). - // Ps = 1 0 3 5 -> Disable special modifiers for Alt and Num- - // Lock keys. (This disables the numLock resource). - // Ps = 1 0 3 6 -> Don't send ESC when Meta modifies a key. - // (This disables the metaSendsEscape resource). - // Ps = 1 0 3 7 -> Send VT220 Remove from the editing-keypad - // Delete key. - // Ps = 1 0 3 9 -> Don't send ESC when Alt modifies a key. - // (This disables the altSendsEscape resource). - // Ps = 1 0 4 0 -> Do not keep selection when not highlighted. - // (This disables the keepSelection resource). - // Ps = 1 0 4 1 -> Use the PRIMARY selection. (This disables - // the selectToClipboard resource). - // Ps = 1 0 4 2 -> Disable Urgency window manager hint when - // Control-G is received. (This disables the bellIsUrgent - // resource). - // Ps = 1 0 4 3 -> Disable raising of the window when Control- - // G is received. (This disables the popOnBell resource). - // Ps = 1 0 4 7 -> Use Normal Screen Buffer, clearing screen - // first if in the Alternate Screen. (This may be disabled by - // the titeInhibit resource). - // Ps = 1 0 4 8 -> Restore cursor as in DECRC. (This may be - // disabled by the titeInhibit resource). - // Ps = 1 0 4 9 -> Use Normal Screen Buffer and restore cursor - // as in DECRC. (This may be disabled by the titeInhibit - // resource). This combines the effects of the 1 0 4 7 and 1 0 - // 4 8 modes. Use this with terminfo-based applications rather - // than the 4 7 mode. - // Ps = 1 0 5 0 -> Reset terminfo/termcap function-key mode. - // Ps = 1 0 5 1 -> Reset Sun function-key mode. - // Ps = 1 0 5 2 -> Reset HP function-key mode. - // Ps = 1 0 5 3 -> Reset SCO function-key mode. - // Ps = 1 0 6 0 -> Reset legacy keyboard emulation (X11R6). - // Ps = 1 0 6 1 -> Reset keyboard emulation to Sun/PC style. - // Ps = 2 0 0 4 -> Reset bracketed paste mode. + /** + * CSI Pm l Reset Mode (RM). + * Ps = 2 -> Keyboard Action Mode (AM). + * Ps = 4 -> Replace Mode (IRM). + * Ps = 1 2 -> Send/receive (SRM). + * Ps = 2 0 -> Normal Linefeed (LNM). + * CSI ? Pm l + * DEC Private Mode Reset (DECRST). + * Ps = 1 -> Normal Cursor Keys (DECCKM). + * Ps = 2 -> Designate VT52 mode (DECANM). + * Ps = 3 -> 80 Column Mode (DECCOLM). + * Ps = 4 -> Jump (Fast) Scroll (DECSCLM). + * Ps = 5 -> Normal Video (DECSCNM). + * Ps = 6 -> Normal Cursor Mode (DECOM). + * Ps = 7 -> No Wraparound Mode (DECAWM). + * Ps = 8 -> No Auto-repeat Keys (DECARM). + * Ps = 9 -> Don't send Mouse X & Y on button press. + * Ps = 1 0 -> Hide toolbar (rxvt). + * Ps = 1 2 -> Stop Blinking Cursor (att610). + * Ps = 1 8 -> Don't print form feed (DECPFF). + * Ps = 1 9 -> Limit print to scrolling region (DECPEX). + * Ps = 2 5 -> Hide Cursor (DECTCEM). + * Ps = 3 0 -> Don't show scrollbar (rxvt). + * Ps = 3 5 -> Disable font-shifting functions (rxvt). + * Ps = 4 0 -> Disallow 80 -> 132 Mode. + * Ps = 4 1 -> No more(1) fix (see curses resource). + * Ps = 4 2 -> Disable Nation Replacement Character sets (DEC- + * NRCM). + * Ps = 4 4 -> Turn Off Margin Bell. + * Ps = 4 5 -> No Reverse-wraparound Mode. + * Ps = 4 6 -> Stop Logging. (This is normally disabled by a + * compile-time option). + * Ps = 4 7 -> Use Normal Screen Buffer. + * Ps = 6 6 -> Numeric keypad (DECNKM). + * Ps = 6 7 -> Backarrow key sends delete (DECBKM). + * Ps = 1 0 0 0 -> Don't send Mouse X & Y on button press and + * release. See the section Mouse Tracking. + * Ps = 1 0 0 1 -> Don't use Hilite Mouse Tracking. + * Ps = 1 0 0 2 -> Don't use Cell Motion Mouse Tracking. + * Ps = 1 0 0 3 -> Don't use All Motion Mouse Tracking. + * Ps = 1 0 0 4 -> Don't send FocusIn/FocusOut events. + * Ps = 1 0 0 5 -> Disable Extended Mouse Mode. + * Ps = 1 0 1 0 -> Don't scroll to bottom on tty output + * (rxvt). + * Ps = 1 0 1 1 -> Don't scroll to bottom on key press (rxvt). + * Ps = 1 0 3 4 -> Don't interpret "meta" key. (This disables + * the eightBitInput resource). + * Ps = 1 0 3 5 -> Disable special modifiers for Alt and Num- + * Lock keys. (This disables the numLock resource). + * Ps = 1 0 3 6 -> Don't send ESC when Meta modifies a key. + * (This disables the metaSendsEscape resource). + * Ps = 1 0 3 7 -> Send VT220 Remove from the editing-keypad + * Delete key. + * Ps = 1 0 3 9 -> Don't send ESC when Alt modifies a key. + * (This disables the altSendsEscape resource). + * Ps = 1 0 4 0 -> Do not keep selection when not highlighted. + * (This disables the keepSelection resource). + * Ps = 1 0 4 1 -> Use the PRIMARY selection. (This disables + * the selectToClipboard resource). + * Ps = 1 0 4 2 -> Disable Urgency window manager hint when + * Control-G is received. (This disables the bellIsUrgent + * resource). + * Ps = 1 0 4 3 -> Disable raising of the window when Control- + * G is received. (This disables the popOnBell resource). + * Ps = 1 0 4 7 -> Use Normal Screen Buffer, clearing screen + * first if in the Alternate Screen. (This may be disabled by + * the titeInhibit resource). + * Ps = 1 0 4 8 -> Restore cursor as in DECRC. (This may be + * disabled by the titeInhibit resource). + * Ps = 1 0 4 9 -> Use Normal Screen Buffer and restore cursor + * as in DECRC. (This may be disabled by the titeInhibit + * resource). This combines the effects of the 1 0 4 7 and 1 0 + * 4 8 modes. Use this with terminfo-based applications rather + * than the 4 7 mode. + * Ps = 1 0 5 0 -> Reset terminfo/termcap function-key mode. + * Ps = 1 0 5 1 -> Reset Sun function-key mode. + * Ps = 1 0 5 2 -> Reset HP function-key mode. + * Ps = 1 0 5 3 -> Reset SCO function-key mode. + * Ps = 1 0 6 0 -> Reset legacy keyboard emulation (X11R6). + * Ps = 1 0 6 1 -> Reset keyboard emulation to Sun/PC style. + * Ps = 2 0 0 4 -> Reset bracketed paste mode. + */ Terminal.prototype.resetMode = function(params) { if (typeof params === 'object') { var l = params.length @@ -4143,10 +4335,13 @@ } }; - // CSI Ps ; Ps r - // Set Scrolling Region [top;bottom] (default = full size of win- - // dow) (DECSTBM). - // CSI ? Pm r + + /** + * CSI Ps ; Ps r + * Set Scrolling Region [top;bottom] (default = full size of win- + * dow) (DECSTBM). + * CSI ? Pm r + */ Terminal.prototype.setScrollRegion = function(params) { if (this.prefix) return; this.scrollTop = (params[0] || 1) - 1; @@ -4155,26 +4350,35 @@ this.y = 0; }; - // CSI s - // Save cursor (ANSI.SYS). + + /** + * CSI s + * Save cursor (ANSI.SYS). + */ Terminal.prototype.saveCursor = function(params) { this.savedX = this.x; this.savedY = this.y; }; - // CSI u - // Restore cursor (ANSI.SYS). + + /** + * CSI u + * Restore cursor (ANSI.SYS). + */ Terminal.prototype.restoreCursor = function(params) { this.x = this.savedX || 0; this.y = this.savedY || 0; }; + /** * Lesser Used */ - // CSI Ps I - // Cursor Forward Tabulation Ps tab stops (default = 1) (CHT). + /** + * CSI Ps I + * Cursor Forward Tabulation Ps tab stops (default = 1) (CHT). + */ Terminal.prototype.cursorForwardTab = function(params) { var param = params[0] || 1; while (param--) { @@ -4182,7 +4386,10 @@ } }; - // CSI Ps S Scroll up Ps lines (default = 1) (SU). + + /** + * CSI Ps S Scroll up Ps lines (default = 1) (SU). + */ Terminal.prototype.scrollUp = function(params) { var param = params[0] || 1; while (param--) { @@ -4194,7 +4401,10 @@ this.updateRange(this.scrollBottom); }; - // CSI Ps T Scroll down Ps lines (default = 1) (SD). + + /** + * CSI Ps T Scroll down Ps lines (default = 1) (SD). + */ Terminal.prototype.scrollDown = function(params) { var param = params[0] || 1; while (param--) { @@ -4206,30 +4416,39 @@ this.updateRange(this.scrollBottom); }; - // CSI Ps ; Ps ; Ps ; Ps ; Ps T - // Initiate highlight mouse tracking. Parameters are - // [func;startx;starty;firstrow;lastrow]. See the section Mouse - // Tracking. + + /** + * CSI Ps ; Ps ; Ps ; Ps ; Ps T + * Initiate highlight mouse tracking. Parameters are + * [func;startx;starty;firstrow;lastrow]. See the section Mouse + * Tracking. + */ Terminal.prototype.initMouseTracking = function(params) { // Relevant: DECSET 1001 }; - // CSI > Ps; Ps T - // Reset one or more features of the title modes to the default - // value. Normally, "reset" disables the feature. It is possi- - // ble to disable the ability to reset features by compiling a - // different default for the title modes into xterm. - // Ps = 0 -> Do not set window/icon labels using hexadecimal. - // Ps = 1 -> Do not query window/icon labels using hexadeci- - // mal. - // Ps = 2 -> Do not set window/icon labels using UTF-8. - // Ps = 3 -> Do not query window/icon labels using UTF-8. - // (See discussion of "Title Modes"). + + /** + * CSI > Ps; Ps T + * Reset one or more features of the title modes to the default + * value. Normally, "reset" disables the feature. It is possi- + * ble to disable the ability to reset features by compiling a + * different default for the title modes into xterm. + * Ps = 0 -> Do not set window/icon labels using hexadecimal. + * Ps = 1 -> Do not query window/icon labels using hexadeci- + * mal. + * Ps = 2 -> Do not set window/icon labels using UTF-8. + * Ps = 3 -> Do not query window/icon labels using UTF-8. + * (See discussion of "Title Modes"). + */ Terminal.prototype.resetTitleModes = function(params) { ; }; - // CSI Ps Z Cursor Backward Tabulation Ps tab stops (default = 1) (CBT). + + /** + * CSI Ps Z Cursor Backward Tabulation Ps tab stops (default = 1) (CBT). + */ Terminal.prototype.cursorBackwardTab = function(params) { var param = params[0] || 1; while (param--) { @@ -4237,7 +4456,10 @@ } }; - // CSI Ps b Repeat the preceding graphic character Ps times (REP). + + /** + * CSI Ps b Repeat the preceding graphic character Ps times (REP). + */ Terminal.prototype.repeatPrecedingCharacter = function(params) { var param = params[0] || 1 , line = this.lines[this.ybase + this.y] @@ -4246,12 +4468,15 @@ while (param--) line[this.x++] = ch; }; - // CSI Ps g Tab Clear (TBC). - // Ps = 0 -> Clear Current Column (default). - // Ps = 3 -> Clear All. - // Potentially: - // Ps = 2 -> Clear Stops on Line. - // http://vt100.net/annarbor/aaa-ug/section6.html + + /** + * CSI Ps g Tab Clear (TBC). + * Ps = 0 -> Clear Current Column (default). + * Ps = 3 -> Clear All. + * Potentially: + * Ps = 2 -> Clear Stops on Line. + * http://vt100.net/annarbor/aaa-ug/section6.html + */ Terminal.prototype.tabClear = function(params) { var param = params[0]; if (param <= 0) { @@ -4261,68 +4486,83 @@ } }; - // CSI Pm i Media Copy (MC). - // Ps = 0 -> Print screen (default). - // Ps = 4 -> Turn off printer controller mode. - // Ps = 5 -> Turn on printer controller mode. - // CSI ? Pm i - // Media Copy (MC, DEC-specific). - // Ps = 1 -> Print line containing cursor. - // Ps = 4 -> Turn off autoprint mode. - // Ps = 5 -> Turn on autoprint mode. - // Ps = 1 0 -> Print composed display, ignores DECPEX. - // Ps = 1 1 -> Print all pages. + + /** + * CSI Pm i Media Copy (MC). + * Ps = 0 -> Print screen (default). + * Ps = 4 -> Turn off printer controller mode. + * Ps = 5 -> Turn on printer controller mode. + * CSI ? Pm i + * Media Copy (MC, DEC-specific). + * Ps = 1 -> Print line containing cursor. + * Ps = 4 -> Turn off autoprint mode. + * Ps = 5 -> Turn on autoprint mode. + * Ps = 1 0 -> Print composed display, ignores DECPEX. + * Ps = 1 1 -> Print all pages. + */ Terminal.prototype.mediaCopy = function(params) { ; }; - // CSI > Ps; Ps m - // Set or reset resource-values used by xterm to decide whether - // to construct escape sequences holding information about the - // modifiers pressed with a given key. The first parameter iden- - // tifies the resource to set/reset. The second parameter is the - // value to assign to the resource. If the second parameter is - // omitted, the resource is reset to its initial value. - // Ps = 1 -> modifyCursorKeys. - // Ps = 2 -> modifyFunctionKeys. - // Ps = 4 -> modifyOtherKeys. - // If no parameters are given, all resources are reset to their - // initial values. + + /** + * CSI > Ps; Ps m + * Set or reset resource-values used by xterm to decide whether + * to construct escape sequences holding information about the + * modifiers pressed with a given key. The first parameter iden- + * tifies the resource to set/reset. The second parameter is the + * value to assign to the resource. If the second parameter is + * omitted, the resource is reset to its initial value. + * Ps = 1 -> modifyCursorKeys. + * Ps = 2 -> modifyFunctionKeys. + * Ps = 4 -> modifyOtherKeys. + * If no parameters are given, all resources are reset to their + * initial values. + */ Terminal.prototype.setResources = function(params) { ; }; - // CSI > Ps n - // Disable modifiers which may be enabled via the CSI > Ps; Ps m - // sequence. This corresponds to a resource value of "-1", which - // cannot be set with the other sequence. The parameter identi- - // fies the resource to be disabled: - // Ps = 1 -> modifyCursorKeys. - // Ps = 2 -> modifyFunctionKeys. - // Ps = 4 -> modifyOtherKeys. - // If the parameter is omitted, modifyFunctionKeys is disabled. - // When modifyFunctionKeys is disabled, xterm uses the modifier - // keys to make an extended sequence of functions rather than - // adding a parameter to each function key to denote the modi- - // fiers. + + /** + * CSI > Ps n + * Disable modifiers which may be enabled via the CSI > Ps; Ps m + * sequence. This corresponds to a resource value of "-1", which + * cannot be set with the other sequence. The parameter identi- + * fies the resource to be disabled: + * Ps = 1 -> modifyCursorKeys. + * Ps = 2 -> modifyFunctionKeys. + * Ps = 4 -> modifyOtherKeys. + * If the parameter is omitted, modifyFunctionKeys is disabled. + * When modifyFunctionKeys is disabled, xterm uses the modifier + * keys to make an extended sequence of functions rather than + * adding a parameter to each function key to denote the modi- + * fiers. + */ Terminal.prototype.disableModifiers = function(params) { ; }; - // CSI > Ps p - // Set resource value pointerMode. This is used by xterm to - // decide whether to hide the pointer cursor as the user types. - // Valid values for the parameter: - // Ps = 0 -> never hide the pointer. - // Ps = 1 -> hide if the mouse tracking mode is not enabled. - // Ps = 2 -> always hide the pointer. If no parameter is - // given, xterm uses the default, which is 1 . + + /** + * CSI > Ps p + * Set resource value pointerMode. This is used by xterm to + * decide whether to hide the pointer cursor as the user types. + * Valid values for the parameter: + * Ps = 0 -> never hide the pointer. + * Ps = 1 -> hide if the mouse tracking mode is not enabled. + * Ps = 2 -> always hide the pointer. If no parameter is + * given, xterm uses the default, which is 1 . + */ Terminal.prototype.setPointerMode = function(params) { ; }; - // CSI ! p Soft terminal reset (DECSTR). - // http://vt100.net/docs/vt220-rm/table4-10.html + + /** + * CSI ! p Soft terminal reset (DECSTR). + * http://vt100.net/docs/vt220-rm/table4-10.html + */ Terminal.prototype.softReset = function(params) { this.cursorHidden = false; this.insertMode = false; @@ -4339,88 +4579,112 @@ this.charsets = [null]; // ?? }; - // CSI Ps$ p - // Request ANSI mode (DECRQM). For VT300 and up, reply is - // CSI Ps; Pm$ y - // where Ps is the mode number as in RM, and Pm is the mode - // value: - // 0 - not recognized - // 1 - set - // 2 - reset - // 3 - permanently set - // 4 - permanently reset + + /** + * CSI Ps$ p + * Request ANSI mode (DECRQM). For VT300 and up, reply is + * CSI Ps; Pm$ y + * where Ps is the mode number as in RM, and Pm is the mode + * value: + * 0 - not recognized + * 1 - set + * 2 - reset + * 3 - permanently set + * 4 - permanently reset + */ Terminal.prototype.requestAnsiMode = function(params) { ; }; - // CSI ? Ps$ p - // Request DEC private mode (DECRQM). For VT300 and up, reply is - // CSI ? Ps; Pm$ p - // where Ps is the mode number as in DECSET, Pm is the mode value - // as in the ANSI DECRQM. + + /** + * CSI ? Ps$ p + * Request DEC private mode (DECRQM). For VT300 and up, reply is + * CSI ? Ps; Pm$ p + * where Ps is the mode number as in DECSET, Pm is the mode value + * as in the ANSI DECRQM. + */ Terminal.prototype.requestPrivateMode = function(params) { ; }; - // CSI Ps ; Ps " p - // Set conformance level (DECSCL). Valid values for the first - // parameter: - // Ps = 6 1 -> VT100. - // Ps = 6 2 -> VT200. - // Ps = 6 3 -> VT300. - // Valid values for the second parameter: - // Ps = 0 -> 8-bit controls. - // Ps = 1 -> 7-bit controls (always set for VT100). - // Ps = 2 -> 8-bit controls. + + /** + * CSI Ps ; Ps " p + * Set conformance level (DECSCL). Valid values for the first + * parameter: + * Ps = 6 1 -> VT100. + * Ps = 6 2 -> VT200. + * Ps = 6 3 -> VT300. + * Valid values for the second parameter: + * Ps = 0 -> 8-bit controls. + * Ps = 1 -> 7-bit controls (always set for VT100). + * Ps = 2 -> 8-bit controls. + */ Terminal.prototype.setConformanceLevel = function(params) { ; }; - // CSI Ps q Load LEDs (DECLL). - // Ps = 0 -> Clear all LEDS (default). - // Ps = 1 -> Light Num Lock. - // Ps = 2 -> Light Caps Lock. - // Ps = 3 -> Light Scroll Lock. - // Ps = 2 1 -> Extinguish Num Lock. - // Ps = 2 2 -> Extinguish Caps Lock. - // Ps = 2 3 -> Extinguish Scroll Lock. + + /** + * CSI Ps q Load LEDs (DECLL). + * Ps = 0 -> Clear all LEDS (default). + * Ps = 1 -> Light Num Lock. + * Ps = 2 -> Light Caps Lock. + * Ps = 3 -> Light Scroll Lock. + * Ps = 2 1 -> Extinguish Num Lock. + * Ps = 2 2 -> Extinguish Caps Lock. + * Ps = 2 3 -> Extinguish Scroll Lock. + */ Terminal.prototype.loadLEDs = function(params) { ; }; - // CSI Ps SP q - // Set cursor style (DECSCUSR, VT520). - // Ps = 0 -> blinking block. - // Ps = 1 -> blinking block (default). - // Ps = 2 -> steady block. - // Ps = 3 -> blinking underline. - // Ps = 4 -> steady underline. + + /** + * CSI Ps SP q + * Set cursor style (DECSCUSR, VT520). + * Ps = 0 -> blinking block. + * Ps = 1 -> blinking block (default). + * Ps = 2 -> steady block. + * Ps = 3 -> blinking underline. + * Ps = 4 -> steady underline. + */ Terminal.prototype.setCursorStyle = function(params) { ; }; - // CSI Ps " q - // Select character protection attribute (DECSCA). Valid values - // for the parameter: - // Ps = 0 -> DECSED and DECSEL can erase (default). - // Ps = 1 -> DECSED and DECSEL cannot erase. - // Ps = 2 -> DECSED and DECSEL can erase. + + /** + * CSI Ps " q + * Select character protection attribute (DECSCA). Valid values + * for the parameter: + * Ps = 0 -> DECSED and DECSEL can erase (default). + * Ps = 1 -> DECSED and DECSEL cannot erase. + * Ps = 2 -> DECSED and DECSEL can erase. + */ Terminal.prototype.setCharProtectionAttr = function(params) { ; }; - // CSI ? Pm r - // Restore DEC Private Mode Values. The value of Ps previously - // saved is restored. Ps values are the same as for DECSET. + + /** + * CSI ? Pm r + * Restore DEC Private Mode Values. The value of Ps previously + * saved is restored. Ps values are the same as for DECSET. + */ Terminal.prototype.restorePrivateValues = function(params) { ; }; - // CSI Pt; Pl; Pb; Pr; Ps$ r - // Change Attributes in Rectangular Area (DECCARA), VT400 and up. - // Pt; Pl; Pb; Pr denotes the rectangle. - // Ps denotes the SGR attributes to change: 0, 1, 4, 5, 7. - // NOTE: xterm doesn't enable this code by default. + + /** + * CSI Pt; Pl; Pb; Pr; Ps$ r + * Change Attributes in Rectangular Area (DECCARA), VT400 and up. + * Pt; Pl; Pb; Pr denotes the rectangle. + * Ps denotes the SGR attributes to change: 0, 1, 4, 5, 7. + * NOTE: xterm doesn't enable this code by default. + */ Terminal.prototype.setAttrInRectangle = function(params) { var t = params[0] , l = params[1] @@ -4444,11 +4708,13 @@ }; - // CSI Pc; Pt; Pl; Pb; Pr$ x - // Fill Rectangular Area (DECFRA), VT420 and up. - // Pc is the character to use. - // Pt; Pl; Pb; Pr denotes the rectangle. - // NOTE: xterm doesn't enable this code by default. + /** + * CSI Pc; Pt; Pl; Pb; Pr$ x + * Fill Rectangular Area (DECFRA), VT420 and up. + * Pc is the character to use. + * Pt; Pl; Pb; Pr denotes the rectangle. + * NOTE: xterm doesn't enable this code by default. + */ Terminal.prototype.fillRectangle = function(params) { var ch = params[0] , t = params[1] @@ -4471,28 +4737,34 @@ this.updateRange(params[3]); }; - // CSI Ps ; Pu ' z - // Enable Locator Reporting (DECELR). - // Valid values for the first parameter: - // Ps = 0 -> Locator disabled (default). - // Ps = 1 -> Locator enabled. - // Ps = 2 -> Locator enabled for one report, then disabled. - // The second parameter specifies the coordinate unit for locator - // reports. - // Valid values for the second parameter: - // Pu = 0 <- or omitted -> default to character cells. - // Pu = 1 <- device physical pixels. - // Pu = 2 <- character cells. + + /** + * CSI Ps ; Pu ' z + * Enable Locator Reporting (DECELR). + * Valid values for the first parameter: + * Ps = 0 -> Locator disabled (default). + * Ps = 1 -> Locator enabled. + * Ps = 2 -> Locator enabled for one report, then disabled. + * The second parameter specifies the coordinate unit for locator + * reports. + * Valid values for the second parameter: + * Pu = 0 <- or omitted -> default to character cells. + * Pu = 1 <- device physical pixels. + * Pu = 2 <- character cells. + */ Terminal.prototype.enableLocatorReporting = function(params) { var val = params[0] > 0; //this.mouseEvents = val; //this.decLocator = val; }; - // CSI Pt; Pl; Pb; Pr$ z - // Erase Rectangular Area (DECERA), VT400 and up. - // Pt; Pl; Pb; Pr denotes the rectangle. - // NOTE: xterm doesn't enable this code by default. + + /** + * CSI Pt; Pl; Pb; Pr$ z + * Erase Rectangular Area (DECERA), VT400 and up. + * Pt; Pl; Pb; Pr denotes the rectangle. + * NOTE: xterm doesn't enable this code by default. + */ Terminal.prototype.eraseRectangle = function(params) { var t = params[0] , l = params[1] @@ -4518,9 +4790,11 @@ }; - // CSI P m SP } - // Insert P s Column(s) (default = 1) (DECIC), VT420 and up. - // NOTE: xterm doesn't enable this code by default. + /** + * CSI P m SP } + * Insert P s Column(s) (default = 1) (DECIC), VT420 and up. + * NOTE: xterm doesn't enable this code by default. + */ Terminal.prototype.insertColumns = function() { var param = params[0] , l = this.ybase + this.rows @@ -4538,9 +4812,11 @@ }; - // CSI P m SP ~ - // Delete P s Column(s) (default = 1) (DECDC), VT420 and up - // NOTE: xterm doesn't enable this code by default. + /** + * CSI P m SP ~ + * Delete P s Column(s) (default = 1) (DECDC), VT420 and up + * NOTE: xterm doesn't enable this code by default. + */ Terminal.prototype.deleteColumns = function() { var param = params[0] , l = this.ybase + this.rows @@ -4693,7 +4969,11 @@ (term.isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) || (term.isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey); - // Don't invoke for arrows, pageDown, home, backspace, etc. + if (ev.type == 'keypress') { + return thirdLevelKey; + } + + // Don't invoke for arrows, pageDown, home, backspace, etc. (on non-keypress events) return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47); } @@ -4877,12 +5157,11 @@ * * @param {string} event The name of the event. TODO: Document all event types * @param {function} callback The function to call when the event is triggered. - * - * @public */ Terminal.on = on; Terminal.off = off; Terminal.cancel = cancel; + return Terminal; }); diff --git a/test/escape_sequence_files/NOTES b/test/escape_sequence_files/NOTES new file mode 100644 index 00000000..bcadcb41 --- /dev/null +++ b/test/escape_sequence_files/NOTES @@ -0,0 +1,21 @@ +All tests are made for 80x25 terminal. Make sure to run tests with 80x25. + +Create .text files from xterm (expected output) +- open xterm +- resize xterm to 80x25 +- run `python run_tests.py` +- copy & paste whole window output into editor +- add 26th empty line (due to line handling in toString) - not a bug, a feature ;) +- advance to next test with ^D + + +Known problems +############## + + +t0031-HBP: + - no documentation at all about CSIj found - skipping + +t0050-ICH: + - bug in xterm? (cant ICH last real char, always sticks to last col) + - text used from https://github.com/MarkLodato/vt100-parser/blob/master/test/t0050-ICH.text diff --git a/test/escape_sequence_files/t0001-all_printable.in b/test/escape_sequence_files/t0001-all_printable.in new file mode 100644 index 00000000..2f36543a --- /dev/null +++ b/test/escape_sequence_files/t0001-all_printable.in @@ -0,0 +1,6 @@ + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +`abcdefghijklmno +pqrstuvwxyz{|}~ diff --git a/test/escape_sequence_files/t0001-all_printable.text b/test/escape_sequence_files/t0001-all_printable.text new file mode 100644 index 00000000..421f5a77 --- /dev/null +++ b/test/escape_sequence_files/t0001-all_printable.text @@ -0,0 +1,25 @@ + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +`abcdefghijklmno +pqrstuvwxyz{|}~ + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0002-history.in b/test/escape_sequence_files/t0002-history.in new file mode 100644 index 00000000..3bc7fbc7 --- /dev/null +++ b/test/escape_sequence_files/t0002-history.in @@ -0,0 +1,95 @@ + +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +@ +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +\ +] +^ +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +{ +| +} +~ diff --git a/test/escape_sequence_files/t0002-history.text b/test/escape_sequence_files/t0002-history.text new file mode 100644 index 00000000..39bdf529 --- /dev/null +++ b/test/escape_sequence_files/t0002-history.text @@ -0,0 +1,25 @@ +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +{ +| +} +~ + diff --git a/test/escape_sequence_files/t0002j-simple_string.in b/test/escape_sequence_files/t0002j-simple_string.in new file mode 100644 index 00000000..a679175e --- /dev/null +++ b/test/escape_sequence_files/t0002j-simple_string.in @@ -0,0 +1 @@ +abcdefghijklmnopqrstuvwxyz0123456789 \ No newline at end of file diff --git a/test/escape_sequence_files/t0002j-simple_string.text b/test/escape_sequence_files/t0002j-simple_string.text new file mode 100644 index 00000000..097318d4 --- /dev/null +++ b/test/escape_sequence_files/t0002j-simple_string.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrstuvwxyz0123456789 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0003-line_wrap.in b/test/escape_sequence_files/t0003-line_wrap.in new file mode 100644 index 00000000..d110db88 --- /dev/null +++ b/test/escape_sequence_files/t0003-line_wrap.in @@ -0,0 +1,83 @@ +a +ab +abc +abcd +abcde +abcdef +abcdefg +abcdefgh +abcdefghi +abcdefghij +abcdefghijk +abcdefghijkl +abcdefghijklm +abcdefghijklmn +abcdefghijklmno +abcdefghijklmnop +abcdefghijklmnopq +abcdefghijklmnopqr +abcdefghijklmnopqrs +abcdefghijklmnopqrst +abcdefghijklmnopqrstu +abcdefghijklmnopqrstuv +abcdefghijklmnopqrstuvw +abcdefghijklmnopqrstuvwx +abcdefghijklmnopqrstuvwxy +abcdefghijklmnopqrstuvwxyz +abcdefghijklmnopqrstuvwxyzA +abcdefghijklmnopqrstuvwxyzAB +abcdefghijklmnopqrstuvwxyzABC +abcdefghijklmnopqrstuvwxyzABCD +abcdefghijklmnopqrstuvwxyzABCDE +abcdefghijklmnopqrstuvwxyzABCDEF +abcdefghijklmnopqrstuvwxyzABCDEFG +abcdefghijklmnopqrstuvwxyzABCDEFGH +abcdefghijklmnopqrstuvwxyzABCDEFGHI +abcdefghijklmnopqrstuvwxyzABCDEFGHIJ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJK +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst diff --git a/test/escape_sequence_files/t0003-line_wrap.text b/test/escape_sequence_files/t0003-line_wrap.text new file mode 100644 index 00000000..fbe1c564 --- /dev/null +++ b/test/escape_sequence_files/t0003-line_wrap.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +r +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +rs +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +rst + diff --git a/test/escape_sequence_files/t0003j-LF.in b/test/escape_sequence_files/t0003j-LF.in new file mode 100644 index 00000000..9f52852d --- /dev/null +++ b/test/escape_sequence_files/t0003j-LF.in @@ -0,0 +1,26 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 diff --git a/test/escape_sequence_files/t0003j-LF.text b/test/escape_sequence_files/t0003j-LF.text new file mode 100644 index 00000000..a6210e16 --- /dev/null +++ b/test/escape_sequence_files/t0003j-LF.text @@ -0,0 +1,25 @@ +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 + diff --git a/test/escape_sequence_files/t0004-LF.in b/test/escape_sequence_files/t0004-LF.in new file mode 100644 index 00000000..4f4aa535 --- /dev/null +++ b/test/escape_sequence_files/t0004-LF.in @@ -0,0 +1,83 @@ +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t diff --git a/test/escape_sequence_files/t0004-LF.text b/test/escape_sequence_files/t0004-LF.text new file mode 100644 index 00000000..3756aca2 --- /dev/null +++ b/test/escape_sequence_files/t0004-LF.text @@ -0,0 +1,25 @@ +7 +8 +9 +0 +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t + diff --git a/test/escape_sequence_files/t0004j-CR.in b/test/escape_sequence_files/t0004j-CR.in new file mode 100644 index 00000000..d40432d7 --- /dev/null +++ b/test/escape_sequence_files/t0004j-CR.in @@ -0,0 +1,7 @@ +1 x + 2 x + 3 x + 4 x + 5 x + 6 x + 7 x \ No newline at end of file diff --git a/test/escape_sequence_files/t0004j-CR.text b/test/escape_sequence_files/t0004j-CR.text new file mode 100644 index 00000000..beb0e35b --- /dev/null +++ b/test/escape_sequence_files/t0004j-CR.text @@ -0,0 +1,25 @@ +x +x2 +x 3 +x 4 +x 5 +x 6 +x 7 + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0005-CR.in b/test/escape_sequence_files/t0005-CR.in new file mode 100644 index 00000000..d5f545ae --- /dev/null +++ b/test/escape_sequence_files/t0005-CR.in @@ -0,0 +1,82 @@ +b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a + b a diff --git a/test/escape_sequence_files/t0005-CR.text b/test/escape_sequence_files/t0005-CR.text new file mode 100644 index 00000000..dfcc0496 --- /dev/null +++ b/test/escape_sequence_files/t0005-CR.text @@ -0,0 +1,25 @@ +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b +a b + +a + +ab + diff --git a/test/escape_sequence_files/t0006-IND.in b/test/escape_sequence_files/t0006-IND.in new file mode 100644 index 00000000..614552f0 --- /dev/null +++ b/test/escape_sequence_files/t0006-IND.in @@ -0,0 +1 @@ +aDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D5D6D7D8D9D0DaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDt diff --git a/test/escape_sequence_files/t0006-IND.text b/test/escape_sequence_files/t0006-IND.text new file mode 100644 index 00000000..8c69a7f9 --- /dev/null +++ b/test/escape_sequence_files/t0006-IND.text @@ -0,0 +1,25 @@ + 7 + 8 + 9 + 0 + a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + diff --git a/test/escape_sequence_files/t0007-space_at_end.in b/test/escape_sequence_files/t0007-space_at_end.in new file mode 100644 index 00000000..73d19c5b --- /dev/null +++ b/test/escape_sequence_files/t0007-space_at_end.in @@ -0,0 +1,8 @@ +0 space: +1 space: +2 space: +3 space: +70 space: +71 space: +72 space: +73 space: diff --git a/test/escape_sequence_files/t0007-space_at_end.text b/test/escape_sequence_files/t0007-space_at_end.text new file mode 100644 index 00000000..f46caeec --- /dev/null +++ b/test/escape_sequence_files/t0007-space_at_end.text @@ -0,0 +1,25 @@ +0 space: +1 space: +2 space: +3 space: +70 space: +71 space: +72 space: + +73 space: + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0008-BS.in b/test/escape_sequence_files/t0008-BS.in new file mode 100644 index 00000000..0980d873 --- /dev/null +++ b/test/escape_sequence_files/t0008-BS.in @@ -0,0 +1,7 @@ +abcdefghijklmnopqrstuvwxyz! +abc@ +# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop$ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq% +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr^ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs& diff --git a/test/escape_sequence_files/t0008-BS.text b/test/escape_sequence_files/t0008-BS.text new file mode 100644 index 00000000..77d17103 --- /dev/null +++ b/test/escape_sequence_files/t0008-BS.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrst!vwxyz +@bc +# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij$lmnop +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij%lmnopq +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +^ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +&s + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0009-NEL.in b/test/escape_sequence_files/t0009-NEL.in new file mode 100644 index 00000000..b541ec4c --- /dev/null +++ b/test/escape_sequence_files/t0009-NEL.in @@ -0,0 +1 @@ +aEabEabcEabcdEabcdeEabcdefEabcdefgEabcdefghEabcdefghiEabcdefghijEabcdefghijkEabcdefghijklEabcdefghijklmEabcdefghijklmnEabcdefghijklmnoEabcdefghijklmnopEabcdefghijklmnopqEabcdefghijklmnopqrEabcdefghijklmnopqrsEabcdefghijklmnopqrstEabcdefghijklmnopqrstuEabcdefghijklmnopqrstuvEabcdefghijklmnopqrstuvwEabcdefghijklmnopqrstuvwxEabcdefghijklmnopqrstuvwxyEabcdefghijklmnopqrstuvwxyzEabcdefghijklmnopqrstuvwxyzAEabcdefghijklmnopqrstuvwxyzABEabcdefghijklmnopqrstuvwxyzABCEabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEEabcdefghijklmnopqrstuvwxyzABCDEFEabcdefghijklmnopqrstuvwxyzABCDEFGEabcdefghijklmnopqrstuvwxyzABCDEFGHEabcdefghijklmnopqrstuvwxyzABCDEFGHIEabcdefghijklmnopqrstuvwxyzABCDEFGHIJEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQREabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890aEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdeEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghiEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnoEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrsEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst diff --git a/test/escape_sequence_files/t0009-NEL.text b/test/escape_sequence_files/t0009-NEL.text new file mode 100644 index 00000000..fbe1c564 --- /dev/null +++ b/test/escape_sequence_files/t0009-NEL.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +r +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +rs +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +rst + diff --git a/test/escape_sequence_files/t0010-RI.in b/test/escape_sequence_files/t0010-RI.in new file mode 100644 index 00000000..c2aeb67f --- /dev/null +++ b/test/escape_sequence_files/t0010-RI.in @@ -0,0 +1,10 @@ +a +b +c +dMeMfMg +h +i +j....................................................................kMlMmMn + + + diff --git a/test/escape_sequence_files/t0010-RI.text b/test/escape_sequence_files/t0010-RI.text new file mode 100644 index 00000000..5320654f --- /dev/null +++ b/test/escape_sequence_files/t0010-RI.text @@ -0,0 +1,25 @@ +a g n +h f m +ie l +j....................................................................k + + + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0011-RI_scroll.in b/test/escape_sequence_files/t0011-RI_scroll.in new file mode 100644 index 00000000..14da12dd --- /dev/null +++ b/test/escape_sequence_files/t0011-RI_scroll.in @@ -0,0 +1,47 @@ +And the third. + + + + + + + + + + + + + + + + + + + + +This should be the last line. +This one should be lost. +This one's a goner, too. MMMMMMMMMMMMMMMMMMMMMMMMThis is second line. MThis should be the first line. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0011-RI_scroll.text b/test/escape_sequence_files/t0011-RI_scroll.text new file mode 100644 index 00000000..21cb1cf6 --- /dev/null +++ b/test/escape_sequence_files/t0011-RI_scroll.text @@ -0,0 +1,25 @@ +This should be the first line. +This is second line. +And the third. + + + + + + + + + + + + + + + + + + + + +This should be the last line. +This one should be lost. diff --git a/test/escape_sequence_files/t0012-VT.in b/test/escape_sequence_files/t0012-VT.in new file mode 100644 index 00000000..ee56208f --- /dev/null +++ b/test/escape_sequence_files/t0012-VT.in @@ -0,0 +1 @@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst \ No newline at end of file diff --git a/test/escape_sequence_files/t0012-VT.text b/test/escape_sequence_files/t0012-VT.text new file mode 100644 index 00000000..8c69a7f9 --- /dev/null +++ b/test/escape_sequence_files/t0012-VT.text @@ -0,0 +1,25 @@ + 7 + 8 + 9 + 0 + a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + diff --git a/test/escape_sequence_files/t0013-FF.in b/test/escape_sequence_files/t0013-FF.in new file mode 100644 index 00000000..01198c2b --- /dev/null +++ b/test/escape_sequence_files/t0013-FF.in @@ -0,0 +1 @@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst diff --git a/test/escape_sequence_files/t0013-FF.text b/test/escape_sequence_files/t0013-FF.text new file mode 100644 index 00000000..16c9c2b3 --- /dev/null +++ b/test/escape_sequence_files/t0013-FF.text @@ -0,0 +1,25 @@ + 8 + 9 + 0 + a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + + diff --git a/test/escape_sequence_files/t0014-CAN.in b/test/escape_sequence_files/t0014-CAN.in new file mode 100644 index 00000000..64bae4a5 --- /dev/null +++ b/test/escape_sequence_files/t0014-CAN.in @@ -0,0 +1,8 @@ +abcdDefgh +abcdDefgh +abcd!Defgh +abcd!*Defgh +abcd[Defgh +abcd[!Defgh +abcd[2Defgh +abcd[*2;Defgh diff --git a/test/escape_sequence_files/t0014-CAN.text b/test/escape_sequence_files/t0014-CAN.text new file mode 100644 index 00000000..77a38fa3 --- /dev/null +++ b/test/escape_sequence_files/t0014-CAN.text @@ -0,0 +1,25 @@ +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0015-SUB.in b/test/escape_sequence_files/t0015-SUB.in new file mode 100644 index 00000000..1bd237ff --- /dev/null +++ b/test/escape_sequence_files/t0015-SUB.in @@ -0,0 +1,8 @@ +abcdDefgh +abcdDefgh +abcd!Defgh +abcd!*Defgh +abcd[Defgh +abcd[!Defgh +abcd[2Defgh +abcd[*2;Defgh diff --git a/test/escape_sequence_files/t0015-SUB.text b/test/escape_sequence_files/t0015-SUB.text new file mode 100644 index 00000000..77a38fa3 --- /dev/null +++ b/test/escape_sequence_files/t0015-SUB.text @@ -0,0 +1,25 @@ +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0016-SU.in b/test/escape_sequence_files/t0016-SU.in new file mode 100644 index 00000000..7e525732 --- /dev/null +++ b/test/escape_sequence_files/t0016-SU.in @@ -0,0 +1,17 @@ +Hello[SGoodbye + +Up[3SDown +x +[2S +-----------------------------------------------------------------------------[Sx +------------------------------------------------------------------------------[Sx +-------------------------------------------------------------------------------[Sx +--------------------------------------------------------------------------------[Sx +---------------------------------------------------------------------------------[Sx +.............................................................................[Sx +..............................................................................[Sx +...............................................................................[Sx +................................................................................[Sx +.................................................................................[Sx +[30S +The End. diff --git a/test/escape_sequence_files/t0016-SU.text b/test/escape_sequence_files/t0016-SU.text new file mode 100644 index 00000000..2323fa34 --- /dev/null +++ b/test/escape_sequence_files/t0016-SU.text @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + +The End. + + + + + diff --git a/test/escape_sequence_files/t0017-SD.in b/test/escape_sequence_files/t0017-SD.in new file mode 100644 index 00000000..ce764405 --- /dev/null +++ b/test/escape_sequence_files/t0017-SD.in @@ -0,0 +1,54 @@ +A + B + C + D + E + F + G + H + I + J + K + L + M + N + O + P + Q + R + S + T + U + V + W + X[3S +a + b + c + d + e[3T + f + g + h +------------------------------------------------------------------------------[T1 + + +-------------------------------------------------------------------------------[T2 + + +--------------------------------------------------------------------------------[T3 + + +---------------------------------------------------------------------------------[T4 + + +..............................................................................[T5 + + +...............................................................................[T6 + + +................................................................................[T7 + + +.................................................................................[T8 diff --git a/test/escape_sequence_files/t0017-SD.text b/test/escape_sequence_files/t0017-SD.text new file mode 100644 index 00000000..6e39cd9c --- /dev/null +++ b/test/escape_sequence_files/t0017-SD.text @@ -0,0 +1,25 @@ + + +a + b + f + g + h 1 + + 2 + + +3 + + +-4------------------------------------------------------------------------------ + + 5 + + 6 + + 7 + + +8............................................................................... + diff --git a/test/escape_sequence_files/t0020-CUF.in b/test/escape_sequence_files/t0020-CUF.in new file mode 100644 index 00000000..9df6cd70 --- /dev/null +++ b/test/escape_sequence_files/t0020-CUF.in @@ -0,0 +1,14 @@ +abcdefg[Chijkl +abcdefg[10Chijkl +abcdefg[10;3Chijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno[C@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[C@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[C@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr[C@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[3C@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[4C@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[5C@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[6C@ +[79Cx +[80Cx +abcd[10C diff --git a/test/escape_sequence_files/t0020-CUF.text b/test/escape_sequence_files/t0020-CUF.text new file mode 100644 index 00000000..b868261c --- /dev/null +++ b/test/escape_sequence_files/t0020-CUF.text @@ -0,0 +1,25 @@ +abcdefg hijkl +abcdefg hijkl +abcdefg hijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +r @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @ + x + x +abcd + + + + + + + + + + diff --git a/test/escape_sequence_files/t0021-CUB.in b/test/escape_sequence_files/t0021-CUB.in new file mode 100644 index 00000000..b07f7532 --- /dev/null +++ b/test/escape_sequence_files/t0021-CUB.in @@ -0,0 +1,8 @@ +abcdefg[D!@ +abcdefg[10D!@ +abcdefg[2;3D!@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno[D@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[D@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[D@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr[D@ +[Dx diff --git a/test/escape_sequence_files/t0021-CUB.text b/test/escape_sequence_files/t0021-CUB.text new file mode 100644 index 00000000..9a1b3854 --- /dev/null +++ b/test/escape_sequence_files/t0021-CUB.text @@ -0,0 +1,25 @@ +abcdef!@ +!@cdefg +abcde!@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@q +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +@ +x + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0022-CUU.in b/test/escape_sequence_files/t0022-CUU.in new file mode 100644 index 00000000..4c47f30c --- /dev/null +++ b/test/escape_sequence_files/t0022-CUU.in @@ -0,0 +1,25 @@ +a +b +c +d[Ae[Af[Ag +h +i +j....................................................................k[Al[Am[An + + + + + + + + + + + +[0A0[1A1[2A2[3;5A3 + + + + + + diff --git a/test/escape_sequence_files/t0022-CUU.text b/test/escape_sequence_files/t0022-CUU.text new file mode 100644 index 00000000..b786ade3 --- /dev/null +++ b/test/escape_sequence_files/t0022-CUU.text @@ -0,0 +1,25 @@ +a g n +h f m +ie l +j....................................................................k + + 3 + + + 2 + + 1 +0 + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0023-CUU_scroll.in b/test/escape_sequence_files/t0023-CUU_scroll.in new file mode 100644 index 00000000..e0c92431 --- /dev/null +++ b/test/escape_sequence_files/t0023-CUU_scroll.in @@ -0,0 +1,50 @@ +This is the first line. +This is the second line. +And the third. +This line should be deleted. + + + + + + + + + + + + + + + + + + + + + +Penultimate line. +This should be the last line. [36AI have gone up all the way... + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0023-CUU_scroll.text b/test/escape_sequence_files/t0023-CUU_scroll.text new file mode 100644 index 00000000..96b8726f --- /dev/null +++ b/test/escape_sequence_files/t0023-CUU_scroll.text @@ -0,0 +1,25 @@ +I have gone up all the way... +This line should be deleted. + + + + + + + + + + + + + + + + + + + + + +Penultimate line. +This should be the last line. diff --git a/test/escape_sequence_files/t0024-CUD.in b/test/escape_sequence_files/t0024-CUD.in new file mode 100644 index 00000000..e971bbeb --- /dev/null +++ b/test/escape_sequence_files/t0024-CUD.in @@ -0,0 +1,24 @@ +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x[23A0[B1[0B2[1B3[2B4[3;5B5[100BBottom line. [8A[78CA[BB[BC[BD[BE [6B diff --git a/test/escape_sequence_files/t0024-CUD.text b/test/escape_sequence_files/t0024-CUD.text new file mode 100644 index 00000000..622c0b04 --- /dev/null +++ b/test/escape_sequence_files/t0024-CUD.text @@ -0,0 +1,25 @@ +b 1 +c 2 +d 3 +e +f 4 +g +h +i 5 +j +k +l +m +n +o +p +q A +r B +s C +t D +u E +v +w +x + Bottom line. + diff --git a/test/escape_sequence_files/t0025-CUP.in b/test/escape_sequence_files/t0025-CUP.in new file mode 100644 index 00000000..b62631e4 --- /dev/null +++ b/test/escape_sequence_files/t0025-CUP.in @@ -0,0 +1 @@ +[Ha[2;3Hb[;4Hc[10;10Hd[5He[40;16Hf[20;100Hg[100;200H diff --git a/test/escape_sequence_files/t0025-CUP.text b/test/escape_sequence_files/t0025-CUP.text new file mode 100644 index 00000000..44dc6198 --- /dev/null +++ b/test/escape_sequence_files/t0025-CUP.text @@ -0,0 +1,25 @@ + b + + +e + + + + + d + + + + + + + + + + g + + + + + f + diff --git a/test/escape_sequence_files/t0026-CNL.in b/test/escape_sequence_files/t0026-CNL.in new file mode 100644 index 00000000..83186822 --- /dev/null +++ b/test/escape_sequence_files/t0026-CNL.in @@ -0,0 +1,2 @@ +abc[Edef[5Eghi +-------------------------------------------------------------------------abcdefg[Ehij[100Elast line diff --git a/test/escape_sequence_files/t0026-CNL.text b/test/escape_sequence_files/t0026-CNL.text new file mode 100644 index 00000000..61ac27e3 --- /dev/null +++ b/test/escape_sequence_files/t0026-CNL.text @@ -0,0 +1,25 @@ +def + + + + +ghi +-------------------------------------------------------------------------abcdefg +hij + + + + + + + + + + + + + + + +last line + diff --git a/test/escape_sequence_files/t0027-CPL.in b/test/escape_sequence_files/t0027-CPL.in new file mode 100644 index 00000000..edafc49d --- /dev/null +++ b/test/escape_sequence_files/t0027-CPL.in @@ -0,0 +1,6 @@ +erased[Freplacement + + +line four[2Fline two + + diff --git a/test/escape_sequence_files/t0027-CPL.text b/test/escape_sequence_files/t0027-CPL.text new file mode 100644 index 00000000..847ed7ce --- /dev/null +++ b/test/escape_sequence_files/t0027-CPL.text @@ -0,0 +1,25 @@ +replacement +line two + +line four + + + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0030-HPR.in b/test/escape_sequence_files/t0030-HPR.in new file mode 100644 index 00000000..485720f9 --- /dev/null +++ b/test/escape_sequence_files/t0030-HPR.in @@ -0,0 +1,14 @@ +abcdefg[ahijkl +abcdefg[10ahijkl +abcdefg[10;3ahijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno[a@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[a@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[a@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr[a@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[3a@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[4a@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[5a@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[6a@ +[79ax +[80ax +abcd[10a diff --git a/test/escape_sequence_files/t0030-HPR.text b/test/escape_sequence_files/t0030-HPR.text new file mode 100644 index 00000000..b868261c --- /dev/null +++ b/test/escape_sequence_files/t0030-HPR.text @@ -0,0 +1,25 @@ +abcdefg hijkl +abcdefg hijkl +abcdefg hijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +r @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @ + x + x +abcd + + + + + + + + + + diff --git a/test/escape_sequence_files/t0031-HPB.in_ b/test/escape_sequence_files/t0031-HPB.in_ new file mode 100644 index 00000000..13de7380 --- /dev/null +++ b/test/escape_sequence_files/t0031-HPB.in_ @@ -0,0 +1,8 @@ +abcdefg[j!@ +abcdefg[10j!@ +abcdefg[2;3j!@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno[j@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[j@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[j@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr[j@ +[jx diff --git a/test/escape_sequence_files/t0031-HPB.text b/test/escape_sequence_files/t0031-HPB.text new file mode 100644 index 00000000..9ec40876 --- /dev/null +++ b/test/escape_sequence_files/t0031-HPB.text @@ -0,0 +1,25 @@ +abcdefg!@ +abcdefg!@ +abcdefg!@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +r@ +x + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0032-VPB.in b/test/escape_sequence_files/t0032-VPB.in new file mode 100644 index 00000000..30dd002b --- /dev/null +++ b/test/escape_sequence_files/t0032-VPB.in @@ -0,0 +1,25 @@ +a +b +c +d[ke[kf[kg +h +i +j....................................................................k[kl[km[kn + + + + + + + + + + + +[0k0[1k1[2k2[3;5k3 + + + + + + diff --git a/test/escape_sequence_files/t0032-VPB.text b/test/escape_sequence_files/t0032-VPB.text new file mode 100644 index 00000000..15f0d67c --- /dev/null +++ b/test/escape_sequence_files/t0032-VPB.text @@ -0,0 +1,25 @@ +b +c +defg +h +i +j....................................................................klmn + + + + + + + + + + + +0123 + + + + + + + diff --git a/test/escape_sequence_files/t0033-VPB_scroll.in b/test/escape_sequence_files/t0033-VPB_scroll.in new file mode 100644 index 00000000..f58db4be --- /dev/null +++ b/test/escape_sequence_files/t0033-VPB_scroll.in @@ -0,0 +1,50 @@ +This is the first line. +This is the second line. +And the third. +This line should be deleted. + + + + + + + + + + + + + + + + + + + + + +Penultimate line. +This should be the last line. [36kI have gone up all the way... + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0033-VPB_scroll.text b/test/escape_sequence_files/t0033-VPB_scroll.text new file mode 100644 index 00000000..0b201857 --- /dev/null +++ b/test/escape_sequence_files/t0033-VPB_scroll.text @@ -0,0 +1,25 @@ +I have gone up all the way... + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0034-VPR.in b/test/escape_sequence_files/t0034-VPR.in new file mode 100644 index 00000000..b9dc145c --- /dev/null +++ b/test/escape_sequence_files/t0034-VPR.in @@ -0,0 +1,24 @@ +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x[23A0[e1[0e2[1e3[2e4[3;5e5[100eBottom line. [8A[78CA[eB[eC[eD[eE [6e diff --git a/test/escape_sequence_files/t0034-VPR.text b/test/escape_sequence_files/t0034-VPR.text new file mode 100644 index 00000000..622c0b04 --- /dev/null +++ b/test/escape_sequence_files/t0034-VPR.text @@ -0,0 +1,25 @@ +b 1 +c 2 +d 3 +e +f 4 +g +h +i 5 +j +k +l +m +n +o +p +q A +r B +s C +t D +u E +v +w +x + Bottom line. + diff --git a/test/escape_sequence_files/t0035-HVP.in b/test/escape_sequence_files/t0035-HVP.in new file mode 100644 index 00000000..781dfdba --- /dev/null +++ b/test/escape_sequence_files/t0035-HVP.in @@ -0,0 +1 @@ +[fa[2;3fb[;4fc[10;10fd[5fe[40;16ff[20;100fg[100;200f diff --git a/test/escape_sequence_files/t0035-HVP.text b/test/escape_sequence_files/t0035-HVP.text new file mode 100644 index 00000000..44dc6198 --- /dev/null +++ b/test/escape_sequence_files/t0035-HVP.text @@ -0,0 +1,25 @@ + b + + +e + + + + + d + + + + + + + + + + g + + + + + f + diff --git a/test/escape_sequence_files/t0040-REP.in b/test/escape_sequence_files/t0040-REP.in new file mode 100644 index 00000000..f1abf454 --- /dev/null +++ b/test/escape_sequence_files/t0040-REP.in @@ -0,0 +1,7 @@ +x[5b +[3b< +abcdefg[3D[b +abcdefg[3D[b! + @[20b + .[4b + ?[0b- diff --git a/test/escape_sequence_files/t0040-REP.text b/test/escape_sequence_files/t0040-REP.text new file mode 100644 index 00000000..cae1ef93 --- /dev/null +++ b/test/escape_sequence_files/t0040-REP.text @@ -0,0 +1,25 @@ +xxxxxx +< +abcdefg +abcd!fg + @@@@@@@@@ +@@@@@@@@@@@@ + . +.... + ? +?- + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0050-ICH.in b/test/escape_sequence_files/t0050-ICH.in new file mode 100644 index 00000000..a629f208 --- /dev/null +++ b/test/escape_sequence_files/t0050-ICH.in @@ -0,0 +1,23 @@ +abcdefghijklmnopqrstuvwxyz[15@ +abcdefghijklmnopqrstuvwxyz[80@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[17@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[18@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[19@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[20@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[21@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[5@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[5@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[5@ +ICH at end:[5@ + +abcdefghijklmnopqrstuvwxyz[15@!@# +abcdefghijklmnopqrstuvwxyz[80@!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[17@!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[18@!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[19@!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[20@!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[21@!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[5@!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[5@!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[5@!@# +ICH at end:[5@!@# diff --git a/test/escape_sequence_files/t0050-ICH.text b/test/escape_sequence_files/t0050-ICH.text new file mode 100644 index 00000000..d787b8da --- /dev/null +++ b/test/escape_sequence_files/t0050-ICH.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrstu +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567 89 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567 89 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567 8 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ01234567890abcdefghijkl +ICH at end: + +abcdefghijklmnopqrstu!@# vwxyz +abcdefghijklmnopqrstu!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@# 89 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@# 89 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@# 8 +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop! +@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop! +@# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW!@# XYZ01234567890abcdefghijkl +ICH at end:!@# + diff --git a/test/escape_sequence_files/t0051-IL.in b/test/escape_sequence_files/t0051-IL.in new file mode 100644 index 00000000..e66a2429 --- /dev/null +++ b/test/escape_sequence_files/t0051-IL.in @@ -0,0 +1,23 @@ +ab +cd +ef +gh +ij +kl +mn +op[2A[LQR[3A[4LST[10B +1 +2 +3 +4 +5[A------------------------------------------------------------------------------a[Lb[2B +6 +7 +8 +9 +10 +11 +12 +13 +14 +15[4A[3L[100B diff --git a/test/escape_sequence_files/t0051-IL.text b/test/escape_sequence_files/t0051-IL.text new file mode 100644 index 00000000..2d0f5959 --- /dev/null +++ b/test/escape_sequence_files/t0051-IL.text @@ -0,0 +1,25 @@ + +ef +gh +ij +QR +kl +mn +op +1 +2 +3 +b +4------------------------------------------------------------------------------a +5 +6 +7 +8 +9 +10 + + + +11 +12 + diff --git a/test/escape_sequence_files/t0052-DL.in b/test/escape_sequence_files/t0052-DL.in new file mode 100644 index 00000000..b5a5fe0d --- /dev/null +++ b/test/escape_sequence_files/t0052-DL.in @@ -0,0 +1,15 @@ +a +b +c +d +e +f +g +h[4A[2Mijklmnop + + +1 +2 +3 +4[2A [79C[Mx + diff --git a/test/escape_sequence_files/t0052-DL.text b/test/escape_sequence_files/t0052-DL.text new file mode 100644 index 00000000..10d24aaf --- /dev/null +++ b/test/escape_sequence_files/t0052-DL.text @@ -0,0 +1,25 @@ +a +b +c +ijklmnop +g +h +1 +x +4 + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0053-DCH.in b/test/escape_sequence_files/t0053-DCH.in new file mode 100644 index 00000000..d1f8807c --- /dev/null +++ b/test/escape_sequence_files/t0053-DCH.in @@ -0,0 +1,12 @@ +abcdefghijklmnopqrstuvwxyz[8D>[2P +abcdefghijklmnopqrstuvwxyz[8D>[2P! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[80D>[10P! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D>[10P! +------------------------------------------------------------------------------[P? +-------------------------------------------------------------------------------[P? +-------------------------------------------------------------------------------[P? +---------------------------------------------------------------------------------[P? +..............................................................................[P +...............................................................................[P +...............................................................................[P +.................................................................................[P diff --git a/test/escape_sequence_files/t0053-DCH.text b/test/escape_sequence_files/t0053-DCH.text new file mode 100644 index 00000000..75c6b3b3 --- /dev/null +++ b/test/escape_sequence_files/t0053-DCH.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqr>vwxyz +abcdefghijklmnopqr>!wxyz +>!mnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh +abcdefghijklmnopqrstuvwxyz0123456789ABC>!PQRSTUVWXYZ0123456789abcdefgh +------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------- +-? +.............................................................................. +............................................................................... +............................................................................... +................................................................................ +. + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0054-ECH.in b/test/escape_sequence_files/t0054-ECH.in new file mode 100644 index 00000000..03a00d8a --- /dev/null +++ b/test/escape_sequence_files/t0054-ECH.in @@ -0,0 +1,12 @@ +abcdefghijklmnopqrstuvwxyz[8D>[2X +abcdefghijklmnopqrstuvwxyz[8D>[2X! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[80D>[10X! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D>[10X! +------------------------------------------------------------------------------[X? +-------------------------------------------------------------------------------[X? +-------------------------------------------------------------------------------[X? +---------------------------------------------------------------------------------[X? +..............................................................................[X +...............................................................................[X +...............................................................................[X +.................................................................................[X diff --git a/test/escape_sequence_files/t0054-ECH.text b/test/escape_sequence_files/t0054-ECH.text new file mode 100644 index 00000000..a22cfbe0 --- /dev/null +++ b/test/escape_sequence_files/t0054-ECH.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqr> vwxyz +abcdefghijklmnopqr>! vwxyz +>! lmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh +abcdefghijklmnopqrstuvwxyz0123456789ABC>! OPQRSTUVWXYZ0123456789abcdefgh +------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------- +-? +.............................................................................. +............................................................................... +............................................................................... +................................................................................ +. + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0055-EL.in b/test/escape_sequence_files/t0055-EL.in new file mode 100644 index 00000000..014658c5 --- /dev/null +++ b/test/escape_sequence_files/t0055-EL.in @@ -0,0 +1,8 @@ +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D><[K +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D><[0K +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D><[1K +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D><[2K +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D><[K! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D><[1K! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[40D><[2K! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh[K! diff --git a/test/escape_sequence_files/t0055-EL.text b/test/escape_sequence_files/t0055-EL.text new file mode 100644 index 00000000..a248f3ba --- /dev/null +++ b/test/escape_sequence_files/t0055-EL.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrstuvwxyz0123456789ABC> +abcdefghijklmnopqrstuvwxyz0123456789ABC> + FGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh + +abcdefghijklmnopqrstuvwxyz0123456789ABC>! + !FGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh + ! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefg! + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0056-ED.in b/test/escape_sequence_files/t0056-ED.in new file mode 100644 index 00000000..fca4e540 --- /dev/null +++ b/test/escape_sequence_files/t0056-ED.in @@ -0,0 +1,62 @@ +a +ab +abc +abcd +abcde +abcdef +abcdefg +abcdefgh +abcdefghi +abcdefghij +abcdefghijk +abcdefghijkl +abcdefghijklm +abcdefghijklmn +abcdefghijklmno +abcdefghijklmnop +abcdefghijklmnopq +abcdefghijklmnopqr +abcdefghijklmnopqrs +abcdefghijklmnopqrst +abcdefghijklmnopqrstu +abcdefghijklmnopqrstuv +abcdefghijklmnopqrstuvw +abcdefghijklmnopqrstuvwx +abcdefghijklmnopqrstuvwxy +abcdefghijklmnopqrstuvwxyz[20D[5A[J[10A[1J[40B +A +AB +ABC +ABCD +ABCDE +ABCDEF +ABCDEFG +ABCDEFGH +ABCDEFGHI +ABCDEFGHIJ +ABCDEFGHIJK +ABCDEFGHIJKL +ABCDEFGHIJKLM +ABCDEFGHIJKLMN +ABCDEFGHIJKLMNO +ABCDEFGHIJKLMNOP +ABCDEFGHIJKLMNOPQ +ABCDEFGHIJKLMNOPQR +ABCDEFGHIJKLMNOPQRS +ABCDEFGHIJKLMNOPQRST +ABCDEFGHIJKLMNOPQRSTU +ABCDEFGHIJKLMNOPQRSTUV +ABCDEFGHIJKLMNOPQRSTUVW +ABCDEFGHIJKLMNOPQRSTUVWX +ABCDEFGHIJKLMNOPQRSTUVWXY[20D[2J! +[30B +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[3Av[B[J^ + + + +the end diff --git a/test/escape_sequence_files/t0056-ED.text b/test/escape_sequence_files/t0056-ED.text new file mode 100644 index 00000000..61a8ac75 --- /dev/null +++ b/test/escape_sequence_files/t0056-ED.text @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + ! + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaav +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^ + + + +the end + diff --git a/test/escape_sequence_files/t0057-ED3.in b/test/escape_sequence_files/t0057-ED3.in new file mode 100644 index 00000000..46606df6 --- /dev/null +++ b/test/escape_sequence_files/t0057-ED3.in @@ -0,0 +1,55 @@ +a +ab +abc +abcd +abcde +abcdef +abcdefg +abcdefgh +abcdefghi +abcdefghij +abcdefghijk +abcdefghijkl +abcdefghijklm +abcdefghijklmn +abcdefghijklmno +abcdefghijklmnop +abcdefghijklmnopq +abcdefghijklmnopqr +abcdefghijklmnopqrs +abcdefghijklmnopqrst +abcdefghijklmnopqrstu +abcdefghijklmnopqrstuv +abcdefghijklmnopqrstuvw +abcdefghijklmnopqrstuvwx +abcdefghijklmnopqrstuvwxy +abcdefghijklmnopqrstuvwxyz +A +AB +ABC +ABCD +ABCDE +ABCDEF +ABCDEFG +ABCDEFGH +ABCDEFGHI +ABCDEFGHIJ +ABCDEFGHIJK +ABCDEFGHIJKL +ABCDEFGHIJKLM +ABCDEFGHIJKLMN +ABCDEFGHIJKLMNO +ABCDEFGHIJKLMNOP +ABCDEFGHIJKLMNOPQ +ABCDEFGHIJKLMNOPQR +ABCDEFGHIJKLMNOPQRS +ABCDEFGHIJKLMNOPQRST +ABCDEFGHIJKLMNOPQRSTU +ABCDEFGHIJKLMNOPQRSTUV +ABCDEFGHIJKLMNOPQRSTUVW +ABCDEFGHIJKLMNOPQRSTUVWX +ABCDEFGHIJKLMNOPQRSTUVWXY[3J +this +is +the +end diff --git a/test/escape_sequence_files/t0057-ED3.note b/test/escape_sequence_files/t0057-ED3.note new file mode 100644 index 00000000..ca6d9408 --- /dev/null +++ b/test/escape_sequence_files/t0057-ED3.note @@ -0,0 +1,6 @@ +Xterm behaves oddly with CSI 3 J. This function is supposed to clear the +saved lines in history. Xterm does this, but a small number of lines of +history are not cleared. The number seems to vary with how high the window is +and how much output has recently been saved. There is no reason to simulate +this behavior, so the expected outputs are as if the entire history was +erased. diff --git a/test/escape_sequence_files/t0057-ED3.text b/test/escape_sequence_files/t0057-ED3.text new file mode 100644 index 00000000..8230921a --- /dev/null +++ b/test/escape_sequence_files/t0057-ED3.text @@ -0,0 +1,25 @@ +ABCDEF +ABCDEFG +ABCDEFGH +ABCDEFGHI +ABCDEFGHIJ +ABCDEFGHIJK +ABCDEFGHIJKL +ABCDEFGHIJKLM +ABCDEFGHIJKLMN +ABCDEFGHIJKLMNO +ABCDEFGHIJKLMNOP +ABCDEFGHIJKLMNOPQ +ABCDEFGHIJKLMNOPQR +ABCDEFGHIJKLMNOPQRS +ABCDEFGHIJKLMNOPQRST +ABCDEFGHIJKLMNOPQRSTU +ABCDEFGHIJKLMNOPQRSTUV +ABCDEFGHIJKLMNOPQRSTUVW +ABCDEFGHIJKLMNOPQRSTUVWX +ABCDEFGHIJKLMNOPQRSTUVWXY +this +is +the +end + diff --git a/test/escape_sequence_files/t0060-DECSC.in b/test/escape_sequence_files/t0060-DECSC.in new file mode 100644 index 00000000..d269150e --- /dev/null +++ b/test/escape_sequence_files/t0060-DECSC.in @@ -0,0 +1,9 @@ + 7v 1[S2 + +38^ + + + + v7 +...[Sooo8^ + diff --git a/test/escape_sequence_files/t0060-DECSC.text b/test/escape_sequence_files/t0060-DECSC.text new file mode 100644 index 00000000..409198bb --- /dev/null +++ b/test/escape_sequence_files/t0060-DECSC.text @@ -0,0 +1,25 @@ + +3 + + v +... ^ + ooo + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0061-CSI_s.in b/test/escape_sequence_files/t0061-CSI_s.in new file mode 100644 index 00000000..451fafa6 --- /dev/null +++ b/test/escape_sequence_files/t0061-CSI_s.in @@ -0,0 +1,9 @@ + [sv 1[S2 + +3[u^ + + + + v[s +...[Sooo[u^ + diff --git a/test/escape_sequence_files/t0061-CSI_s.text b/test/escape_sequence_files/t0061-CSI_s.text new file mode 100644 index 00000000..409198bb --- /dev/null +++ b/test/escape_sequence_files/t0061-CSI_s.text @@ -0,0 +1,25 @@ + +3 + + v +... ^ + ooo + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0070-DECSTBM_LF.in b/test/escape_sequence_files/t0070-DECSTBM_LF.in new file mode 100644 index 00000000..571f2233 --- /dev/null +++ b/test/escape_sequence_files/t0070-DECSTBM_LF.in @@ -0,0 +1,31 @@ +[3;7r1 +2 +3 +4 +5 +6 +7 +8 +9[78GABCDEF[8da +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u[78Gvwxyz +[r[24d +The end. diff --git a/test/escape_sequence_files/t0070-DECSTBM_LF.text b/test/escape_sequence_files/t0070-DECSTBM_LF.text new file mode 100644 index 00000000..0940b073 --- /dev/null +++ b/test/escape_sequence_files/t0070-DECSTBM_LF.text @@ -0,0 +1,25 @@ +1 + 2 + 6 + 7 + 8 + 9 ABC +DEF + a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p +yz qrstu vwx +The end. diff --git a/test/escape_sequence_files/t0071-DECSTBM_IND.in b/test/escape_sequence_files/t0071-DECSTBM_IND.in new file mode 100644 index 00000000..f9f6a424 --- /dev/null +++ b/test/escape_sequence_files/t0071-DECSTBM_IND.in @@ -0,0 +1,3 @@ +[3;7r1D2D3D4D5D6D7D8D9[78GABCDEF[8daDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDu[78Gvwxyz +[r[24d +The end. diff --git a/test/escape_sequence_files/t0071-DECSTBM_IND.text b/test/escape_sequence_files/t0071-DECSTBM_IND.text new file mode 100644 index 00000000..f6644fb5 --- /dev/null +++ b/test/escape_sequence_files/t0071-DECSTBM_IND.text @@ -0,0 +1,25 @@ + 2 + 6 + 7 + 8 + 9 ABC +DEF + a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q +The end. rstu vwx + diff --git a/test/escape_sequence_files/t0072-DECSTBM_NEL.in b/test/escape_sequence_files/t0072-DECSTBM_NEL.in new file mode 100644 index 00000000..5df9e715 --- /dev/null +++ b/test/escape_sequence_files/t0072-DECSTBM_NEL.in @@ -0,0 +1,2 @@ +[3;7r1E2E3E4E5E6E7E8E9[8daEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEu[r[24d +The end. diff --git a/test/escape_sequence_files/t0072-DECSTBM_NEL.text b/test/escape_sequence_files/t0072-DECSTBM_NEL.text new file mode 100644 index 00000000..1a0e4a17 --- /dev/null +++ b/test/escape_sequence_files/t0072-DECSTBM_NEL.text @@ -0,0 +1,25 @@ +2 +5 +6 +7 +8 +9 + a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +The end. + diff --git a/test/escape_sequence_files/t0073-DECSTBM_RI.in b/test/escape_sequence_files/t0073-DECSTBM_RI.in new file mode 100644 index 00000000..fc7b7e49 --- /dev/null +++ b/test/escape_sequence_files/t0073-DECSTBM_RI.in @@ -0,0 +1,43 @@ +TOP 1 +TOP 2 +TOP 3 +TOP 4 +TOP 5 +TOP 6 - GONE + + + + + + + + + + + + +BOTTOM 6 - GONE +BOTTOM 5 +BOTTOM 4 +BOTTOM 3 +BOTTOM 2 +BOTTOM 1[6;19r + + + + +And the third. + + + + + + + + + + +This should be the last line. +This one should be lost. +This one's a goner, too. MMMMMMMMMMMMMMThis is second line. MThis should be the first line.[r[24d +The end. diff --git a/test/escape_sequence_files/t0073-DECSTBM_RI.text b/test/escape_sequence_files/t0073-DECSTBM_RI.text new file mode 100644 index 00000000..ce6dbc76 --- /dev/null +++ b/test/escape_sequence_files/t0073-DECSTBM_RI.text @@ -0,0 +1,25 @@ +TOP 2 +TOP 3 +TOP 4 +TOP 5 +This should be the first line. +This is second line. +And the third. + + + + + + + + + + +This should be the last line. +BOTTOM 5 +BOTTOM 4 +BOTTOM 3 +BOTTOM 2 +BOTTOM 1 +The end. + diff --git a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in b/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in new file mode 100644 index 00000000..1acbaf31 --- /dev/null +++ b/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in @@ -0,0 +1,24 @@ +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x[5;9r[S[14;22r[3T[r[24d diff --git a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text b/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text new file mode 100644 index 00000000..948e5d43 --- /dev/null +++ b/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text @@ -0,0 +1,24 @@ +a + b + c + d + f + g + h + i + + j + k + l + m + + + + n + o + p + q + r + s + w + x diff --git a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in b/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in new file mode 100644 index 00000000..b6791130 --- /dev/null +++ b/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in @@ -0,0 +1,24 @@ +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x[10;19r[25B1[24d[25A2[r[24d diff --git a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text b/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text new file mode 100644 index 00000000..486b91d0 --- /dev/null +++ b/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text @@ -0,0 +1,25 @@ +a +b +c +d +e +f +g +h +i +j2 +k +l +m +n +o +p +q +r +1 +t +u +v +w +x + diff --git a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in b/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in new file mode 100644 index 00000000..58d20d25 --- /dev/null +++ b/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in @@ -0,0 +1,33 @@ + 1 (IL on line 2, expect nothing) + 2 (DL on line 22, expect nothing) + 3 vvvv IL on line 5, expected: A_BC + 4 A + 5 B + 6 C + 7 D + 8 ^^^^ + 9 vvvv DL on line 11, expected: ACD_ +10 A +11 B +12 C +13 D +14 ^^^^ +15 vvvv IL on line 17, expected: A_ +16 A +17 B +18 ^^^^ +19 vvvv IL on line 21, expected: A_ +20 A +21 B +22 ^^^^ +23 vvvv IL on line 24, expected: _A +24 A[4;7r +[L[22d[M[5d[L[10;13r[11d[M[16;17r[17d[L[20;21r[21d[M[r[24d +25 B +26 ^^^^ +27 vvvv DL on line 28, expected: B_ +28 A +29 B +30 ^^^^ +31 +32[16;17r[16d[L[20;21r[20d[M[r[24d diff --git a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text b/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text new file mode 100644 index 00000000..92c10331 --- /dev/null +++ b/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text @@ -0,0 +1,25 @@ + 8 ^^^^ + 9 vvvv DL on line 11, expected: ACD_ +10 A +12 C +13 D + +14 ^^^^ +15 vvvv IL on line 17, expected: A_ +16 A + +18 ^^^^ +19 vvvv IL on line 21, expected: A_ +20 A + +22 ^^^^ + +23 vvvv IL on line 24, expected: _A +25 B +26 ^^^^ +28 A + +29 B +30 ^^^^ +31 +32 diff --git a/test/escape_sequence_files/t0077-DECSTBM_quirks.in b/test/escape_sequence_files/t0077-DECSTBM_quirks.in new file mode 100644 index 00000000..b4443628 --- /dev/null +++ b/test/escape_sequence_files/t0077-DECSTBM_quirks.in @@ -0,0 +1,32 @@ + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24[;4r[S[4;4HA[H +[22r[S[24;5HB[H +[6;7;8r[S[7;6HC[H +[15;0r[S[24;7HD[H +[10;10r[S[24;8HE[H +[15;11r[S[24;9HF[H +[23;28r[S[24;10HG[H +[r[24d +Done. diff --git a/test/escape_sequence_files/t0077-DECSTBM_quirks.text b/test/escape_sequence_files/t0077-DECSTBM_quirks.text new file mode 100644 index 00000000..ea142e32 --- /dev/null +++ b/test/escape_sequence_files/t0077-DECSTBM_quirks.text @@ -0,0 +1,25 @@ + 3 + 4 + A + 5 + 7 + C + 8 + 9 +10 +11 +12 +13 +14 +18 +19 +20 +21 +23 +24 + B + D + F + G +Done. + diff --git a/test/escape_sequence_files/t0080-HT.in b/test/escape_sequence_files/t0080-HT.in new file mode 100644 index 00000000..581e0baf --- /dev/null +++ b/test/escape_sequence_files/t0080-HT.in @@ -0,0 +1,14 @@ +a b c d e f g h i j k l + x +1 2 + [A3[B + +Tab before EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh @ +tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg @ + +Tab at EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi @ +with clipping: 4567890abcdefghi MD@ diff --git a/test/escape_sequence_files/t0080-HT.text b/test/escape_sequence_files/t0080-HT.text new file mode 100644 index 00000000..0683c218 --- /dev/null +++ b/test/escape_sequence_files/t0080-HT.text @@ -0,0 +1,25 @@ +a b c d e f g h i j k +l + x +1 3 2 + + +Tab before EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ +tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg @ + +Tab at EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi +@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi +@ +with clipping: 4567890abcdefgh@ + + + + + + + + diff --git a/test/escape_sequence_files/t0081-TBC.in b/test/escape_sequence_files/t0081-TBC.in new file mode 100644 index 00000000..744b7a58 --- /dev/null +++ b/test/escape_sequence_files/t0081-TBC.in @@ -0,0 +1,19 @@ +default: +> 1 2 3 4 5 6 7 8 9 0 + +clear non-existant: [gx [gx +> 1 2 3 4 5 6 7 8 9 0 + +clear 2 and 4: [gx [gx +> 1 3 5 6 7 8 9 0 + +clear 0: [gx +> 1 3 5 6 7 8 9 0 + +clear after 0: .[gx +> 1 3 5 6 7 8 9 0 + +clear all:[3g +> 0done + +TBC at end with clipping: ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde[gMD! diff --git a/test/escape_sequence_files/t0081-TBC.text b/test/escape_sequence_files/t0081-TBC.text new file mode 100644 index 00000000..575e3fda --- /dev/null +++ b/test/escape_sequence_files/t0081-TBC.text @@ -0,0 +1,25 @@ +default: +> 1 2 3 4 5 6 7 8 9 0 + +clear non-existant: x x +> 1 2 3 4 5 6 7 8 9 0 + +clear 2 and 4: x x +> 1 3 5 6 7 8 9 0 + +clear 0: x +> 1 3 5 6 7 8 9 0 + +clear after 0: . +x +> 1 3 5 6 7 8 9 0 + +clear all: +> 0 +done + +TBC at end with clipping: ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd! + + + + diff --git a/test/escape_sequence_files/t0082-HTS.in b/test/escape_sequence_files/t0082-HTS.in new file mode 100644 index 00000000..2bd62d42 --- /dev/null +++ b/test/escape_sequence_files/t0082-HTS.in @@ -0,0 +1,8 @@ + 1 2 3 4 +abcdeHFghijklmnopqrstuvHWxyz + H 1 2 W 3 4 + +HTS at end: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdeHfgh + H 1 2 W 3 4 5 6 7 8 9 a b + +HTS at end with clipping: ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdeHMD! diff --git a/test/escape_sequence_files/t0082-HTS.text b/test/escape_sequence_files/t0082-HTS.text new file mode 100644 index 00000000..ecf66a57 --- /dev/null +++ b/test/escape_sequence_files/t0082-HTS.text @@ -0,0 +1,25 @@ + 1 2 3 4 +abcdeFghijklmnopqrstuvWxyz + H 1 2 W 3 4 + +HTS at end: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde +fgh + H 1 2 W 3 4 5 6 7 8 9 a +b + +HTS at end with clipping: ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd! + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0083-CHT.in b/test/escape_sequence_files/t0083-CHT.in new file mode 100644 index 00000000..838325d4 --- /dev/null +++ b/test/escape_sequence_files/t0083-CHT.in @@ -0,0 +1,18 @@ +a[Ib[Ic[Id[Ie[If[Ig[Ih[Ii[Ij[Ik[Il +[I[I[I[Ix +1[I2 + [A3[B + +CHT before EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh[I@ +tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg[I@ + +CHT at EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi[I@ +with clipping: 4567890abcdefghi[IMD@ + +a[4Ie[2Ig +[4Ie [2Ih +[100Ix diff --git a/test/escape_sequence_files/t0083-CHT.text b/test/escape_sequence_files/t0083-CHT.text new file mode 100644 index 00000000..071ed633 --- /dev/null +++ b/test/escape_sequence_files/t0083-CHT.text @@ -0,0 +1,25 @@ +a b c d e f g h i j k +l + x +1 3 2 + + +CHT before EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ +tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg @ + +CHT at EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi +@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi +@ +with clipping: 4567890abcdefgh@ + +a e g + e h + x + + + + diff --git a/test/escape_sequence_files/t0084-CBT.in b/test/escape_sequence_files/t0084-CBT.in new file mode 100644 index 00000000..a7dd5b1f --- /dev/null +++ b/test/escape_sequence_files/t0084-CBT.in @@ -0,0 +1,16 @@ +a b c d e f g h i j k + <[ZI[Zi[2Zh[3Zf[10Za +[Za + +default tab stops: +near end: abcdefg[Z! +at end: abcdefgh[Z! +at end (2): abcdefgh[2Z! +at end with clipping: abcdefgh[ZMD! +at end with clipping (2): abcdefgh[2ZMD! + +set tab stop at column 80: Hv +at end: abcdefgh[Z! +at end (2): abcdefgh[2Z! +at end with clipping: abcdefgh[ZMD! +at end with clipping (2): abcdefgh[2ZMD! diff --git a/test/escape_sequence_files/t0084-CBT.text b/test/escape_sequence_files/t0084-CBT.text new file mode 100644 index 00000000..2fb87650 --- /dev/null +++ b/test/escape_sequence_files/t0084-CBT.text @@ -0,0 +1,25 @@ +a b c d e f g h i j k +a f h i < +a + +default tab stops: +near end: !bcdefg +at end: abcdefgh +! +at end (2): abcdefgh +! +at end with clipping: !bcdefgh +at end with clipping (2): ! abcdefgh + +set tab stop at column 80: v +at end: abcdefgh +! +at end (2): abcdefgh +! +at end with clipping: !bcdefgh +at end with clipping (2): ! abcdefgh + + + + + diff --git a/test/escape_sequence_files/t0084-CBT.text-xterm b/test/escape_sequence_files/t0084-CBT.text-xterm new file mode 100644 index 00000000..7a2adc72 --- /dev/null +++ b/test/escape_sequence_files/t0084-CBT.text-xterm @@ -0,0 +1,20 @@ +a b c d e f g h i j k +a f h i < +a + +default tab stops: +near end: !bcdefg +at end: abcdefgh +! +at end (2): abcdefgh +! +at end with clipping: !bcdefgh +at end with clipping (2): ! abcdefgh + +set tab stop at column 80: v +at end: abcdefgh +! +at end (2): abcdefgh +! +at end with clipping: !bcdefgh +at end with clipping (2): ! abcdefgh diff --git a/test/escape_sequence_files/t0090-alt_screen.in b/test/escape_sequence_files/t0090-alt_screen.in new file mode 100644 index 00000000..bf1eeafc --- /dev/null +++ b/test/escape_sequence_files/t0090-alt_screen.in @@ -0,0 +1,55 @@ +a[?47h +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y[?47lz +A[?47h +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y[?47lZ + --->[?47hhello[?47l<-- + + --->[?47h[?47l<--- + +fin diff --git a/test/escape_sequence_files/t0090-alt_screen.text b/test/escape_sequence_files/t0090-alt_screen.text new file mode 100644 index 00000000..7ac01352 --- /dev/null +++ b/test/escape_sequence_files/t0090-alt_screen.text @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + z +AZ + <-- ---> + + ---> +<--- + +fin + diff --git a/test/escape_sequence_files/t0091-alt_screen_ED3.in b/test/escape_sequence_files/t0091-alt_screen_ED3.in new file mode 100644 index 00000000..40957e87 --- /dev/null +++ b/test/escape_sequence_files/t0091-alt_screen_ED3.in @@ -0,0 +1,46 @@ +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +[?47h +one +two +three +four +five +six +[3J +[?47l +11 diff --git a/test/escape_sequence_files/t0091-alt_screen_ED3.text b/test/escape_sequence_files/t0091-alt_screen_ED3.text new file mode 100644 index 00000000..4a326a40 --- /dev/null +++ b/test/escape_sequence_files/t0091-alt_screen_ED3.text @@ -0,0 +1,25 @@ + n + o + p + q + r + s + t + u + v + w + x + y + z + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + 11 diff --git a/test/escape_sequence_files/t0092-alt_screen_DECSC.in b/test/escape_sequence_files/t0092-alt_screen_DECSC.in new file mode 100644 index 00000000..3022a936 --- /dev/null +++ b/test/escape_sequence_files/t0092-alt_screen_DECSC.in @@ -0,0 +1,15 @@ +a + b7 + c[?47h + + >7 + + [5Sxxxxxxx8[?47l!8< + + + + + + + +The end. diff --git a/test/escape_sequence_files/t0092-alt_screen_DECSC.text b/test/escape_sequence_files/t0092-alt_screen_DECSC.text new file mode 100644 index 00000000..bab1503e --- /dev/null +++ b/test/escape_sequence_files/t0092-alt_screen_DECSC.text @@ -0,0 +1,25 @@ +a + b< + c + + ! + + + + +The end. + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0100-IRM.in b/test/escape_sequence_files/t0100-IRM.in new file mode 100644 index 00000000..5046f183 --- /dev/null +++ b/test/escape_sequence_files/t0100-IRM.in @@ -0,0 +1,13 @@ +-------- insert single '!' --------------------------------------------abcdefghi +jklmnop[1;75H[4h![4l + + +-------- insert 0-9, with wraparound ----------------------------------abcdefghi +jklmnop[4;75H[4h0123456789[4l + +-------- repeat 3 '!' -------------------------------------------------abcdefghi +jklmnop[7;75H[4h![2b[4l + + +-------- repeat 10 '!', with wraparound -------------------------------abcdefghi +jklmnop[10;75H[4h![9b[4l diff --git a/test/escape_sequence_files/t0100-IRM.text b/test/escape_sequence_files/t0100-IRM.text new file mode 100644 index 00000000..f4f3eeac --- /dev/null +++ b/test/escape_sequence_files/t0100-IRM.text @@ -0,0 +1,25 @@ +-------- insert single '!' --------------------------------------------abc!defgh +jklmnop + +-------- insert 0-9, with wraparound ----------------------------------abc012345 +6789jklmnop + +-------- repeat 3 '!' -------------------------------------------------abc!!!def +jklmnop + +-------- repeat 10 '!', with wraparound -------------------------------abc!!!!!! +!!!!jklmnop + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0101-NLM.in b/test/escape_sequence_files/t0101-NLM.in new file mode 100644 index 00000000..554a0f39 --- /dev/null +++ b/test/escape_sequence_files/t0101-NLM.in @@ -0,0 +1,10 @@ +a +b +c +d[20h +e +fgh +i j k[20l +l +m +nop diff --git a/test/escape_sequence_files/t0101-NLM.text b/test/escape_sequence_files/t0101-NLM.text new file mode 100644 index 00000000..47f883ff --- /dev/null +++ b/test/escape_sequence_files/t0101-NLM.text @@ -0,0 +1,25 @@ +a +b +c +d +e +f +g +h +k +l +m +n + o + p + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0102-DECAWM.in b/test/escape_sequence_files/t0102-DECAWM.in new file mode 100644 index 00000000..c6156599 --- /dev/null +++ b/test/escape_sequence_files/t0102-DECAWM.in @@ -0,0 +1,4 @@ +-------- default: wraparound ----------------------------------------------abcdefgh[?7h +-------- set: wraparound ----------------------------------------------abcdefgh[?7l +-------- unset: no wraparound -------------------------------------------abcdefgh + this should be immediately below "no wraparound"[?7h diff --git a/test/escape_sequence_files/t0102-DECAWM.text b/test/escape_sequence_files/t0102-DECAWM.text new file mode 100644 index 00000000..c1f22de2 --- /dev/null +++ b/test/escape_sequence_files/t0102-DECAWM.text @@ -0,0 +1,25 @@ +-------- default: wraparound ----------------------------------------------abcd +efgh +-------- set: wraparound ----------------------------------------------abcd +efgh +-------- unset: no wraparound -------------------------------------------abcd + this should be immediately below "no wraparound" + + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0103-reverse_wrap.in b/test/escape_sequence_files/t0103-reverse_wrap.in new file mode 100644 index 00000000..092462e7 --- /dev/null +++ b/test/escape_sequence_files/t0103-reverse_wrap.in @@ -0,0 +1,6 @@ +[?45ha +bA + +c-B + +dC![Hthe endreally![?45l diff --git a/test/escape_sequence_files/t0103-reverse_wrap.text b/test/escape_sequence_files/t0103-reverse_wrap.text new file mode 100644 index 00000000..da830d55 --- /dev/null +++ b/test/escape_sequence_files/t0103-reverse_wrap.text @@ -0,0 +1,25 @@ +c C +! + + + + + + + + + + + + + + + + + + + + + the end +really! + diff --git a/test/escape_sequence_files/t0200-SGR.html b/test/escape_sequence_files/t0200-SGR.html new file mode 100644 index 00000000..fa270a04 --- /dev/null +++ b/test/escape_sequence_files/t0200-SGR.html @@ -0,0 +1,35 @@ +
+Implemented non-color attributes: + + 1: This is bold. + + 3: This is italic. + + 4: This is underlined. + + 5: This is slowly blinking. + + 6: This is rapidly blinking. + + 7: This is inverse. + + 8: This is . + + 9: This is struck out. + +21: This is double underlined. + +53: This is overlined. + + + +Unimplemented non-color attributes: + + 2: weight:feint + +20: style:fraktur + +51: frame:box + +52: frame:circle +diff --git a/test/escape_sequence_files/t0200-SGR.in_ b/test/escape_sequence_files/t0200-SGR.in_ new file mode 100644 index 00000000..3b37c93e --- /dev/null +++ b/test/escape_sequence_files/t0200-SGR.in_ @@ -0,0 +1,33 @@ +Implemented non-color attributes: + + 1: This is [1mbold[m. + + 3: This is [3mitalic[m. + + 4: This is [4munderlined[m. + + 5: This is [5mslowly blinking[m. + + 6: This is [6mrapidly blinking[m. + + 7: This is [7minverse[m. + + 8: This is [8mhidden[m. + + 9: This is [9mstruck out[m. + +21: This is [21mdouble underlined[m. + +53: This is [53moverlined[m. + + + +Unimplemented non-color attributes: + + 2: weight:feint + +20: style:fraktur + +51: frame:box + +52: frame:circle diff --git a/test/escape_sequence_files/t0220-SGR_inverse.html b/test/escape_sequence_files/t0220-SGR_inverse.html new file mode 100644 index 00000000..7218bf4f --- /dev/null +++ b/test/escape_sequence_files/t0220-SGR_inverse.html @@ -0,0 +1,6 @@ +
+This is inverse text with default fg and bg. +This is inverse text with red fg and default bg. +This is inverse text with default fg and red bg. +This is inverse text with green fg and red bg. +diff --git a/test/escape_sequence_files/t0220-SGR_inverse.in_ b/test/escape_sequence_files/t0220-SGR_inverse.in_ new file mode 100644 index 00000000..e7e63f94 --- /dev/null +++ b/test/escape_sequence_files/t0220-SGR_inverse.in_ @@ -0,0 +1,4 @@ +This is [7minverse text[27m with default fg and bg. +[31mThis is [7minverse text[27m with red fg and default bg.[m +[41mThis is [7minverse text[27m with default fg and red bg.[m +[32;41mThis is [7minverse text[27m with green fg and red bg.[m diff --git a/test/escape_sequence_files/t0500-bash_long_line.in b/test/escape_sequence_files/t0500-bash_long_line.in new file mode 100644 index 00000000..b1e54918 --- /dev/null +++ b/test/escape_sequence_files/t0500-bash_long_line.in @@ -0,0 +1,7 @@ +Script started on Fri 27 Mar 2009 08:53:29 PM EDT +dircolors: /etc/DIR_COLORS: No such file or directory +]0;mark@mark-desktop:~/vt100-to-htmlmark@mark-desktop:~/vt100-to-html$ bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST UVWXYZ1234567890abcdefghijklmnopqrstuv[AcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV[1PWXYZ1234567890abcdefghijklmnopqrstuv[A + +]0;mark@mark-desktop:~/vt100-to-htmlmark@mark-desktop:~/vt100-to-html$ exit + +Script done on Fri 27 Mar 2009 08:53:33 PM EDT diff --git a/test/escape_sequence_files/t0500-bash_long_line.text b/test/escape_sequence_files/t0500-bash_long_line.text new file mode 100644 index 00000000..5c785d0d --- /dev/null +++ b/test/escape_sequence_files/t0500-bash_long_line.text @@ -0,0 +1,25 @@ +Script started on Fri 27 Mar 2009 08:53:29 PM EDT +dircolors: /etc/DIR_COLORS: No such file or directory +mark@mark-desktop:~/vt100-to-html$ cdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU +VWXYZ1234567890abcdefghijklmnopqrstuv +mark@mark-desktop:~/vt100-to-html$ exit + +Script done on Fri 27 Mar 2009 08:53:33 PM EDT + + + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0501-bash_ls.in b/test/escape_sequence_files/t0501-bash_ls.in new file mode 100644 index 00000000..9053d8b6 --- /dev/null +++ b/test/escape_sequence_files/t0501-bash_ls.in @@ -0,0 +1,12 @@ +Script started on Sun 17 May 2009 06:20:41 PM EDT +dircolors: /etc/DIR_COLORS: No such file or directory +]0;mark@mark-desktop:~/vt100-to-html/scriptsmark@mark-desktop:~/vt100-to-html/scripts$ ls +bash.script +]0;mark@mark-desktop:~/vt100-to-html/scriptsmark@mark-desktop:~/vt100-to-html/scripts$ ls / +bin dev initrd.img lib64 opt selinux usr +boot etc initrd.img.old lost+found proc srv var +boot2 home lib media root sys vmlinuz +cdrom initrd lib32 mnt sbin tmp vmlinuz.old +]0;mark@mark-desktop:~/vt100-to-html/scriptsmark@mark-desktop:~/vt100-to-html/scripts$ exit + +Script done on Sun 17 May 2009 06:20:52 PM EDT diff --git a/test/escape_sequence_files/t0501-bash_ls.text b/test/escape_sequence_files/t0501-bash_ls.text new file mode 100644 index 00000000..8114fc91 --- /dev/null +++ b/test/escape_sequence_files/t0501-bash_ls.text @@ -0,0 +1,25 @@ +Script started on Sun 17 May 2009 06:20:41 PM EDT +dircolors: /etc/DIR_COLORS: No such file or directory +mark@mark-desktop:~/vt100-to-html/scripts$ ls +bash.script +mark@mark-desktop:~/vt100-to-html/scripts$ ls / +bin dev initrd.img lib64 opt selinux usr +boot etc initrd.img.old lost+found proc srv var +boot2 home lib media root sys vmlinuz +cdrom initrd lib32 mnt sbin tmp vmlinuz.old +mark@mark-desktop:~/vt100-to-html/scripts$ exit + +Script done on Sun 17 May 2009 06:20:52 PM EDT + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0502-bash_ls_color.in b/test/escape_sequence_files/t0502-bash_ls_color.in new file mode 100644 index 00000000..1f4eda89 --- /dev/null +++ b/test/escape_sequence_files/t0502-bash_ls_color.in @@ -0,0 +1,10 @@ +Script started on Sun 17 May 2009 06:21:05 PM EDT +dircolors: /etc/DIR_COLORS: No such file or directory +]0;mark@mark-desktop:~/vt100-to-html/scriptsmark@mark-desktop:~/vt100-to-html/scripts$ ls --color=auto / +[00m[01;34mbin[00m [01;34mdev[00m [01;36minitrd.img[00m [01;36mlib64[00m [01;34mopt[00m [01;34mselinux[00m [01;34musr[00m +[01;34mboot[00m [01;34metc[00m [01;36minitrd.img.old[00m [01;34mlost+found[00m [01;34mproc[00m [01;34msrv[00m [01;34mvar[00m +[01;34mboot2[00m [01;34mhome[00m [01;34mlib[00m [01;34mmedia[00m [01;34mroot[00m [01;34msys[00m [01;36mvmlinuz[00m +[01;36mcdrom[00m [01;34minitrd[00m [01;34mlib32[00m [01;34mmnt[00m [01;34msbin[00m [30;42mtmp[00m [01;36mvmlinuz.old[00m +[m]0;mark@mark-desktop:~/vt100-to-html/scriptsmark@mark-desktop:~/vt100-to-html/scripts$ exit + +Script done on Sun 17 May 2009 06:21:11 PM EDT diff --git a/test/escape_sequence_files/t0502-bash_ls_color.text b/test/escape_sequence_files/t0502-bash_ls_color.text new file mode 100644 index 00000000..1892eeaa --- /dev/null +++ b/test/escape_sequence_files/t0502-bash_ls_color.text @@ -0,0 +1,25 @@ +Script started on Sun 17 May 2009 06:21:05 PM EDT +dircolors: /etc/DIR_COLORS: No such file or directory +mark@mark-desktop:~/vt100-to-html/scripts$ ls --color=auto / +bin dev initrd.img lib64 opt selinux usr +boot etc initrd.img.old lost+found proc srv var +boot2 home lib media root sys vmlinuz +cdrom initrd lib32 mnt sbin tmp vmlinuz.old +mark@mark-desktop:~/vt100-to-html/scripts$ exit + +Script done on Sun 17 May 2009 06:21:11 PM EDT + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0503-zsh_ls_color.in b/test/escape_sequence_files/t0503-zsh_ls_color.in new file mode 100644 index 00000000..aca2d104 --- /dev/null +++ b/test/escape_sequence_files/t0503-zsh_ls_color.in @@ -0,0 +1,9 @@ +Script started on Sun 17 May 2009 06:21:21 PM EDT +]2;mark-desktop - ~/vt100-to-html/scripts[1m[7m%[27m[1m[0m [0m[27m[24m[J[1;32m$[0m [K[54C[1;34m~/vt100-to-html/scripts[0m[77Dlls / +]2;mark-desktop - ls /[00m[01;34mbin[00m [01;34mdev[00m [01;36minitrd.img[00m [01;36mlib64[00m [01;34mopt[00m [01;34mselinux[00m [01;34musr[00m +[01;34mboot[00m [01;34metc[00m [01;36minitrd.img.old[00m [01;34mlost+found[00m [01;34mproc[00m [01;34msrv[00m [01;34mvar[00m +[01;34mboot2[00m [01;34mhome[00m [01;34mlib[00m [01;34mmedia[00m [01;34mroot[00m [01;34msys[00m [01;36mvmlinuz[00m +[01;36mcdrom[00m [01;34minitrd[00m [01;34mlib32[00m [01;34mmnt[00m [01;34msbin[00m [30;42mtmp[00m [01;36mvmlinuz.old[00m +[m]2;mark-desktop - ~/vt100-to-html/scripts[1m[7m%[27m[1m[0m [0m[27m[24m[J[1;32m$[0m [K[54C[1;34m~/vt100-to-html/scripts[0m[77D + +Script done on Sun 17 May 2009 06:21:27 PM EDT diff --git a/test/escape_sequence_files/t0503-zsh_ls_color.text b/test/escape_sequence_files/t0503-zsh_ls_color.text new file mode 100644 index 00000000..19feb18d --- /dev/null +++ b/test/escape_sequence_files/t0503-zsh_ls_color.text @@ -0,0 +1,25 @@ +Script started on Sun 17 May 2009 06:21:21 PM EDT +$ ls / ~/vt100-to-html/scripts +bin dev initrd.img lib64 opt selinux usr +boot etc initrd.img.old lost+found proc srv var +boot2 home lib media root sys vmlinuz +cdrom initrd lib32 mnt sbin tmp vmlinuz.old +$ ~/vt100-to-html/scripts + +Script done on Sun 17 May 2009 06:21:27 PM EDT + + + + + + + + + + + + + + + + diff --git a/test/escape_sequence_files/t0504-vim.in b/test/escape_sequence_files/t0504-vim.in new file mode 100644 index 00000000..cb682321 --- /dev/null +++ b/test/escape_sequence_files/t0504-vim.in @@ -0,0 +1,56 @@ +Script started on Sun 15 Aug 2010 11:53:27 PM EDT +]0;mark-desktop - ~/vt100-to-html/test[1m[7m%[27m[1m[0m [0m[27m[24m[J[1;32m$[0m [K[57C[1;34m~/vt100-to-html/test[0m[77Dlls +]0;mark-desktop - ls[0m[01;34mexpected_text[0m t0016-SU.text t0050-ICH.text +[01;34minput[0m t0017-SD.in t0051-IL.in +[01;32mrun_all.py[0m t0017-SD.text t0051-IL.text +t0001-all_printable.in t0020-CUF.in t0052-DL.in +t0001-all_printable.text t0020-CUF.text t0052-DL.text +t0002-history.in t0021-CUB.in t0053-DCH.in +t0002-history.text t0021-CUB.text t0053-DCH.text +t0003-line_wrap.in t0022-CUU.in t0054-ECH.in +t0003-line_wrap.text t0022-CUU.text t0054-ECH.text +t0004-LF.in t0023-CUU_scroll.in t0055-EL.in +t0004-LF.text t0023-CUU_scroll.text t0055-EL.text +t0005-CR.in t0024-CUD.in t0056-ED.in +t0005-CR.text t0024-CUD.text t0056-ED.text +t0006-IND.in t0025-CUP.in t0057-ED3.in +t0006-IND.text t0025-CUP.text t0057-ED3.note +t0007-space_at_end.in t0026-CNL.in t0057-ED3.text +t0007-space_at_end.text t0026-CNL.text t0060-DECSC.in +t0008-BS.in t0027-CPL.in t0060-DECSC.text +t0008-BS.text t0027-CPL.text t0061-CSI_s.in +t0009-NEL.in t0030-HPR.in t0061-CSI_s.text +t0009-NEL.text t0030-HPR.text t008x-alt_screen_ED.in +t0010-RI.in t0031-HPB.in t008x-IRM.in +t0010-RI.text t0031-HPB.text t008x-NLM.in +t0011-RI_scroll.in t0032-VPB.in t008x-save_cursor_mode.in +t0011-RI_scroll.text t0032-VPB.text t0500-bash_long_line.in +t0012-VT.in t0033-VPB_scroll.in t0500-bash_long_line.text +t0012-VT.text t0033-VPB_scroll.text t0501-bash_ls.in +t0013-FF.in t0034-VPR.in t0501-bash_ls.text +t0013-FF.text t0034-VPR.text t0502-bash_ls_color.in +t0014-CAN.in t0035-HVP.in t0502-bash_ls_color.text +t0014-CAN.text t0035-HVP.text t0503-zsh_ls_color.in +t0015-SUB.in t0040-REP.in t0503-zsh_ls_color.text +t0015-SUB.text t0040-REP.text typescript +t0016-SU.in t0050-ICH.in +[m]0;mark-desktop - ~/vt100-to-html/test[1m[7m%[27m[1m[0m [0m[27m[24m[J[1;32m$[0m [K[57C[1;34m~/vt100-to-html/test[0m[77Dvvim +]0;mark-desktop - vim[?1000h[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[>c[?25l[2;1H[38;5;12m~ [3;1H~ [4;1H~ [5;1H~ [6;1H~ [7;1H~ [8;1H~ [9;1H~ [10;1H~ [11;1H~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [m[23;1H[1m[7m[38;5;68m[No Name] 0,0-1 All[m[6;32HVIM - Vi IMproved[8;33Hversion 7.2.267[9;29Hby Bram Moolenaar et al.[10;19HVim is open source and freely distributable[12;26HBecome a registered Vim user![13;18Htype :help register[38;5;81m