From: Daniel Imms Date: Tue, 1 Nov 2016 04:22:21 +0000 (-0700) Subject: Refactor TS build and fix testing X-Git-Url: https://git.proxmox.com/?p=mirror_xterm.js.git;a=commitdiff_plain;h=56ecc77dfce92da0e9eb038fd44788860a10ec96 Refactor TS build and fix testing This change is largely just moving files with minor tweaks to them to fix, the rest of the commit is build process changes: - The addons/ and test/ dirs have been moved to src/ - The build directory has been removed - TypeScript builds are output in out/, this is where tests are run - The demo now relies on the dist/ build which is performed as part of ./bin/build - Addons are now shipped under the ./build directory --- diff --git a/.gitignore b/.gitignore index 2e91366..efa028b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ node_modules/ *.swp -build/* .lock-wscript out/ Makefile.gyp @@ -12,3 +11,4 @@ docs/ npm-debug.log /.idea/ .env +dist/* diff --git a/addons/attach/attach.js b/addons/attach/attach.js deleted file mode 100644 index b74627d..0000000 --- a/addons/attach/attach.js +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Implements the attach method, that - * attaches the terminal to a WebSocket stream. - * - * The bidirectional argument indicates, whether the terminal should - * send data to the socket as well and is true, by default. - */ - -(function (attach) { - if (typeof exports === 'object' && typeof module === 'object') { - /* - * CommonJS environment - */ - module.exports = attach(require('../../dist/xterm')); - } else if (typeof define == 'function') { - /* - * Require.js is available - */ - define(['../../dist/xterm'], attach); - } else { - /* - * Plain browser environment - */ - attach(window.Terminal); - } -})(function (Xterm) { - 'use strict'; - - /** - * This module provides methods for attaching a terminal to a WebSocket - * stream. - * - * @module xterm/addons/attach/attach - */ - var exports = {}; - - /** - * Attaches the given terminal to the given socket. - * - * @param {Xterm} term - The terminal to be attached to the given socket. - * @param {WebSocket} socket - The socket to attach the current terminal. - * @param {boolean} bidirectional - Whether the terminal should send data - * to the socket as well. - * @param {boolean} buffered - Whether the rendering of incoming data - * should happen instantly or at a maximum - * frequency of 1 rendering per 10ms. - */ - exports.attach = function (term, socket, bidirectional, buffered) { - bidirectional = (typeof bidirectional == 'undefined') ? true : bidirectional; - term.socket = socket; - - term._flushBuffer = function () { - term.write(term._attachSocketBuffer); - term._attachSocketBuffer = null; - clearTimeout(term._attachSocketBufferTimer); - term._attachSocketBufferTimer = null; - }; - - term._pushToBuffer = function (data) { - if (term._attachSocketBuffer) { - term._attachSocketBuffer += data; - } else { - term._attachSocketBuffer = data; - setTimeout(term._flushBuffer, 10); - } - }; - - term._getMessage = function (ev) { - if (buffered) { - term._pushToBuffer(ev.data); - } else { - term.write(ev.data); - } - }; - - term._sendData = function (data) { - socket.send(data); - }; - - socket.addEventListener('message', term._getMessage); - - if (bidirectional) { - term.on('data', term._sendData); - } - - socket.addEventListener('close', term.detach.bind(term, socket)); - socket.addEventListener('error', term.detach.bind(term, socket)); - }; - - /** - * Detaches the given terminal from the given socket - * - * @param {Xterm} term - The terminal to be detached from the given socket. - * @param {WebSocket} socket - The socket from which to detach the current - * terminal. - */ - exports.detach = function (term, socket) { - term.off('data', term._sendData); - - socket = (typeof socket == 'undefined') ? term.socket : socket; - - if (socket) { - socket.removeEventListener('message', term._getMessage); - } - - delete term.socket; - }; - - /** - * Attaches the current terminal to the given socket - * - * @param {WebSocket} socket - The socket to attach the current terminal. - * @param {boolean} bidirectional - Whether the terminal should send data - * to the socket as well. - * @param {boolean} buffered - Whether the rendering of incoming data - * should happen instantly or at a maximum - * frequency of 1 rendering per 10ms. - */ - Xterm.prototype.attach = function (socket, bidirectional, buffered) { - return exports.attach(this, socket, bidirectional, buffered); - }; - - /** - * Detaches the current terminal from the given socket. - * - * @param {WebSocket} socket - The socket from which to detach the current - * terminal. - */ - Xterm.prototype.detach = function (socket) { - return exports.detach(this, socket); - }; - - return exports; -}); diff --git a/addons/attach/index.html b/addons/attach/index.html deleted file mode 100644 index b6f853b..0000000 --- a/addons/attach/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - -
- -

- xterm.js: socket attach -

-

- Attach the terminal to a WebSocket terminal stream with ease. Perfect for attaching to your - Docker containers. -

-

- Socket information -

-
- - -
-
- -
- - - \ No newline at end of file diff --git a/addons/attach/package.json b/addons/attach/package.json deleted file mode 100644 index 9e45068..0000000 --- a/addons/attach/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "xterm.attach", - "main": "attach.js", - "private": true -} diff --git a/addons/fit/fit.js b/addons/fit/fit.js deleted file mode 100644 index 7657c9c..0000000 --- a/addons/fit/fit.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Fit terminal columns and rows to the dimensions of its - * DOM element. - * - * Approach: - * - Rows: Truncate the division of the terminal parent element height - * by the terminal row height - * - * - Columns: Truncate the division of the terminal parent element width by - * the terminal character width (apply display: inline at the - * terminal row and truncate its width with the current number - * of columns) - */ -(function (fit) { - if (typeof exports === 'object' && typeof module === 'object') { - /* - * CommonJS environment - */ - module.exports = fit(require('../../dist/xterm')); - } else if (typeof define == 'function') { - /* - * Require.js is available - */ - define(['../../dist/xterm'], fit); - } else { - /* - * Plain browser environment - */ - fit(window.Terminal); - } -})(function (Xterm) { - /** - * This module provides methods for fitting a terminal's size to a parent container. - * - * @module xterm/addons/fit/fit - */ - var exports = {}; - - exports.proposeGeometry = function (term) { - var parentElementStyle = window.getComputedStyle(term.element.parentElement), - parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')), - parentElementWidth = parseInt(parentElementStyle.getPropertyValue('width')), - elementStyle = window.getComputedStyle(term.element), - elementPaddingVer = parseInt(elementStyle.getPropertyValue('padding-top')) + parseInt(elementStyle.getPropertyValue('padding-bottom')), - elementPaddingHor = parseInt(elementStyle.getPropertyValue('padding-right')) + parseInt(elementStyle.getPropertyValue('padding-left')), - availableHeight = parentElementHeight - elementPaddingVer, - availableWidth = parentElementWidth - elementPaddingHor, - container = term.rowContainer, - subjectRow = term.rowContainer.firstElementChild, - contentBuffer = subjectRow.innerHTML, - characterHeight, - rows, - characterWidth, - cols, - geometry; - - subjectRow.style.display = 'inline'; - subjectRow.innerHTML = 'W'; // Common character for measuring width, although on monospace - characterWidth = subjectRow.getBoundingClientRect().width; - subjectRow.style.display = ''; // Revert style before calculating height, since they differ. - characterHeight = parseInt(subjectRow.offsetHeight); - subjectRow.innerHTML = contentBuffer; - - rows = parseInt(availableHeight / characterHeight); - cols = parseInt(availableWidth / characterWidth) - 1; - - geometry = {cols: cols, rows: rows}; - return geometry; - }; - - exports.fit = function (term) { - var geometry = exports.proposeGeometry(term); - - term.resize(geometry.cols, geometry.rows); - }; - - Xterm.prototype.proposeGeometry = function () { - return exports.proposeGeometry(this); - }; - - Xterm.prototype.fit = function () { - return exports.fit(this); - }; - - return exports; -}); diff --git a/addons/fit/package.json b/addons/fit/package.json deleted file mode 100644 index f7cb5bc..0000000 --- a/addons/fit/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "xterm.fit", - "main": "fit.js", - "private": true -} diff --git a/addons/fullscreen/fullscreen.css b/addons/fullscreen/fullscreen.css deleted file mode 100644 index 60e8c51..0000000 --- a/addons/fullscreen/fullscreen.css +++ /dev/null @@ -1,10 +0,0 @@ -.xterm.fullscreen { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - width: auto; - height: auto; - z-index: 255; -} diff --git a/addons/fullscreen/fullscreen.js b/addons/fullscreen/fullscreen.js deleted file mode 100644 index 1579a9c..0000000 --- a/addons/fullscreen/fullscreen.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Fullscreen addon for xterm.js - * - * Implements the toggleFullscreen function. - * - * If the `fullscreen` argument has been supplied, then - * if it is true, the fullscreen mode gets turned on, - * if it is false or null, the fullscreen mode gets turned off. - * - * If the `fullscreen` argument has not been supplied, the - * fullscreen mode is being toggled. - */ -(function (fullscreen) { - if (typeof exports === 'object' && typeof module === 'object') { - /* - * CommonJS environment - */ - module.exports = fullscreen(require('../../dist/xterm')); - } else if (typeof define == 'function') { - /* - * Require.js is available - */ - define(['../../dist/xterm'], fullscreen); - } else { - /* - * Plain browser environment - */ - fullscreen(window.Terminal); - } -})(function (Xterm) { - var exports = {}; - - exports.toggleFullScreen = function (term, fullscreen) { - var fn; - - if (typeof fullscreen == 'undefined') { - fn = (term.element.classList.contains('fullscreen')) ? 'remove' : 'add'; - } else if (!fullscreen) { - fn = 'remove'; - } else { - fn = 'add'; - } - - term.element.classList[fn]('fullscreen'); - }; - - Xterm.prototype.toggleFullscreen = function (fullscreen) { - exports.toggleFullScreen(this, fullscreen); - }; - - return exports; -}); diff --git a/addons/fullscreen/package.json b/addons/fullscreen/package.json deleted file mode 100644 index fdaf688..0000000 --- a/addons/fullscreen/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "xterm.fullscreen", - "main": "fullscreen.js", - "private": true -} diff --git a/addons/linkify/index.html b/addons/linkify/index.html deleted file mode 100644 index 5f42932..0000000 --- a/addons/linkify/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - -
- - - \ No newline at end of file diff --git a/addons/linkify/linkify.js b/addons/linkify/linkify.js deleted file mode 100644 index 8ee9611..0000000 --- a/addons/linkify/linkify.js +++ /dev/null @@ -1,207 +0,0 @@ -(function (linkify) { - if (typeof exports === 'object' && typeof module === 'object') { - /* - * CommonJS environment - */ - module.exports = linkify(require('../../dist/xterm')); - } else if (typeof define == 'function') { - /* - * Require.js is available - */ - define(['../../dist/xterm'], linkify); - } else { - /* - * Plain browser environment - */ - linkify(window.Terminal); - } -})(function (Xterm) { - 'use strict'; - - /** - * This module provides methods for convertings valid URL substrings - * into HTML anchor elements (links), inside a terminal view. - * - * @module xterm/addons/linkify/linkify - */ - var exports = {}, - protocolClause = '(https?:\\/\\/)', - domainCharacterSet = '[\\da-z\\.-]+', - negatedDomainCharacterSet = '[^\\da-z\\.-]+', - domainBodyClause = '(' + domainCharacterSet + ')', - tldClause = '([a-z\\.]{2,6})', - ipClause = '((\\d{1,3}\\.){3}\\d{1,3})', - portClause = '(:\\d{1,5})', - hostClause = '((' + domainBodyClause + '\\.' + tldClause + ')|' + ipClause + ')' + portClause + '?', - pathClause = '(\\/[\\/\\w\\.-]*)*', - negatedPathCharacterSet = '[^\\/\\w\\.-]+', - bodyClause = hostClause + pathClause, - start = '(?:^|' + negatedDomainCharacterSet + ')(', - end = ')($|' + negatedPathCharacterSet + ')', - lenientUrlClause = start + protocolClause + '?' + bodyClause + end, - strictUrlClause = start + protocolClause + bodyClause + end, - lenientUrlRegex = new RegExp(lenientUrlClause), - strictUrlRegex = new RegExp(strictUrlClause); - - /** - * Converts all valid URLs found in the given terminal line into - * hyperlinks. The terminal line can be either the HTML element itself - * or the index of the termina line in the children of the terminal - * rows container. - * - * @param {Xterm} terminal - The terminal that owns the given line. - * @param {number|HTMLDivElement} line - The terminal line that should get - * "linkified". - * @param {boolean} lenient - The regex type that will be used to identify links. If lenient is - * false, the regex requires a protocol clause. Defaults to true. - * @param {string} target - Sets target="" attribute with value provided to links. - * Default doesn't set target attribute - * @emits linkify - * @emits linkify:line - */ - exports.linkifyTerminalLine = function (terminal, line, lenient, target) { - if (typeof line == 'number') { - line = terminal.rowContainer.children[line]; - } else if (! (line instanceof HTMLDivElement)) { - var message = 'The "line" argument should be either a number'; - message += ' or an HTMLDivElement'; - - throw new TypeError(message); - } - - if (typeof target === 'undefined') { - target = ''; - } else { - target = 'target="' + target + '"'; - } - - var buffer = document.createElement('span'), - nodes = line.childNodes; - - for (var j=0; j' + url + '', - newHTML = nodeHTML.replace(url, link); - - line.innerHTML = line.innerHTML.replace(nodeHTML, newHTML); - } - - /** - * This event gets emitted when conversion of all URL susbtrings - * to HTML anchor elements (links) has finished, for a specific - * line of the current Xterm instance. - * - * @event linkify:line - */ - terminal.emit('linkify:line', line); - }; - - /** - * Finds a link within a block of text. - * - * @param {string} text - The text to search . - * @param {boolean} lenient - Whether to use the lenient search. - * @return {string} A URL. - */ - exports.findLinkMatch = function (text, lenient) { - var match = text.match(lenient ? lenientUrlRegex : strictUrlRegex); - if (!match || match.length === 0) { - return null; - } - return match[1]; - } - - /** - * Converts all valid URLs found in the terminal view into hyperlinks. - * - * @param {Xterm} terminal - The terminal that should get "linkified". - * @param {boolean} lenient - The regex type that will be used to identify links. If lenient is - * false, the regex requires a protocol clause. Defaults to true. - * @param {string} target - Sets target="" attribute with value provided to links. - * Default doesn't set target attribute - * @emits linkify - * @emits linkify:line - */ - exports.linkify = function (terminal, lenient, target) { - var rows = terminal.rowContainer.children; - - lenient = (typeof lenient == "boolean") ? lenient : true; - for (var i=0; i xterm.js demo - + - - - - + + + +

xterm.js: xterm, in the browser

diff --git a/package.json b/package.json index d35d608..bb3823b 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "typescript": "^2.0.3" }, "scripts": { - "start": "nodemon --watch src --watch addons --exec bash -c './bin/build && node demo/app'", - "test": "./bin/build && mocha --recursive ./test/*test.js ./test/**/*test.js", + "start": "nodemon --watch src --watch addons --watch demo --exec bash -c './bin/build && node demo/app'", + "test": "./bin/build && mocha --recursive ./out", "build:docs": "jsdoc -c jsdoc.json", "build": "./bin/build" } diff --git a/src/addons/attach/attach.js b/src/addons/attach/attach.js new file mode 100644 index 0000000..769a7e5 --- /dev/null +++ b/src/addons/attach/attach.js @@ -0,0 +1,134 @@ +/* + * Implements the attach method, that + * attaches the terminal to a WebSocket stream. + * + * The bidirectional argument indicates, whether the terminal should + * send data to the socket as well and is true, by default. + */ + +(function (attach) { + if (typeof exports === 'object' && typeof module === 'object') { + /* + * CommonJS environment + */ + module.exports = attach(require('../../xterm')); + } else if (typeof define == 'function') { + /* + * Require.js is available + */ + define(['../../xterm'], attach); + } else { + /* + * Plain browser environment + */ + attach(window.Terminal); + } +})(function (Xterm) { + 'use strict'; + + /** + * This module provides methods for attaching a terminal to a WebSocket + * stream. + * + * @module xterm/addons/attach/attach + */ + var exports = {}; + + /** + * Attaches the given terminal to the given socket. + * + * @param {Xterm} term - The terminal to be attached to the given socket. + * @param {WebSocket} socket - The socket to attach the current terminal. + * @param {boolean} bidirectional - Whether the terminal should send data + * to the socket as well. + * @param {boolean} buffered - Whether the rendering of incoming data + * should happen instantly or at a maximum + * frequency of 1 rendering per 10ms. + */ + exports.attach = function (term, socket, bidirectional, buffered) { + bidirectional = (typeof bidirectional == 'undefined') ? true : bidirectional; + term.socket = socket; + + term._flushBuffer = function () { + term.write(term._attachSocketBuffer); + term._attachSocketBuffer = null; + clearTimeout(term._attachSocketBufferTimer); + term._attachSocketBufferTimer = null; + }; + + term._pushToBuffer = function (data) { + if (term._attachSocketBuffer) { + term._attachSocketBuffer += data; + } else { + term._attachSocketBuffer = data; + setTimeout(term._flushBuffer, 10); + } + }; + + term._getMessage = function (ev) { + if (buffered) { + term._pushToBuffer(ev.data); + } else { + term.write(ev.data); + } + }; + + term._sendData = function (data) { + socket.send(data); + }; + + socket.addEventListener('message', term._getMessage); + + if (bidirectional) { + term.on('data', term._sendData); + } + + socket.addEventListener('close', term.detach.bind(term, socket)); + socket.addEventListener('error', term.detach.bind(term, socket)); + }; + + /** + * Detaches the given terminal from the given socket + * + * @param {Xterm} term - The terminal to be detached from the given socket. + * @param {WebSocket} socket - The socket from which to detach the current + * terminal. + */ + exports.detach = function (term, socket) { + term.off('data', term._sendData); + + socket = (typeof socket == 'undefined') ? term.socket : socket; + + if (socket) { + socket.removeEventListener('message', term._getMessage); + } + + delete term.socket; + }; + + /** + * Attaches the current terminal to the given socket + * + * @param {WebSocket} socket - The socket to attach the current terminal. + * @param {boolean} bidirectional - Whether the terminal should send data + * to the socket as well. + * @param {boolean} buffered - Whether the rendering of incoming data + * should happen instantly or at a maximum + * frequency of 1 rendering per 10ms. + */ + Xterm.prototype.attach = function (socket, bidirectional, buffered) { + return exports.attach(this, socket, bidirectional, buffered); + }; + + /** + * Detaches the current terminal from the given socket. + * + * @param {WebSocket} socket - The socket from which to detach the current + * terminal. + */ + Xterm.prototype.detach = function (socket) { + return exports.detach(this, socket); + }; + + return exports; +}); diff --git a/src/addons/attach/index.html b/src/addons/attach/index.html new file mode 100644 index 0000000..b6f853b --- /dev/null +++ b/src/addons/attach/index.html @@ -0,0 +1,93 @@ + + + + + + + + + + +
+ +

+ xterm.js: socket attach +

+

+ Attach the terminal to a WebSocket terminal stream with ease. Perfect for attaching to your + Docker containers. +

+

+ Socket information +

+
+ + +
+
+ +
+ + + \ No newline at end of file diff --git a/src/addons/attach/package.json b/src/addons/attach/package.json new file mode 100644 index 0000000..9e45068 --- /dev/null +++ b/src/addons/attach/package.json @@ -0,0 +1,5 @@ +{ + "name": "xterm.attach", + "main": "attach.js", + "private": true +} diff --git a/src/addons/fit/fit.js b/src/addons/fit/fit.js new file mode 100644 index 0000000..7e24fd9 --- /dev/null +++ b/src/addons/fit/fit.js @@ -0,0 +1,86 @@ +/* + * Fit terminal columns and rows to the dimensions of its + * DOM element. + * + * Approach: + * - Rows: Truncate the division of the terminal parent element height + * by the terminal row height + * + * - Columns: Truncate the division of the terminal parent element width by + * the terminal character width (apply display: inline at the + * terminal row and truncate its width with the current number + * of columns) + */ +(function (fit) { + if (typeof exports === 'object' && typeof module === 'object') { + /* + * CommonJS environment + */ + module.exports = fit(require('../../xterm')); + } else if (typeof define == 'function') { + /* + * Require.js is available + */ + define(['../../xterm'], fit); + } else { + /* + * Plain browser environment + */ + fit(window.Terminal); + } +})(function (Xterm) { + /** + * This module provides methods for fitting a terminal's size to a parent container. + * + * @module xterm/addons/fit/fit + */ + var exports = {}; + + exports.proposeGeometry = function (term) { + var parentElementStyle = window.getComputedStyle(term.element.parentElement), + parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')), + parentElementWidth = parseInt(parentElementStyle.getPropertyValue('width')), + elementStyle = window.getComputedStyle(term.element), + elementPaddingVer = parseInt(elementStyle.getPropertyValue('padding-top')) + parseInt(elementStyle.getPropertyValue('padding-bottom')), + elementPaddingHor = parseInt(elementStyle.getPropertyValue('padding-right')) + parseInt(elementStyle.getPropertyValue('padding-left')), + availableHeight = parentElementHeight - elementPaddingVer, + availableWidth = parentElementWidth - elementPaddingHor, + container = term.rowContainer, + subjectRow = term.rowContainer.firstElementChild, + contentBuffer = subjectRow.innerHTML, + characterHeight, + rows, + characterWidth, + cols, + geometry; + + subjectRow.style.display = 'inline'; + subjectRow.innerHTML = 'W'; // Common character for measuring width, although on monospace + characterWidth = subjectRow.getBoundingClientRect().width; + subjectRow.style.display = ''; // Revert style before calculating height, since they differ. + characterHeight = parseInt(subjectRow.offsetHeight); + subjectRow.innerHTML = contentBuffer; + + rows = parseInt(availableHeight / characterHeight); + cols = parseInt(availableWidth / characterWidth) - 1; + + geometry = {cols: cols, rows: rows}; + return geometry; + }; + + exports.fit = function (term) { + var geometry = exports.proposeGeometry(term); + + term.resize(geometry.cols, geometry.rows); + }; + + Xterm.prototype.proposeGeometry = function () { + return exports.proposeGeometry(this); + }; + + Xterm.prototype.fit = function () { + return exports.fit(this); + }; + + return exports; +}); diff --git a/src/addons/fit/package.json b/src/addons/fit/package.json new file mode 100644 index 0000000..f7cb5bc --- /dev/null +++ b/src/addons/fit/package.json @@ -0,0 +1,5 @@ +{ + "name": "xterm.fit", + "main": "fit.js", + "private": true +} diff --git a/src/addons/fullscreen/fullscreen.css b/src/addons/fullscreen/fullscreen.css new file mode 100644 index 0000000..60e8c51 --- /dev/null +++ b/src/addons/fullscreen/fullscreen.css @@ -0,0 +1,10 @@ +.xterm.fullscreen { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + width: auto; + height: auto; + z-index: 255; +} diff --git a/src/addons/fullscreen/fullscreen.js b/src/addons/fullscreen/fullscreen.js new file mode 100644 index 0000000..e4098f4 --- /dev/null +++ b/src/addons/fullscreen/fullscreen.js @@ -0,0 +1,52 @@ +/* + * Fullscreen addon for xterm.js + * + * Implements the toggleFullscreen function. + * + * If the `fullscreen` argument has been supplied, then + * if it is true, the fullscreen mode gets turned on, + * if it is false or null, the fullscreen mode gets turned off. + * + * If the `fullscreen` argument has not been supplied, the + * fullscreen mode is being toggled. + */ +(function (fullscreen) { + if (typeof exports === 'object' && typeof module === 'object') { + /* + * CommonJS environment + */ + module.exports = fullscreen(require('../../xterm')); + } else if (typeof define == 'function') { + /* + * Require.js is available + */ + define(['../../xterm'], fullscreen); + } else { + /* + * Plain browser environment + */ + fullscreen(window.Terminal); + } +})(function (Xterm) { + var exports = {}; + + exports.toggleFullScreen = function (term, fullscreen) { + var fn; + + if (typeof fullscreen == 'undefined') { + fn = (term.element.classList.contains('fullscreen')) ? 'remove' : 'add'; + } else if (!fullscreen) { + fn = 'remove'; + } else { + fn = 'add'; + } + + term.element.classList[fn]('fullscreen'); + }; + + Xterm.prototype.toggleFullscreen = function (fullscreen) { + exports.toggleFullScreen(this, fullscreen); + }; + + return exports; +}); diff --git a/src/addons/fullscreen/package.json b/src/addons/fullscreen/package.json new file mode 100644 index 0000000..fdaf688 --- /dev/null +++ b/src/addons/fullscreen/package.json @@ -0,0 +1,5 @@ +{ + "name": "xterm.fullscreen", + "main": "fullscreen.js", + "private": true +} diff --git a/src/addons/linkify/index.html b/src/addons/linkify/index.html new file mode 100644 index 0000000..5f42932 --- /dev/null +++ b/src/addons/linkify/index.html @@ -0,0 +1,36 @@ + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/src/addons/linkify/linkify.js b/src/addons/linkify/linkify.js new file mode 100644 index 0000000..2140c0a --- /dev/null +++ b/src/addons/linkify/linkify.js @@ -0,0 +1,207 @@ +(function (linkify) { + if (typeof exports === 'object' && typeof module === 'object') { + /* + * CommonJS environment + */ + module.exports = linkify(require('../../xterm')); + } else if (typeof define == 'function') { + /* + * Require.js is available + */ + define(['../../xterm'], linkify); + } else { + /* + * Plain browser environment + */ + linkify(window.Terminal); + } +})(function (Xterm) { + 'use strict'; + + /** + * This module provides methods for convertings valid URL substrings + * into HTML anchor elements (links), inside a terminal view. + * + * @module xterm/addons/linkify/linkify + */ + var exports = {}, + protocolClause = '(https?:\\/\\/)', + domainCharacterSet = '[\\da-z\\.-]+', + negatedDomainCharacterSet = '[^\\da-z\\.-]+', + domainBodyClause = '(' + domainCharacterSet + ')', + tldClause = '([a-z\\.]{2,6})', + ipClause = '((\\d{1,3}\\.){3}\\d{1,3})', + portClause = '(:\\d{1,5})', + hostClause = '((' + domainBodyClause + '\\.' + tldClause + ')|' + ipClause + ')' + portClause + '?', + pathClause = '(\\/[\\/\\w\\.-]*)*', + negatedPathCharacterSet = '[^\\/\\w\\.-]+', + bodyClause = hostClause + pathClause, + start = '(?:^|' + negatedDomainCharacterSet + ')(', + end = ')($|' + negatedPathCharacterSet + ')', + lenientUrlClause = start + protocolClause + '?' + bodyClause + end, + strictUrlClause = start + protocolClause + bodyClause + end, + lenientUrlRegex = new RegExp(lenientUrlClause), + strictUrlRegex = new RegExp(strictUrlClause); + + /** + * Converts all valid URLs found in the given terminal line into + * hyperlinks. The terminal line can be either the HTML element itself + * or the index of the termina line in the children of the terminal + * rows container. + * + * @param {Xterm} terminal - The terminal that owns the given line. + * @param {number|HTMLDivElement} line - The terminal line that should get + * "linkified". + * @param {boolean} lenient - The regex type that will be used to identify links. If lenient is + * false, the regex requires a protocol clause. Defaults to true. + * @param {string} target - Sets target="" attribute with value provided to links. + * Default doesn't set target attribute + * @emits linkify + * @emits linkify:line + */ + exports.linkifyTerminalLine = function (terminal, line, lenient, target) { + if (typeof line == 'number') { + line = terminal.rowContainer.children[line]; + } else if (! (line instanceof HTMLDivElement)) { + var message = 'The "line" argument should be either a number'; + message += ' or an HTMLDivElement'; + + throw new TypeError(message); + } + + if (typeof target === 'undefined') { + target = ''; + } else { + target = 'target="' + target + '"'; + } + + var buffer = document.createElement('span'), + nodes = line.childNodes; + + for (var j=0; j' + url + '', + newHTML = nodeHTML.replace(url, link); + + line.innerHTML = line.innerHTML.replace(nodeHTML, newHTML); + } + + /** + * This event gets emitted when conversion of all URL susbtrings + * to HTML anchor elements (links) has finished, for a specific + * line of the current Xterm instance. + * + * @event linkify:line + */ + terminal.emit('linkify:line', line); + }; + + /** + * Finds a link within a block of text. + * + * @param {string} text - The text to search . + * @param {boolean} lenient - Whether to use the lenient search. + * @return {string} A URL. + */ + exports.findLinkMatch = function (text, lenient) { + var match = text.match(lenient ? lenientUrlRegex : strictUrlRegex); + if (!match || match.length === 0) { + return null; + } + return match[1]; + } + + /** + * Converts all valid URLs found in the terminal view into hyperlinks. + * + * @param {Xterm} terminal - The terminal that should get "linkified". + * @param {boolean} lenient - The regex type that will be used to identify links. If lenient is + * false, the regex requires a protocol clause. Defaults to true. + * @param {string} target - Sets target="" attribute with value provided to links. + * Default doesn't set target attribute + * @emits linkify + * @emits linkify:line + */ + exports.linkify = function (terminal, lenient, target) { + var rows = terminal.rowContainer.children; + + lenient = (typeof lenient == "boolean") ? lenient : true; + for (var i=0; i? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +`abcdefghijklmno +pqrstuvwxyz{|}~ diff --git a/src/test/escape_sequence_files/t0001-all_printable.text b/src/test/escape_sequence_files/t0001-all_printable.text new file mode 100644 index 0000000..421f5a7 --- /dev/null +++ b/src/test/escape_sequence_files/t0001-all_printable.text @@ -0,0 +1,25 @@ + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +`abcdefghijklmno +pqrstuvwxyz{|}~ + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0002-history.in b/src/test/escape_sequence_files/t0002-history.in new file mode 100644 index 0000000..3bc7fbc --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0002-history.text b/src/test/escape_sequence_files/t0002-history.text new file mode 100644 index 0000000..39bdf52 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0002j-simple_string.in b/src/test/escape_sequence_files/t0002j-simple_string.in new file mode 100644 index 0000000..a679175 --- /dev/null +++ b/src/test/escape_sequence_files/t0002j-simple_string.in @@ -0,0 +1 @@ +abcdefghijklmnopqrstuvwxyz0123456789 \ No newline at end of file diff --git a/src/test/escape_sequence_files/t0002j-simple_string.text b/src/test/escape_sequence_files/t0002j-simple_string.text new file mode 100644 index 0000000..097318d --- /dev/null +++ b/src/test/escape_sequence_files/t0002j-simple_string.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrstuvwxyz0123456789 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0003-line_wrap.in b/src/test/escape_sequence_files/t0003-line_wrap.in new file mode 100644 index 0000000..d110db8 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0003-line_wrap.text b/src/test/escape_sequence_files/t0003-line_wrap.text new file mode 100644 index 0000000..fbe1c56 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0003j-LF.in b/src/test/escape_sequence_files/t0003j-LF.in new file mode 100644 index 0000000..9f52852 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0003j-LF.text b/src/test/escape_sequence_files/t0003j-LF.text new file mode 100644 index 0000000..a6210e1 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0004-LF.in b/src/test/escape_sequence_files/t0004-LF.in new file mode 100644 index 0000000..4f4aa53 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0004-LF.text b/src/test/escape_sequence_files/t0004-LF.text new file mode 100644 index 0000000..3756aca --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0004j-CR.in b/src/test/escape_sequence_files/t0004j-CR.in new file mode 100644 index 0000000..d40432d --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0004j-CR.text b/src/test/escape_sequence_files/t0004j-CR.text new file mode 100644 index 0000000..beb0e35 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0005-CR.in b/src/test/escape_sequence_files/t0005-CR.in new file mode 100644 index 0000000..d5f545a --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0005-CR.text b/src/test/escape_sequence_files/t0005-CR.text new file mode 100644 index 0000000..dfcc049 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0006-IND.in b/src/test/escape_sequence_files/t0006-IND.in new file mode 100644 index 0000000..614552f --- /dev/null +++ b/src/test/escape_sequence_files/t0006-IND.in @@ -0,0 +1 @@ +aDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D5D6D7D8D9D0DaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDt diff --git a/src/test/escape_sequence_files/t0006-IND.text b/src/test/escape_sequence_files/t0006-IND.text new file mode 100644 index 0000000..8c69a7f --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0007-space_at_end.in b/src/test/escape_sequence_files/t0007-space_at_end.in new file mode 100644 index 0000000..73d19c5 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0007-space_at_end.text b/src/test/escape_sequence_files/t0007-space_at_end.text new file mode 100644 index 0000000..f46caee --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0008-BS.in b/src/test/escape_sequence_files/t0008-BS.in new file mode 100644 index 0000000..0980d87 --- /dev/null +++ b/src/test/escape_sequence_files/t0008-BS.in @@ -0,0 +1,7 @@ +abcdefghijklmnopqrstuvwxyz! +abc@ +# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop$ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq% +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr^ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs& diff --git a/src/test/escape_sequence_files/t0008-BS.text b/src/test/escape_sequence_files/t0008-BS.text new file mode 100644 index 0000000..77d1710 --- /dev/null +++ b/src/test/escape_sequence_files/t0008-BS.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrst!vwxyz +@bc +# +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij$lmnop +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij%lmnopq +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +^ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +&s + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0009-NEL.in b/src/test/escape_sequence_files/t0009-NEL.in new file mode 100644 index 0000000..b541ec4 --- /dev/null +++ b/src/test/escape_sequence_files/t0009-NEL.in @@ -0,0 +1 @@ +aEabEabcEabcdEabcdeEabcdefEabcdefgEabcdefghEabcdefghiEabcdefghijEabcdefghijkEabcdefghijklEabcdefghijklmEabcdefghijklmnEabcdefghijklmnoEabcdefghijklmnopEabcdefghijklmnopqEabcdefghijklmnopqrEabcdefghijklmnopqrsEabcdefghijklmnopqrstEabcdefghijklmnopqrstuEabcdefghijklmnopqrstuvEabcdefghijklmnopqrstuvwEabcdefghijklmnopqrstuvwxEabcdefghijklmnopqrstuvwxyEabcdefghijklmnopqrstuvwxyzEabcdefghijklmnopqrstuvwxyzAEabcdefghijklmnopqrstuvwxyzABEabcdefghijklmnopqrstuvwxyzABCEabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEEabcdefghijklmnopqrstuvwxyzABCDEFEabcdefghijklmnopqrstuvwxyzABCDEFGEabcdefghijklmnopqrstuvwxyzABCDEFGHEabcdefghijklmnopqrstuvwxyzABCDEFGHIEabcdefghijklmnopqrstuvwxyzABCDEFGHIJEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQREabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890aEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdeEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghiEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnoEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrsEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst diff --git a/src/test/escape_sequence_files/t0009-NEL.text b/src/test/escape_sequence_files/t0009-NEL.text new file mode 100644 index 0000000..fbe1c56 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0010-RI.in b/src/test/escape_sequence_files/t0010-RI.in new file mode 100644 index 0000000..c2aeb67 --- /dev/null +++ b/src/test/escape_sequence_files/t0010-RI.in @@ -0,0 +1,10 @@ +a +b +c +dMeMfMg +h +i +j....................................................................kMlMmMn + + + diff --git a/src/test/escape_sequence_files/t0010-RI.text b/src/test/escape_sequence_files/t0010-RI.text new file mode 100644 index 0000000..5320654 --- /dev/null +++ b/src/test/escape_sequence_files/t0010-RI.text @@ -0,0 +1,25 @@ +a g n +h f m +ie l +j....................................................................k + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0011-RI_scroll.in b/src/test/escape_sequence_files/t0011-RI_scroll.in new file mode 100644 index 0000000..14da12d --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0011-RI_scroll.text b/src/test/escape_sequence_files/t0011-RI_scroll.text new file mode 100644 index 0000000..21cb1cf --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0012-VT.in b/src/test/escape_sequence_files/t0012-VT.in new file mode 100644 index 0000000..ee56208 --- /dev/null +++ b/src/test/escape_sequence_files/t0012-VT.in @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/src/test/escape_sequence_files/t0012-VT.text b/src/test/escape_sequence_files/t0012-VT.text new file mode 100644 index 0000000..8c69a7f --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0013-FF.in b/src/test/escape_sequence_files/t0013-FF.in new file mode 100644 index 0000000..01198c2 --- /dev/null +++ b/src/test/escape_sequence_files/t0013-FF.in @@ -0,0 +1 @@ +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/src/test/escape_sequence_files/t0013-FF.text b/src/test/escape_sequence_files/t0013-FF.text new file mode 100644 index 0000000..16c9c2b --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0014-CAN.in b/src/test/escape_sequence_files/t0014-CAN.in new file mode 100644 index 0000000..64bae4a --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0014-CAN.text b/src/test/escape_sequence_files/t0014-CAN.text new file mode 100644 index 0000000..77a38fa --- /dev/null +++ b/src/test/escape_sequence_files/t0014-CAN.text @@ -0,0 +1,25 @@ +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0015-SUB.in b/src/test/escape_sequence_files/t0015-SUB.in new file mode 100644 index 0000000..1bd237f --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0015-SUB.text b/src/test/escape_sequence_files/t0015-SUB.text new file mode 100644 index 0000000..77a38fa --- /dev/null +++ b/src/test/escape_sequence_files/t0015-SUB.text @@ -0,0 +1,25 @@ +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh +abcdDefgh + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0016-SU.in b/src/test/escape_sequence_files/t0016-SU.in new file mode 100644 index 0000000..7e52573 --- /dev/null +++ b/src/test/escape_sequence_files/t0016-SU.in @@ -0,0 +1,17 @@ +HelloGoodbye + +UpDown +x + +-----------------------------------------------------------------------------x +------------------------------------------------------------------------------x +-------------------------------------------------------------------------------x +--------------------------------------------------------------------------------x +---------------------------------------------------------------------------------x +.............................................................................x +..............................................................................x +...............................................................................x +................................................................................x +.................................................................................x + +The End. diff --git a/src/test/escape_sequence_files/t0016-SU.text b/src/test/escape_sequence_files/t0016-SU.text new file mode 100644 index 0000000..2323fa3 --- /dev/null +++ b/src/test/escape_sequence_files/t0016-SU.text @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + +The End. + + + + + diff --git a/src/test/escape_sequence_files/t0017-SD.in b/src/test/escape_sequence_files/t0017-SD.in new file mode 100644 index 0000000..ce76440 --- /dev/null +++ b/src/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 +a + b + c + d + e + f + g + h +------------------------------------------------------------------------------1 + + +-------------------------------------------------------------------------------2 + + +--------------------------------------------------------------------------------3 + + +---------------------------------------------------------------------------------4 + + +..............................................................................5 + + +...............................................................................6 + + +................................................................................7 + + +.................................................................................8 diff --git a/src/test/escape_sequence_files/t0017-SD.text b/src/test/escape_sequence_files/t0017-SD.text new file mode 100644 index 0000000..6e39cd9 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0020-CUF.in b/src/test/escape_sequence_files/t0020-CUF.in new file mode 100644 index 0000000..9df6cd7 --- /dev/null +++ b/src/test/escape_sequence_files/t0020-CUF.in @@ -0,0 +1,14 @@ +abcdefghijkl +abcdefghijkl +abcdefghijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ +x +x +abcd diff --git a/src/test/escape_sequence_files/t0020-CUF.text b/src/test/escape_sequence_files/t0020-CUF.text new file mode 100644 index 0000000..b868261 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0021-CUB.in b/src/test/escape_sequence_files/t0021-CUB.in new file mode 100644 index 0000000..b07f753 --- /dev/null +++ b/src/test/escape_sequence_files/t0021-CUB.in @@ -0,0 +1,8 @@ +abcdefg!@ +abcdefg!@ +abcdefg!@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr@ +x diff --git a/src/test/escape_sequence_files/t0021-CUB.text b/src/test/escape_sequence_files/t0021-CUB.text new file mode 100644 index 0000000..9a1b385 --- /dev/null +++ b/src/test/escape_sequence_files/t0021-CUB.text @@ -0,0 +1,25 @@ +abcdef!@ +!@cdefg +abcde!@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@q +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +@ +x + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0022-CUU.in b/src/test/escape_sequence_files/t0022-CUU.in new file mode 100644 index 0000000..4c47f30 --- /dev/null +++ b/src/test/escape_sequence_files/t0022-CUU.in @@ -0,0 +1,25 @@ +a +b +c +defg +h +i +j....................................................................klmn + + + + + + + + + + + +0123 + + + + + + diff --git a/src/test/escape_sequence_files/t0022-CUU.text b/src/test/escape_sequence_files/t0022-CUU.text new file mode 100644 index 0000000..b786ade --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0023-CUU_scroll.in b/src/test/escape_sequence_files/t0023-CUU_scroll.in new file mode 100644 index 0000000..e0c9243 --- /dev/null +++ b/src/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. I have gone up all the way... + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0023-CUU_scroll.text b/src/test/escape_sequence_files/t0023-CUU_scroll.text new file mode 100644 index 0000000..96b8726 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0024-CUD.in b/src/test/escape_sequence_files/t0024-CUD.in new file mode 100644 index 0000000..e971bbe --- /dev/null +++ b/src/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 +x012345Bottom line. ABCDE  diff --git a/src/test/escape_sequence_files/t0024-CUD.text b/src/test/escape_sequence_files/t0024-CUD.text new file mode 100644 index 0000000..622c0b0 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0025-CUP.in b/src/test/escape_sequence_files/t0025-CUP.in new file mode 100644 index 0000000..b62631e --- /dev/null +++ b/src/test/escape_sequence_files/t0025-CUP.in @@ -0,0 +1 @@ +abcdefg diff --git a/src/test/escape_sequence_files/t0025-CUP.text b/src/test/escape_sequence_files/t0025-CUP.text new file mode 100644 index 0000000..44dc619 --- /dev/null +++ b/src/test/escape_sequence_files/t0025-CUP.text @@ -0,0 +1,25 @@ + b + + +e + + + + + d + + + + + + + + + + g + + + + + f + diff --git a/src/test/escape_sequence_files/t0026-CNL.in b/src/test/escape_sequence_files/t0026-CNL.in new file mode 100644 index 0000000..8318682 --- /dev/null +++ b/src/test/escape_sequence_files/t0026-CNL.in @@ -0,0 +1,2 @@ +abcdefghi +-------------------------------------------------------------------------abcdefghijlast line diff --git a/src/test/escape_sequence_files/t0026-CNL.text b/src/test/escape_sequence_files/t0026-CNL.text new file mode 100644 index 0000000..61ac27e --- /dev/null +++ b/src/test/escape_sequence_files/t0026-CNL.text @@ -0,0 +1,25 @@ +def + + + + +ghi +-------------------------------------------------------------------------abcdefg +hij + + + + + + + + + + + + + + + +last line + diff --git a/src/test/escape_sequence_files/t0027-CPL.in b/src/test/escape_sequence_files/t0027-CPL.in new file mode 100644 index 0000000..edafc49 --- /dev/null +++ b/src/test/escape_sequence_files/t0027-CPL.in @@ -0,0 +1,6 @@ +erasedreplacement + + +line fourline two + + diff --git a/src/test/escape_sequence_files/t0027-CPL.text b/src/test/escape_sequence_files/t0027-CPL.text new file mode 100644 index 0000000..847ed7c --- /dev/null +++ b/src/test/escape_sequence_files/t0027-CPL.text @@ -0,0 +1,25 @@ +replacement +line two + +line four + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0030-HPR.in b/src/test/escape_sequence_files/t0030-HPR.in new file mode 100644 index 0000000..485720f --- /dev/null +++ b/src/test/escape_sequence_files/t0030-HPR.in @@ -0,0 +1,14 @@ +abcdefghijkl +abcdefghijkl +abcdefghijkl +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ +x +x +abcd diff --git a/src/test/escape_sequence_files/t0030-HPR.text b/src/test/escape_sequence_files/t0030-HPR.text new file mode 100644 index 0000000..b868261 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0031-HPB.in_ b/src/test/escape_sequence_files/t0031-HPB.in_ new file mode 100644 index 0000000..13de738 --- /dev/null +++ b/src/test/escape_sequence_files/t0031-HPB.in_ @@ -0,0 +1,8 @@ +abcdefg!@ +abcdefg!@ +abcdefg!@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr@ +x diff --git a/src/test/escape_sequence_files/t0031-HPB.text b/src/test/escape_sequence_files/t0031-HPB.text new file mode 100644 index 0000000..9ec4087 --- /dev/null +++ b/src/test/escape_sequence_files/t0031-HPB.text @@ -0,0 +1,25 @@ +abcdefg!@ +abcdefg!@ +abcdefg!@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +@ +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq +r@ +x + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0032-VPB.in b/src/test/escape_sequence_files/t0032-VPB.in new file mode 100644 index 0000000..30dd002 --- /dev/null +++ b/src/test/escape_sequence_files/t0032-VPB.in @@ -0,0 +1,25 @@ +a +b +c +defg +h +i +j....................................................................klmn + + + + + + + + + + + +0123 + + + + + + diff --git a/src/test/escape_sequence_files/t0032-VPB.text b/src/test/escape_sequence_files/t0032-VPB.text new file mode 100644 index 0000000..15f0d67 --- /dev/null +++ b/src/test/escape_sequence_files/t0032-VPB.text @@ -0,0 +1,25 @@ +b +c +defg +h +i +j....................................................................klmn + + + + + + + + + + + +0123 + + + + + + + diff --git a/src/test/escape_sequence_files/t0033-VPB_scroll.in b/src/test/escape_sequence_files/t0033-VPB_scroll.in new file mode 100644 index 0000000..f58db4b --- /dev/null +++ b/src/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. I have gone up all the way... + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0033-VPB_scroll.text b/src/test/escape_sequence_files/t0033-VPB_scroll.text new file mode 100644 index 0000000..0b20185 --- /dev/null +++ b/src/test/escape_sequence_files/t0033-VPB_scroll.text @@ -0,0 +1,25 @@ +I have gone up all the way... + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0034-VPR.in b/src/test/escape_sequence_files/t0034-VPR.in new file mode 100644 index 0000000..b9dc145 --- /dev/null +++ b/src/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 +x012345Bottom line. ABCDE  diff --git a/src/test/escape_sequence_files/t0034-VPR.text b/src/test/escape_sequence_files/t0034-VPR.text new file mode 100644 index 0000000..622c0b0 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0035-HVP.in b/src/test/escape_sequence_files/t0035-HVP.in new file mode 100644 index 0000000..781dfdb --- /dev/null +++ b/src/test/escape_sequence_files/t0035-HVP.in @@ -0,0 +1 @@ +abcdefg diff --git a/src/test/escape_sequence_files/t0035-HVP.text b/src/test/escape_sequence_files/t0035-HVP.text new file mode 100644 index 0000000..44dc619 --- /dev/null +++ b/src/test/escape_sequence_files/t0035-HVP.text @@ -0,0 +1,25 @@ + b + + +e + + + + + d + + + + + + + + + + g + + + + + f + diff --git a/src/test/escape_sequence_files/t0040-REP.in b/src/test/escape_sequence_files/t0040-REP.in new file mode 100644 index 0000000..f1abf45 --- /dev/null +++ b/src/test/escape_sequence_files/t0040-REP.in @@ -0,0 +1,7 @@ +x +< +abcdefg +abcdefg! + @ + . + ?- diff --git a/src/test/escape_sequence_files/t0040-REP.text b/src/test/escape_sequence_files/t0040-REP.text new file mode 100644 index 0000000..cae1ef9 --- /dev/null +++ b/src/test/escape_sequence_files/t0040-REP.text @@ -0,0 +1,25 @@ +xxxxxx +< +abcdefg +abcd!fg + @@@@@@@@@ +@@@@@@@@@@@@ + . +.... + ? +?- + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0050-ICH.in b/src/test/escape_sequence_files/t0050-ICH.in new file mode 100644 index 0000000..a629f20 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0050-ICH.text b/src/test/escape_sequence_files/t0050-ICH.text new file mode 100644 index 0000000..d787b8d --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0051-IL.in b/src/test/escape_sequence_files/t0051-IL.in new file mode 100644 index 0000000..e66a242 --- /dev/null +++ b/src/test/escape_sequence_files/t0051-IL.in @@ -0,0 +1,23 @@ +ab +cd +ef +gh +ij +kl +mn +opQRST +1 +2 +3 +4 +5------------------------------------------------------------------------------ab +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 diff --git a/src/test/escape_sequence_files/t0051-IL.text b/src/test/escape_sequence_files/t0051-IL.text new file mode 100644 index 0000000..2d0f595 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0052-DL.in b/src/test/escape_sequence_files/t0052-DL.in new file mode 100644 index 0000000..b5a5fe0 --- /dev/null +++ b/src/test/escape_sequence_files/t0052-DL.in @@ -0,0 +1,15 @@ +a +b +c +d +e +f +g +hijklmnop + + +1 +2 +3 +4 x + diff --git a/src/test/escape_sequence_files/t0052-DL.text b/src/test/escape_sequence_files/t0052-DL.text new file mode 100644 index 0000000..10d24aa --- /dev/null +++ b/src/test/escape_sequence_files/t0052-DL.text @@ -0,0 +1,25 @@ +a +b +c +ijklmnop +g +h +1 +x +4 + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0053-DCH.in b/src/test/escape_sequence_files/t0053-DCH.in new file mode 100644 index 0000000..d1f8807 --- /dev/null +++ b/src/test/escape_sequence_files/t0053-DCH.in @@ -0,0 +1,12 @@ +abcdefghijklmnopqrstuvwxyz> +abcdefghijklmnopqrstuvwxyz>! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>! +------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +---------------------------------------------------------------------------------? +.............................................................................. +............................................................................... +............................................................................... +................................................................................. diff --git a/src/test/escape_sequence_files/t0053-DCH.text b/src/test/escape_sequence_files/t0053-DCH.text new file mode 100644 index 0000000..75c6b3b --- /dev/null +++ b/src/test/escape_sequence_files/t0053-DCH.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqr>vwxyz +abcdefghijklmnopqr>!wxyz +>!mnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh +abcdefghijklmnopqrstuvwxyz0123456789ABC>!PQRSTUVWXYZ0123456789abcdefgh +------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------- +-? +.............................................................................. +............................................................................... +............................................................................... +................................................................................ +. + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0054-ECH.in b/src/test/escape_sequence_files/t0054-ECH.in new file mode 100644 index 0000000..03a00d8 --- /dev/null +++ b/src/test/escape_sequence_files/t0054-ECH.in @@ -0,0 +1,12 @@ +abcdefghijklmnopqrstuvwxyz> +abcdefghijklmnopqrstuvwxyz>! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>! +------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +---------------------------------------------------------------------------------? +.............................................................................. +............................................................................... +............................................................................... +................................................................................. diff --git a/src/test/escape_sequence_files/t0054-ECH.text b/src/test/escape_sequence_files/t0054-ECH.text new file mode 100644 index 0000000..a22cfbe --- /dev/null +++ b/src/test/escape_sequence_files/t0054-ECH.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqr> vwxyz +abcdefghijklmnopqr>! vwxyz +>! lmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh +abcdefghijklmnopqrstuvwxyz0123456789ABC>! OPQRSTUVWXYZ0123456789abcdefgh +------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------? +-------------------------------------------------------------------------------- +-? +.............................................................................. +............................................................................... +............................................................................... +................................................................................ +. + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0055-EL.in b/src/test/escape_sequence_files/t0055-EL.in new file mode 100644 index 0000000..014658c --- /dev/null +++ b/src/test/escape_sequence_files/t0055-EL.in @@ -0,0 +1,8 @@ +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>< +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>< +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>< +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>< +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh><! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh><! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh><! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh! diff --git a/src/test/escape_sequence_files/t0055-EL.text b/src/test/escape_sequence_files/t0055-EL.text new file mode 100644 index 0000000..a248f3b --- /dev/null +++ b/src/test/escape_sequence_files/t0055-EL.text @@ -0,0 +1,25 @@ +abcdefghijklmnopqrstuvwxyz0123456789ABC> +abcdefghijklmnopqrstuvwxyz0123456789ABC> + FGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh + +abcdefghijklmnopqrstuvwxyz0123456789ABC>! + !FGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh + ! +abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefg! + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0056-ED.in b/src/test/escape_sequence_files/t0056-ED.in new file mode 100644 index 0000000..fca4e54 --- /dev/null +++ b/src/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 +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! + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaav^ + + + +the end diff --git a/src/test/escape_sequence_files/t0056-ED.text b/src/test/escape_sequence_files/t0056-ED.text new file mode 100644 index 0000000..61a8ac7 --- /dev/null +++ b/src/test/escape_sequence_files/t0056-ED.text @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + ! + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaav +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^ + + + +the end + diff --git a/src/test/escape_sequence_files/t0057-ED3.in b/src/test/escape_sequence_files/t0057-ED3.in new file mode 100644 index 0000000..46606df --- /dev/null +++ b/src/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 +this +is +the +end diff --git a/src/test/escape_sequence_files/t0057-ED3.note b/src/test/escape_sequence_files/t0057-ED3.note new file mode 100644 index 0000000..ca6d940 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0057-ED3.text b/src/test/escape_sequence_files/t0057-ED3.text new file mode 100644 index 0000000..8230921 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0060-DECSC.in b/src/test/escape_sequence_files/t0060-DECSC.in new file mode 100644 index 0000000..d269150 --- /dev/null +++ b/src/test/escape_sequence_files/t0060-DECSC.in @@ -0,0 +1,9 @@ + 7v 12 + +38^ + + + + v7 +...ooo8^ + diff --git a/src/test/escape_sequence_files/t0060-DECSC.text b/src/test/escape_sequence_files/t0060-DECSC.text new file mode 100644 index 0000000..409198b --- /dev/null +++ b/src/test/escape_sequence_files/t0060-DECSC.text @@ -0,0 +1,25 @@ + +3 + + v +... ^ + ooo + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0061-CSI_s.in b/src/test/escape_sequence_files/t0061-CSI_s.in new file mode 100644 index 0000000..451fafa --- /dev/null +++ b/src/test/escape_sequence_files/t0061-CSI_s.in @@ -0,0 +1,9 @@ + v 12 + +3^ + + + + v +...ooo^ + diff --git a/src/test/escape_sequence_files/t0061-CSI_s.text b/src/test/escape_sequence_files/t0061-CSI_s.text new file mode 100644 index 0000000..409198b --- /dev/null +++ b/src/test/escape_sequence_files/t0061-CSI_s.text @@ -0,0 +1,25 @@ + +3 + + v +... ^ + ooo + + + + + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0070-DECSTBM_LF.in b/src/test/escape_sequence_files/t0070-DECSTBM_LF.in new file mode 100644 index 0000000..571f223 --- /dev/null +++ b/src/test/escape_sequence_files/t0070-DECSTBM_LF.in @@ -0,0 +1,31 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9ABCDEFa +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +uvwxyz + +The end. diff --git a/src/test/escape_sequence_files/t0070-DECSTBM_LF.text b/src/test/escape_sequence_files/t0070-DECSTBM_LF.text new file mode 100644 index 0000000..0940b07 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0071-DECSTBM_IND.in b/src/test/escape_sequence_files/t0071-DECSTBM_IND.in new file mode 100644 index 0000000..f9f6a42 --- /dev/null +++ b/src/test/escape_sequence_files/t0071-DECSTBM_IND.in @@ -0,0 +1,3 @@ +1D2D3D4D5D6D7D8D9ABCDEFaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuvwxyz + +The end. diff --git a/src/test/escape_sequence_files/t0071-DECSTBM_IND.text b/src/test/escape_sequence_files/t0071-DECSTBM_IND.text new file mode 100644 index 0000000..f6644fb --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0072-DECSTBM_NEL.in b/src/test/escape_sequence_files/t0072-DECSTBM_NEL.in new file mode 100644 index 0000000..5df9e71 --- /dev/null +++ b/src/test/escape_sequence_files/t0072-DECSTBM_NEL.in @@ -0,0 +1,2 @@ +1E2E3E4E5E6E7E8E9aEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEu +The end. diff --git a/src/test/escape_sequence_files/t0072-DECSTBM_NEL.text b/src/test/escape_sequence_files/t0072-DECSTBM_NEL.text new file mode 100644 index 0000000..1a0e4a1 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0073-DECSTBM_RI.in b/src/test/escape_sequence_files/t0073-DECSTBM_RI.in new file mode 100644 index 0000000..fc7b7e4 --- /dev/null +++ b/src/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 + + + + +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. +The end. diff --git a/src/test/escape_sequence_files/t0073-DECSTBM_RI.text b/src/test/escape_sequence_files/t0073-DECSTBM_RI.text new file mode 100644 index 0000000..ce6dbc7 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in b/src/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in new file mode 100644 index 0000000..1acbaf3 --- /dev/null +++ b/src/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 diff --git a/src/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text b/src/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text new file mode 100644 index 0000000..948e5d4 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in b/src/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in new file mode 100644 index 0000000..b679113 --- /dev/null +++ b/src/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 +x12 diff --git a/src/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text b/src/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text new file mode 100644 index 0000000..486b91d --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in b/src/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in new file mode 100644 index 0000000..58d20d2 --- /dev/null +++ b/src/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 + +25 B +26 ^^^^ +27 vvvv DL on line 28, expected: B_ +28 A +29 B +30 ^^^^ +31 +32 diff --git a/src/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text b/src/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text new file mode 100644 index 0000000..92c1033 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0077-DECSTBM_quirks.in b/src/test/escape_sequence_files/t0077-DECSTBM_quirks.in new file mode 100644 index 0000000..b444362 --- /dev/null +++ b/src/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 +24A +B +C +D +E +F +G + +Done. diff --git a/src/test/escape_sequence_files/t0077-DECSTBM_quirks.text b/src/test/escape_sequence_files/t0077-DECSTBM_quirks.text new file mode 100644 index 0000000..ea142e3 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0080-HT.in b/src/test/escape_sequence_files/t0080-HT.in new file mode 100644 index 0000000..581e0ba --- /dev/null +++ b/src/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 + 3 + +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/src/test/escape_sequence_files/t0080-HT.text b/src/test/escape_sequence_files/t0080-HT.text new file mode 100644 index 0000000..0683c21 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0081-TBC.in b/src/test/escape_sequence_files/t0081-TBC.in new file mode 100644 index 0000000..744b7a5 --- /dev/null +++ b/src/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: 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: +> 0done + +TBC at end with clipping: ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdeMD! diff --git a/src/test/escape_sequence_files/t0081-TBC.text b/src/test/escape_sequence_files/t0081-TBC.text new file mode 100644 index 0000000..575e3fd --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0082-HTS.in b/src/test/escape_sequence_files/t0082-HTS.in new file mode 100644 index 0000000..2bd62d4 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0082-HTS.text b/src/test/escape_sequence_files/t0082-HTS.text new file mode 100644 index 0000000..ecf66a5 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0083-CHT.in b/src/test/escape_sequence_files/t0083-CHT.in new file mode 100644 index 0000000..838325d --- /dev/null +++ b/src/test/escape_sequence_files/t0083-CHT.in @@ -0,0 +1,18 @@ +abcdefghijkl +x +12 + 3 + +CHT before EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ +tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg@ + +CHT at EOL: +no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi@ +tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi@ +with clipping: 4567890abcdefghiMD@ + +aeg +e h +x diff --git a/src/test/escape_sequence_files/t0083-CHT.text b/src/test/escape_sequence_files/t0083-CHT.text new file mode 100644 index 0000000..071ed63 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0084-CBT.in b/src/test/escape_sequence_files/t0084-CBT.in new file mode 100644 index 0000000..a7dd5b1 --- /dev/null +++ b/src/test/escape_sequence_files/t0084-CBT.in @@ -0,0 +1,16 @@ +a b c d e f g h i j k + <Iihfa +a + +default tab stops: +near end: abcdefg! +at end: abcdefgh! +at end (2): abcdefgh! +at end with clipping: abcdefghMD! +at end with clipping (2): abcdefghMD! + +set tab stop at column 80: Hv +at end: abcdefgh! +at end (2): abcdefgh! +at end with clipping: abcdefghMD! +at end with clipping (2): abcdefghMD! diff --git a/src/test/escape_sequence_files/t0084-CBT.text b/src/test/escape_sequence_files/t0084-CBT.text new file mode 100644 index 0000000..2fb8765 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0084-CBT.text-xterm b/src/test/escape_sequence_files/t0084-CBT.text-xterm new file mode 100644 index 0000000..7a2adc7 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0090-alt_screen.in b/src/test/escape_sequence_files/t0090-alt_screen.in new file mode 100644 index 0000000..bf1eeaf --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0090-alt_screen.text b/src/test/escape_sequence_files/t0090-alt_screen.text new file mode 100644 index 0000000..7ac0135 --- /dev/null +++ b/src/test/escape_sequence_files/t0090-alt_screen.text @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + z +AZ + <-- ---> + + ---> +<--- + +fin + diff --git a/src/test/escape_sequence_files/t0091-alt_screen_ED3.in b/src/test/escape_sequence_files/t0091-alt_screen_ED3.in new file mode 100644 index 0000000..40957e8 --- /dev/null +++ b/src/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 + +[?47l +11 diff --git a/src/test/escape_sequence_files/t0091-alt_screen_ED3.text b/src/test/escape_sequence_files/t0091-alt_screen_ED3.text new file mode 100644 index 0000000..4a326a4 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0092-alt_screen_DECSC.in b/src/test/escape_sequence_files/t0092-alt_screen_DECSC.in new file mode 100644 index 0000000..3022a93 --- /dev/null +++ b/src/test/escape_sequence_files/t0092-alt_screen_DECSC.in @@ -0,0 +1,15 @@ +a + b7 + c[?47h + + >7 + + xxxxxxx8[?47l!8< + + + + + + + +The end. diff --git a/src/test/escape_sequence_files/t0092-alt_screen_DECSC.text b/src/test/escape_sequence_files/t0092-alt_screen_DECSC.text new file mode 100644 index 0000000..bab1503 --- /dev/null +++ b/src/test/escape_sequence_files/t0092-alt_screen_DECSC.text @@ -0,0 +1,25 @@ +a + b< + c + + ! + + + + +The end. + + + + + + + + + + + + + + + diff --git a/src/test/escape_sequence_files/t0100-IRM.in b/src/test/escape_sequence_files/t0100-IRM.in new file mode 100644 index 0000000..5046f18 --- /dev/null +++ b/src/test/escape_sequence_files/t0100-IRM.in @@ -0,0 +1,13 @@ +-------- insert single '!' --------------------------------------------abcdefghi +jklmnop! + + +-------- insert 0-9, with wraparound ----------------------------------abcdefghi +jklmnop0123456789 + +-------- repeat 3 '!' -------------------------------------------------abcdefghi +jklmnop! + + +-------- repeat 10 '!', with wraparound -------------------------------abcdefghi +jklmnop! diff --git a/src/test/escape_sequence_files/t0100-IRM.text b/src/test/escape_sequence_files/t0100-IRM.text new file mode 100644 index 0000000..f4f3eea --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0101-NLM.in b/src/test/escape_sequence_files/t0101-NLM.in new file mode 100644 index 0000000..554a0f3 --- /dev/null +++ b/src/test/escape_sequence_files/t0101-NLM.in @@ -0,0 +1,10 @@ +a +b +c +d +e +f g h +i j k +l +m +n o p diff --git a/src/test/escape_sequence_files/t0101-NLM.text b/src/test/escape_sequence_files/t0101-NLM.text new file mode 100644 index 0000000..47f883f --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0102-DECAWM.in b/src/test/escape_sequence_files/t0102-DECAWM.in new file mode 100644 index 0000000..c615659 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0102-DECAWM.text b/src/test/escape_sequence_files/t0102-DECAWM.text new file mode 100644 index 0000000..c1f22de --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0103-reverse_wrap.in b/src/test/escape_sequence_files/t0103-reverse_wrap.in new file mode 100644 index 0000000..092462e --- /dev/null +++ b/src/test/escape_sequence_files/t0103-reverse_wrap.in @@ -0,0 +1,6 @@ +[?45ha +bA + +c-B + +dC!the endreally![?45l diff --git a/src/test/escape_sequence_files/t0103-reverse_wrap.text b/src/test/escape_sequence_files/t0103-reverse_wrap.text new file mode 100644 index 0000000..da830d5 --- /dev/null +++ b/src/test/escape_sequence_files/t0103-reverse_wrap.text @@ -0,0 +1,25 @@ +c C +! + + + + + + + + + + + + + + + + + + + + + the end +really! + diff --git a/src/test/escape_sequence_files/t0200-SGR.html b/src/test/escape_sequence_files/t0200-SGR.html new file mode 100644 index 0000000..fa270a0 --- /dev/null +++ b/src/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 hidden.
+
+ 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/src/test/escape_sequence_files/t0200-SGR.in_ b/src/test/escape_sequence_files/t0200-SGR.in_ new file mode 100644 index 0000000..3b37c93 --- /dev/null +++ b/src/test/escape_sequence_files/t0200-SGR.in_ @@ -0,0 +1,33 @@ +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 hidden. + + 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/src/test/escape_sequence_files/t0220-SGR_inverse.html b/src/test/escape_sequence_files/t0220-SGR_inverse.html new file mode 100644 index 0000000..7218bf4 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0220-SGR_inverse.in_ b/src/test/escape_sequence_files/t0220-SGR_inverse.in_ new file mode 100644 index 0000000..e7e63f9 --- /dev/null +++ b/src/test/escape_sequence_files/t0220-SGR_inverse.in_ @@ -0,0 +1,4 @@ +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/src/test/escape_sequence_files/t0500-bash_long_line.in b/src/test/escape_sequence_files/t0500-bash_long_line.in new file mode 100644 index 0000000..b1e5491 --- /dev/null +++ b/src/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 UVWXYZ1234567890abcdefghijklmnopqrstuvcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuv + +]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/src/test/escape_sequence_files/t0500-bash_long_line.text b/src/test/escape_sequence_files/t0500-bash_long_line.text new file mode 100644 index 0000000..5c785d0 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0501-bash_ls.in b/src/test/escape_sequence_files/t0501-bash_ls.in new file mode 100644 index 0000000..9053d8b --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0501-bash_ls.text b/src/test/escape_sequence_files/t0501-bash_ls.text new file mode 100644 index 0000000..8114fc9 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0502-bash_ls_color.in b/src/test/escape_sequence_files/t0502-bash_ls_color.in new file mode 100644 index 0000000..1f4eda8 --- /dev/null +++ b/src/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 / +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:21:11 PM EDT diff --git a/src/test/escape_sequence_files/t0502-bash_ls_color.text b/src/test/escape_sequence_files/t0502-bash_ls_color.text new file mode 100644 index 0000000..1892eea --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0503-zsh_ls_color.in b/src/test/escape_sequence_files/t0503-zsh_ls_color.in new file mode 100644 index 0000000..aca2d10 --- /dev/null +++ b/src/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% $ ~/vt100-to-html/scriptslls / +]2;mark-desktop - 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 +]2;mark-desktop - ~/vt100-to-html/scripts% $ ~/vt100-to-html/scripts + +Script done on Sun 17 May 2009 06:21:27 PM EDT diff --git a/src/test/escape_sequence_files/t0503-zsh_ls_color.text b/src/test/escape_sequence_files/t0503-zsh_ls_color.text new file mode 100644 index 0000000..19feb18 --- /dev/null +++ b/src/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/src/test/escape_sequence_files/t0504-vim.in b/src/test/escape_sequence_files/t0504-vim.in new file mode 100644 index 0000000..cb68232 --- /dev/null +++ b/src/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% $ ~/vt100-to-html/testlls +]0;mark-desktop - lsexpected_text t0016-SU.text t0050-ICH.text +input t0017-SD.in t0051-IL.in +run_all.py 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 +]0;mark-desktop - ~/vt100-to-html/test% $ ~/vt100-to-html/testvvim +]0;mark-desktop - vim[?1000h[?1049h[?1h=[?12;25h[?12l[?25h[>c[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] 0,0-1 AllVIM - Vi IMprovedversion 7.2.267by Bram Moolenaar et al.Vim is open source and freely distributableBecome a registered Vim user!type :help register for information type :q to exit type :help or  for on-line helptype :help version7 for version info]2;[No Name] - VIM]1;[No Name][?12l[?25h[?1000l[?1002hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\[?25l-- INSERT --1 [?12l[?25h[?25lT         [+]1,2 ]2;[No Name] + - VIM]1;[No Name][?12l[?25h[?25lTh3 [?12l[?25h[?25lhi4 [?12l[?25h[?25lis5 [?12l[?25h[?25l6 [?12l[?25h[?25l i7 [?12l[?25h[?25lis8 [?12l[?25h[?25l9 [?12l[?25h[?25l a10[?12l[?25h[?25l1 [?12l[?25h[?25l t2 [?12l[?25h[?25lte3 [?12l[?25h[?25les4 [?12l[?25h[?25lst5 [?12l[?25h[?25lt.6 [?12l[?25h[?25l2,1 [?12l[?25h[?25l3,[?12l[?25h[?25lH2 [?12l[?25h[?25lHo3 [?12l[?25h[?25loe4 [?12l[?25h[?25l5 [?12l[?25h[?25l f6 [?12l[?25h[?25lfu7 [?12l[?25h[?25l6 [?12l[?25h[?25l5 [?12l[?25h[?25l4 [?12l[?25h[?25l3 [?12l[?25h[?25lop4 [?12l[?25h[?25lpe5 [?12l[?25h[?25lef6 [?12l[?25h[?25lfu7 [?12l[?25h[?25lul8 [?12l[?25h[?25lll9 [?12l[?25h[?25lly10[?12l[?25h[?25l1 [?12l[?25h[?25l i2 [?12l[?25h[?25lit3 [?12l[?25h[?25l4 [?12l[?25h[?25l w5 [?12l[?25h[?25lwi6 [?12l[?25h[?25lil7 [?12l[?25h[?25lll8 [?12l[?25h[?25l9 [?12l[?25h[?25l w20 [?12l[?25h[?25lwo1 [?12l[?25h[?25lor2 [?12l[?25h[?25lrk3 [?12l[?25h[?25lk.4 [?12l[?25h[?25l4,1 [?12l[?25h[?25l5,[?12l[?25h[?25l6,[?12l[?25h[?25l7,[?12l[?25h[?25l8,[?12l[?25h[?25l9,[?12l[?25h[?25l10,1[?12l[?25h[?25l1,[?12l[?25h[?25l2,[?12l[?25h[?25l3,[?12l[?25h[?25l4,[?12l[?25h[?25l5,[?12l[?25h[?25l6,[?12l[?25h[?25l7,[?12l[?25h[?25l8,[?12l[?25h[?25l9,[?12l[?25h[?25l20,[?12l[?25h[?25l1,[?12l[?25h[?25l2,[?12l[?25h[?25l +3,Bot[?12l[?25h[?25l +4,[?12l[?25h[?25l +5,[?12l[?25h[?25l +6,[?12l[?25h[?25l +7,[?12l[?25h[?25l +8,[?12l[?25h[?25l +9,[?12l[?25h[?25l +30,[?12l[?25h[?25l +1,[?12l[?25h[?25l +2,[?12l[?25h[?25l +3,[?12l[?25h[?25lI2 [?12l[?25h[?25l3 [?12l[?25h[?25l b4 [?12l[?25h[?25lbe5 [?12l[?25h[?25let6 [?12l[?25h[?25l7 [?12l[?25h[?25l i8 [?12l[?25h[?25lit9 [?12l[?25h[?25l10[?12l[?25h[?25l w1 [?12l[?25h[?25lwi2 [?12l[?25h[?25lil3 [?12l[?25h[?25lll4 [?12l[?25h[?25ll.5 [?12l[?25h[?25l4 [?12l[?25h[?25lThis is a test. + +Hopefully it will work.1,1 Top[?12l[?25h[?25lI bet it will. +~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] [+] 21,0-1 Bot[?12l[?25h[?25l0,[?12l[?25h[?25l19,[?12l[?25h[?25l8,[?12l[?25h[?25l7,[?12l[?25h[?25l6,[?12l[?25h[?25l5,[?12l[?25h[?25l:[?12l[?25hw[?25l[?12l[?25hq[?25l[?12l[?25h [?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hw[?25l[?12l[?25h[?25l [?12l[?25hf[?25l[?12l[?25ho[?25l[?12l[?25ho[?25l[?12l[?25h [?25l"foo" [New] 33L, 85C writtenfoo ]2;foo (~/vt100-to-html/test) - VIM]1;foo[?12l[?25h[?25l:[?12l[?25hq[?25l[?12l[?25h [?25l[?1002l]2;mark-desktop - vim]1;mark-desktop - vim[?1l>[?12l[?25h[?1049l]0;mark-desktop - ~/vt100-to-html/test% $ ~/vt100-to-html/testeecho Yes! +]0;mark-desktop - echo Yes!Yes! +]0;mark-desktop - ~/vt100-to-html/test% $ ~/vt100-to-html/test + +Script done on Sun 15 Aug 2010 11:54:14 PM EDT diff --git a/src/test/escape_sequence_files/t0504-vim.text b/src/test/escape_sequence_files/t0504-vim.text new file mode 100644 index 0000000..7c20251 --- /dev/null +++ b/src/test/escape_sequence_files/t0504-vim.text @@ -0,0 +1,25 @@ +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 +$ vim ~/vt100-to-html/test +Script done on Sun 15 Aug 2010 11:54:14 PM EDT ~/vt100-to-html/test diff --git a/src/test/test.js b/src/test/test.js new file mode 100644 index 0000000..25da9a3 --- /dev/null +++ b/src/test/test.js @@ -0,0 +1,782 @@ +var assert = require('chai').assert; +var expect = require('chai').expect; +var Terminal = require('../xterm'); + +describe('xterm.js', function() { + var xterm; + + beforeEach(function () { + xterm = new Terminal(); + xterm.refresh = function(){}; + xterm.viewport = { + syncScrollArea: function(){} + }; + }); + + describe('getOption', function() { + it('should retrieve the option correctly', function() { + // In the `options` namespace. + xterm.options.cursorBlink = true; + assert.equal(xterm.getOption('cursorBlink'), true); + + // On the Terminal instance + delete xterm.options.cursorBlink; + xterm.cursorBlink = false; + assert.equal(xterm.getOption('cursorBlink'), false); + }); + it('should throw when retrieving a non-existant option', function() { + assert.throws(xterm.getOption.bind(xterm, 'fake', true)); + }); + }); + + describe('setOption', function() { + it('should set the option correctly', function() { + xterm.setOption('cursorBlink', true); + assert.equal(xterm.cursorBlink, true); + assert.equal(xterm.options.cursorBlink, true); + xterm.setOption('cursorBlink', false); + assert.equal(xterm.cursorBlink, false); + assert.equal(xterm.options.cursorBlink, false); + }); + it('should throw when setting a non-existant option', function() { + assert.throws(xterm.setOption.bind(xterm, 'fake', true)); + }); + }); + + describe('clear', function() { + it('should clear a buffer equal to rows', function() { + var promptLine = xterm.lines[xterm.ybase + xterm.y]; + xterm.clear(); + assert.equal(xterm.y, 0); + assert.equal(xterm.ybase, 0); + assert.equal(xterm.ydisp, 0); + assert.equal(xterm.lines.length, xterm.rows); + assert.deepEqual(xterm.lines[0], promptLine); + for (var i = 1; i < xterm.rows; i++) { + assert.deepEqual(xterm.lines[0], xterm.blankLine()); + } + }); + it('should clear a buffer larger than rows', function() { + // Fill the buffer with dummy rows + for (var i = 0; i < xterm.rows * 2; i++) { + xterm.write('test\n'); + } + + var promptLine = xterm.lines[xterm.ybase + xterm.y]; + xterm.clear(); + assert.equal(xterm.y, 0); + assert.equal(xterm.ybase, 0); + assert.equal(xterm.ydisp, 0); + assert.equal(xterm.lines.length, xterm.rows); + assert.deepEqual(xterm.lines[0], promptLine); + for (var i = 1; i < xterm.rows; i++) { + assert.deepEqual(xterm.lines[i], xterm.blankLine()); + } + }); + it('should not break the prompt when cleared twice', function() { + var promptLine = xterm.lines[xterm.ybase + xterm.y]; + xterm.clear(); + xterm.clear(); + assert.equal(xterm.y, 0); + assert.equal(xterm.ybase, 0); + assert.equal(xterm.ydisp, 0); + assert.equal(xterm.lines.length, xterm.rows); + assert.deepEqual(xterm.lines[0], promptLine); + for (var i = 1; i < xterm.rows; i++) { + assert.deepEqual(xterm.lines[i], xterm.blankLine()); + } + }); + }); + + describe('scroll', function() { + describe('scrollDisp', function() { + var startYDisp; + beforeEach(function() { + for (var i = 0; i < xterm.rows * 2; i++) { + xterm.writeln('test'); + } + startYDisp = xterm.rows + 1; + }); + it('should scroll a single line', function() { + assert.equal(xterm.ydisp, startYDisp); + xterm.scrollDisp(-1); + assert.equal(xterm.ydisp, startYDisp - 1); + xterm.scrollDisp(1); + assert.equal(xterm.ydisp, startYDisp); + }); + it('should scroll multiple lines', function() { + assert.equal(xterm.ydisp, startYDisp); + xterm.scrollDisp(-5); + assert.equal(xterm.ydisp, startYDisp - 5); + xterm.scrollDisp(5); + assert.equal(xterm.ydisp, startYDisp); + }); + it('should not scroll beyond the bounds of the buffer', function() { + assert.equal(xterm.ydisp, startYDisp); + xterm.scrollDisp(1); + assert.equal(xterm.ydisp, startYDisp); + for (var i = 0; i < startYDisp; i++) { + xterm.scrollDisp(-1); + } + assert.equal(xterm.ydisp, 0); + xterm.scrollDisp(-1); + assert.equal(xterm.ydisp, 0); + }); + }); + + describe('scrollPages', function() { + var startYDisp; + beforeEach(function() { + for (var i = 0; i < xterm.rows * 3; i++) { + xterm.writeln('test'); + } + startYDisp = (xterm.rows * 2) + 1; + }); + it('should scroll a single page', function() { + assert.equal(xterm.ydisp, startYDisp); + xterm.scrollPages(-1); + assert.equal(xterm.ydisp, startYDisp - (xterm.rows - 1)); + xterm.scrollPages(1); + assert.equal(xterm.ydisp, startYDisp); + }); + it('should scroll a multiple pages', function() { + assert.equal(xterm.ydisp, startYDisp); + xterm.scrollPages(-2); + assert.equal(xterm.ydisp, startYDisp - (xterm.rows - 1) * 2); + xterm.scrollPages(2); + assert.equal(xterm.ydisp, startYDisp); + }); + }); + + describe('scrollToTop', function() { + beforeEach(function() { + for (var i = 0; i < xterm.rows * 3; i++) { + xterm.writeln('test'); + } + }); + it('should scroll to the top', function() { + assert.notEqual(xterm.ydisp, 0); + xterm.scrollToTop(); + assert.equal(xterm.ydisp, 0); + }); + }); + + describe('scrollToBottom', function() { + var startYDisp; + beforeEach(function() { + for (var i = 0; i < xterm.rows * 3; i++) { + xterm.writeln('test'); + } + startYDisp = (xterm.rows * 2) + 1; + }); + it('should scroll to the bottom', function() { + xterm.scrollDisp(-1); + xterm.scrollToBottom(); + assert.equal(xterm.ydisp, startYDisp); + xterm.scrollPages(-1); + xterm.scrollToBottom(); + assert.equal(xterm.ydisp, startYDisp); + xterm.scrollToTop(); + xterm.scrollToBottom(); + assert.equal(xterm.ydisp, startYDisp); + }); + }); + }); + + describe('evaluateKeyEscapeSequence', function() { + it('should return the correct escape sequence for unmodified keys', function() { + // Backspace + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 8 }).key, '\x7f'); // ^? + // Tab + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 9 }).key, '\t'); + // Return/enter + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 13 }).key, '\r'); // CR + // Escape + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 27 }).key, '\x1b'); + // Page up, page down + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 33 }).key, '\x1b[5~'); // CSI 5 ~ + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 34 }).key, '\x1b[6~'); // CSI 6 ~ + // End, Home + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 35 }).key, '\x1b[F'); // SS3 F + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 36 }).key, '\x1b[H'); // SS3 H + // Left, up, right, down arrows + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 37 }).key, '\x1b[D'); // CSI D + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 38 }).key, '\x1b[A'); // CSI A + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 39 }).key, '\x1b[C'); // CSI C + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 40 }).key, '\x1b[B'); // CSI B + // Insert + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 45 }).key, '\x1b[2~'); // CSI 2 ~ + // Delete + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 46 }).key, '\x1b[3~'); // CSI 3 ~ + // F1-F12 + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 112 }).key, '\x1bOP'); // SS3 P + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 113 }).key, '\x1bOQ'); // SS3 Q + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 114 }).key, '\x1bOR'); // SS3 R + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 115 }).key, '\x1bOS'); // SS3 S + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 116 }).key, '\x1b[15~'); // CSI 1 5 ~ + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 117 }).key, '\x1b[17~'); // CSI 1 7 ~ + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 118 }).key, '\x1b[18~'); // CSI 1 8 ~ + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 119 }).key, '\x1b[19~'); // CSI 1 9 ~ + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 120 }).key, '\x1b[20~'); // CSI 2 0 ~ + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 121 }).key, '\x1b[21~'); // CSI 2 1 ~ + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 122 }).key, '\x1b[23~'); // CSI 2 3 ~ + assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 123 }).key, '\x1b[24~'); // CSI 2 4 ~ + }); + it('should return \\x1b[3;5~ for ctrl+delete', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 46 }).key, '\x1b[3;5~'); + }); + it('should return \\x1b[3;2~ for shift+delete', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 46 }).key, '\x1b[3;2~'); + }); + it('should return \\x1b[3;3~ for alt+delete', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 46 }).key, '\x1b[3;3~'); + }); + it('should return \\x1b[5D for ctrl+left', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 37 }).key, '\x1b[1;5D'); // CSI 5 D + }); + it('should return \\x1b[5C for ctrl+right', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 39 }).key, '\x1b[1;5C'); // CSI 5 C + }); + it('should return \\x1b[5A for ctrl+up', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 38 }).key, '\x1b[1;5A'); // CSI 5 A + }); + it('should return \\x1b[5B for ctrl+down', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 40 }).key, '\x1b[1;5B'); // CSI 5 B + }); + // Evalueate alt + arrow key movement, which is a feature of terminal emulators but not VT100 + // http://unix.stackexchange.com/a/108106 + it('should return \\x1b[5D for alt+left', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 37 }).key, '\x1b[1;5D'); // CSI 5 D + }); + it('should return \\x1b[5C for alt+right', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 39 }).key, '\x1b[1;5C'); // CSI 5 C + }); + it('should return \\x1b[5A for alt+up', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 38 }).key, '\x1b[1;5A'); // CSI 5 A + }); + it('should return \\x1b[5B for alt+down', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 40 }).key, '\x1b[1;5B'); // CSI 5 B + }); + it('should return the correct escape sequence for modified F1-F12 keys', function() { + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 112 }).key, '\x1b[1;2P'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 113 }).key, '\x1b[1;2Q'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 114 }).key, '\x1b[1;2R'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 115 }).key, '\x1b[1;2S'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 116 }).key, '\x1b[15;2~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 117 }).key, '\x1b[17;2~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 118 }).key, '\x1b[18;2~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 119 }).key, '\x1b[19;2~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 120 }).key, '\x1b[20;2~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 121 }).key, '\x1b[21;2~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 122 }).key, '\x1b[23;2~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 123 }).key, '\x1b[24;2~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 112 }).key, '\x1b[1;3P'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 113 }).key, '\x1b[1;3Q'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 114 }).key, '\x1b[1;3R'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 115 }).key, '\x1b[1;3S'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 116 }).key, '\x1b[15;3~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 117 }).key, '\x1b[17;3~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 118 }).key, '\x1b[18;3~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 119 }).key, '\x1b[19;3~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 120 }).key, '\x1b[20;3~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 121 }).key, '\x1b[21;3~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 122 }).key, '\x1b[23;3~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 123 }).key, '\x1b[24;3~'); + + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 112 }).key, '\x1b[1;5P'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 113 }).key, '\x1b[1;5Q'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 114 }).key, '\x1b[1;5R'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 115 }).key, '\x1b[1;5S'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 116 }).key, '\x1b[15;5~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 117 }).key, '\x1b[17;5~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 118 }).key, '\x1b[18;5~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 119 }).key, '\x1b[19;5~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 120 }).key, '\x1b[20;5~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 121 }).key, '\x1b[21;5~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 122 }).key, '\x1b[23;5~'); + assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 123 }).key, '\x1b[24;5~'); + }); + }); + + describe('attachCustomEventHandler', function () { + var evKeyDown = { + preventDefault: function() {}, + stopPropagation: function() {}, + type: 'keydown' + } + + beforeEach(function() { + xterm.handler = function() {}; + xterm.showCursor = function() {}; + xterm.clearSelection = function() {}; + xterm.compositionHelper = { + keydown: { + bind: function() { + return function () { return true; } + } + } + } + }); + + it('should process the keydown event based on what the handler returns', function () { + assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), true); + xterm.attachCustomKeydownHandler(function (ev) { + return ev.keyCode === 77; + }); + assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), true); + xterm.attachCustomKeydownHandler(function (ev) { + return ev.keyCode !== 77; + }); + assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), false); + }); + + it('should alive after reset(ESC c Full Reset (RIS))', function () { + xterm.attachCustomKeydownHandler(function (ev) { + return ev.keyCode !== 77; + }); + assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), false); + xterm.reset(); + assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), false); + }); + }); + + describe('Third level shift', function() { + var evKeyDown = { + preventDefault: function() {}, + stopPropagation: function() {}, + type: 'keydown' + }, + evKeyPress = { + preventDefault: function() {}, + stopPropagation: function() {}, + type: 'keypress' + }; + + beforeEach(function() { + xterm.handler = function() {}; + xterm.showCursor = function() {}; + xterm.clearSelection = function() {}; + xterm.compositionHelper = { + isComposing: false, + keydown: { + bind: function() { + return function() { return true; }; + } + } + }; + }); + + describe('On Mac OS', function() { + beforeEach(function() { + xterm.isMac = true; + }); + + it('should not interfere with the alt key on keyDown', function() { + assert.equal( + xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, keyCode: 81 })), + true + ); + assert.equal( + xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, keyCode: 192 })), + true + ); + }); + + it('should interefere with the alt + arrow keys', function() { + assert.equal( + xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, keyCode: 37 })), + false + ); + assert.equal( + xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, keyCode: 39 })), + false + ); + }); + + it('should emit key with alt + key on keyPress', function(done) { + var keys = ['@', '@', '\\', '\\', '|', '|']; + + xterm.on('keypress', function(key) { + if (key) { + var index = keys.indexOf(key); + assert(index !== -1, "Emitted wrong key: " + key); + keys.splice(index, 1); + } + if (keys.length === 0) done(); + }); + + xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, keyCode: 64 })); // @ + // Firefox + xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, charCode: 64, keyCode: 0 })); + xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, keyCode: 92 })); // \ + xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, charCode: 92, keyCode: 0 })); + xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, keyCode: 124 })); // | + xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, charCode: 124, keyCode: 0 })); + }); + }); + + describe('On MS Windows', function() { + beforeEach(function() { + xterm.isMSWindows = true; + }); + + it('should not interfere with the alt + ctrl key on keyDown', function() { + assert.equal( + xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, ctrlKey: true, keyCode: 81 })), + true + ); + assert.equal( + xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, ctrlKey: true, keyCode: 192 })), + true + ); + }); + + it('should interefere with the alt + ctrl + arrow keys', function() { + assert.equal( + xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, ctrlKey: true, keyCode: 37 })), + false + ); + assert.equal( + xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, ctrlKey: true, keyCode: 39 })), + false + ); + }); + + it('should emit key with alt + ctrl + key on keyPress', function(done) { + var keys = ['@', '@', '\\', '\\', '|', '|']; + + xterm.on('keypress', function(key) { + if (key) { + var index = keys.indexOf(key); + assert(index !== -1, "Emitted wrong key: " + key); + keys.splice(index, 1); + } + if (keys.length === 0) done(); + }); + + xterm.keyPress( + Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, keyCode: 64 }) + ); // @ + xterm.keyPress( + Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, charCode: 64, keyCode: 0 }) + ); + xterm.keyPress( + Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, keyCode: 92 }) + ); // \ + xterm.keyPress( + Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, charCode: 92, keyCode: 0 }) + ); + xterm.keyPress( + Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, keyCode: 124 }) + ); // | + xterm.keyPress( + Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, charCode: 124, keyCode: 0 }) + ); + }); + }); + }); + + describe('unicode - surrogates', function() { + it('2 characters per cell', function () { + var high = String.fromCharCode(0xD800); + for (var i=0xDC00; i<=0xDCFF; ++i) { + xterm.write(high + String.fromCharCode(i)); + var tchar = xterm.lines[0][0]; + expect(tchar[1]).eql(high + String.fromCharCode(i)); + expect(tchar[1].length).eql(2); + expect(tchar[2]).eql(1); + expect(xterm.lines[0][1][1]).eql(' '); + xterm.reset(); + } + }); + it('2 characters at last cell', function() { + var high = String.fromCharCode(0xD800); + for (var i=0xDC00; i<=0xDCFF; ++i) { + xterm.x = xterm.cols - 1; + xterm.write(high + String.fromCharCode(i)); + expect(xterm.lines[0][xterm.x-1][1]).eql(high + String.fromCharCode(i)); + expect(xterm.lines[0][xterm.x-1][1].length).eql(2); + expect(xterm.lines[1][0][1]).eql(' '); + xterm.reset(); + } + }); + it('2 characters per cell over line end with autowrap', function() { + var high = String.fromCharCode(0xD800); + for (var i=0xDC00; i<=0xDCFF; ++i) { + xterm.x = xterm.cols - 1; + xterm.wraparoundMode = true; + xterm.write('a' + high + String.fromCharCode(i)); + expect(xterm.lines[0][xterm.cols-1][1]).eql('a'); + expect(xterm.lines[1][0][1]).eql(high + String.fromCharCode(i)); + expect(xterm.lines[1][0][1].length).eql(2); + expect(xterm.lines[1][1][1]).eql(' '); + xterm.reset(); + } + }); + it('2 characters per cell over line end without autowrap', function() { + var high = String.fromCharCode(0xD800); + for (var i=0xDC00; i<=0xDCFF; ++i) { + xterm.x = xterm.cols - 1; + xterm.wraparoundMode = false; + xterm.write('a' + high + String.fromCharCode(i)); + expect(xterm.lines[0][xterm.cols-1][1]).eql(high + String.fromCharCode(i)); + expect(xterm.lines[0][xterm.cols-1][1].length).eql(2); + expect(xterm.lines[1][1][1]).eql(' '); + xterm.reset(); + } + }); + it('splitted surrogates', function() { + var high = String.fromCharCode(0xD800); + for (var i=0xDC00; i<=0xDCFF; ++i) { + xterm.write(high); + xterm.write(String.fromCharCode(i)); + var tchar = xterm.lines[0][0]; + expect(tchar[1]).eql(high + String.fromCharCode(i)); + expect(tchar[1].length).eql(2); + expect(tchar[2]).eql(1); + expect(xterm.lines[0][1][1]).eql(' '); + xterm.reset(); + } + }); + }); + + describe('unicode - combining characters', function() { + it('café', function () { + xterm.write('cafe\u0301'); + expect(xterm.lines[0][3][1]).eql('e\u0301'); + expect(xterm.lines[0][3][1].length).eql(2); + expect(xterm.lines[0][3][2]).eql(1); + }); + it('café - end of line', function() { + xterm.x = xterm.cols - 1 - 3; + xterm.write('cafe\u0301'); + expect(xterm.lines[0][xterm.cols-1][1]).eql('e\u0301'); + expect(xterm.lines[0][xterm.cols-1][1].length).eql(2); + expect(xterm.lines[0][xterm.cols-1][2]).eql(1); + expect(xterm.lines[0][1][1]).eql(' '); + expect(xterm.lines[0][1][1].length).eql(1); + expect(xterm.lines[0][1][2]).eql(1); + }); + it('multiple combined é', function() { + xterm.wraparoundMode = true; + xterm.write(Array(100).join('e\u0301')); + for (var i=0; i? -@ABCDEFGHIJKLMNO -PQRSTUVWXYZ[\]^_ -`abcdefghijklmno -pqrstuvwxyz{|}~ diff --git a/test/escape_sequence_files/t0001-all_printable.text b/test/escape_sequence_files/t0001-all_printable.text deleted file mode 100644 index 421f5a7..0000000 --- a/test/escape_sequence_files/t0001-all_printable.text +++ /dev/null @@ -1,25 +0,0 @@ - !"#$%&'()*+,-./ -0123456789:;<=>? -@ABCDEFGHIJKLMNO -PQRSTUVWXYZ[\]^_ -`abcdefghijklmno -pqrstuvwxyz{|}~ - - - - - - - - - - - - - - - - - - - diff --git a/test/escape_sequence_files/t0002-history.in b/test/escape_sequence_files/t0002-history.in deleted file mode 100644 index 3bc7fbc..0000000 --- a/test/escape_sequence_files/t0002-history.in +++ /dev/null @@ -1,95 +0,0 @@ - -! -" -# -$ -% -& -' -( -) -* -+ -, -- -. -/ -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 deleted file mode 100644 index 39bdf52..0000000 --- a/test/escape_sequence_files/t0002-history.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index a679175..0000000 --- a/test/escape_sequence_files/t0002j-simple_string.in +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 097318d..0000000 --- a/test/escape_sequence_files/t0002j-simple_string.text +++ /dev/null @@ -1,25 +0,0 @@ -abcdefghijklmnopqrstuvwxyz0123456789 - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/escape_sequence_files/t0003-line_wrap.in b/test/escape_sequence_files/t0003-line_wrap.in deleted file mode 100644 index d110db8..0000000 --- a/test/escape_sequence_files/t0003-line_wrap.in +++ /dev/null @@ -1,83 +0,0 @@ -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 deleted file mode 100644 index fbe1c56..0000000 --- a/test/escape_sequence_files/t0003-line_wrap.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 9f52852..0000000 --- a/test/escape_sequence_files/t0003j-LF.in +++ /dev/null @@ -1,26 +0,0 @@ -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 deleted file mode 100644 index a6210e1..0000000 --- a/test/escape_sequence_files/t0003j-LF.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 4f4aa53..0000000 --- a/test/escape_sequence_files/t0004-LF.in +++ /dev/null @@ -1,83 +0,0 @@ -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 deleted file mode 100644 index 3756aca..0000000 --- a/test/escape_sequence_files/t0004-LF.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index d40432d..0000000 --- a/test/escape_sequence_files/t0004j-CR.in +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index beb0e35..0000000 --- a/test/escape_sequence_files/t0004j-CR.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index d5f545a..0000000 --- a/test/escape_sequence_files/t0005-CR.in +++ /dev/null @@ -1,82 +0,0 @@ -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 deleted file mode 100644 index dfcc049..0000000 --- a/test/escape_sequence_files/t0005-CR.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 614552f..0000000 --- a/test/escape_sequence_files/t0006-IND.in +++ /dev/null @@ -1 +0,0 @@ -aDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D5D6D7D8D9D0DaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDt diff --git a/test/escape_sequence_files/t0006-IND.text b/test/escape_sequence_files/t0006-IND.text deleted file mode 100644 index 8c69a7f..0000000 --- a/test/escape_sequence_files/t0006-IND.text +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index 73d19c5..0000000 --- a/test/escape_sequence_files/t0007-space_at_end.in +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100644 index f46caee..0000000 --- a/test/escape_sequence_files/t0007-space_at_end.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 0980d87..0000000 --- a/test/escape_sequence_files/t0008-BS.in +++ /dev/null @@ -1,7 +0,0 @@ -abcdefghijklmnopqrstuvwxyz! -abc@ -# -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop$ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq% -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr^ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs& diff --git a/test/escape_sequence_files/t0008-BS.text b/test/escape_sequence_files/t0008-BS.text deleted file mode 100644 index 77d1710..0000000 --- a/test/escape_sequence_files/t0008-BS.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index b541ec4..0000000 --- a/test/escape_sequence_files/t0009-NEL.in +++ /dev/null @@ -1 +0,0 @@ -aEabEabcEabcdEabcdeEabcdefEabcdefgEabcdefghEabcdefghiEabcdefghijEabcdefghijkEabcdefghijklEabcdefghijklmEabcdefghijklmnEabcdefghijklmnoEabcdefghijklmnopEabcdefghijklmnopqEabcdefghijklmnopqrEabcdefghijklmnopqrsEabcdefghijklmnopqrstEabcdefghijklmnopqrstuEabcdefghijklmnopqrstuvEabcdefghijklmnopqrstuvwEabcdefghijklmnopqrstuvwxEabcdefghijklmnopqrstuvwxyEabcdefghijklmnopqrstuvwxyzEabcdefghijklmnopqrstuvwxyzAEabcdefghijklmnopqrstuvwxyzABEabcdefghijklmnopqrstuvwxyzABCEabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEEabcdefghijklmnopqrstuvwxyzABCDEFEabcdefghijklmnopqrstuvwxyzABCDEFGEabcdefghijklmnopqrstuvwxyzABCDEFGHEabcdefghijklmnopqrstuvwxyzABCDEFGHIEabcdefghijklmnopqrstuvwxyzABCDEFGHIJEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQREabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890aEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdeEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghiEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnoEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrsEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst diff --git a/test/escape_sequence_files/t0009-NEL.text b/test/escape_sequence_files/t0009-NEL.text deleted file mode 100644 index fbe1c56..0000000 --- a/test/escape_sequence_files/t0009-NEL.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index c2aeb67..0000000 --- a/test/escape_sequence_files/t0010-RI.in +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index 5320654..0000000 --- a/test/escape_sequence_files/t0010-RI.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 14da12d..0000000 --- a/test/escape_sequence_files/t0011-RI_scroll.in +++ /dev/null @@ -1,47 +0,0 @@ -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 deleted file mode 100644 index 21cb1cf..0000000 --- a/test/escape_sequence_files/t0011-RI_scroll.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index ee56208..0000000 --- a/test/escape_sequence_files/t0012-VT.in +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/test/escape_sequence_files/t0012-VT.text b/test/escape_sequence_files/t0012-VT.text deleted file mode 100644 index 8c69a7f..0000000 --- a/test/escape_sequence_files/t0012-VT.text +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index 01198c2..0000000 --- a/test/escape_sequence_files/t0013-FF.in +++ /dev/null @@ -1 +0,0 @@ -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/t0013-FF.text b/test/escape_sequence_files/t0013-FF.text deleted file mode 100644 index 16c9c2b..0000000 --- a/test/escape_sequence_files/t0013-FF.text +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index 64bae4a..0000000 --- a/test/escape_sequence_files/t0014-CAN.in +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100644 index 77a38fa..0000000 --- a/test/escape_sequence_files/t0014-CAN.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 1bd237f..0000000 --- a/test/escape_sequence_files/t0015-SUB.in +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100644 index 77a38fa..0000000 --- a/test/escape_sequence_files/t0015-SUB.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 7e52573..0000000 --- a/test/escape_sequence_files/t0016-SU.in +++ /dev/null @@ -1,17 +0,0 @@ -HelloGoodbye - -UpDown -x - ------------------------------------------------------------------------------x -------------------------------------------------------------------------------x --------------------------------------------------------------------------------x ---------------------------------------------------------------------------------x ----------------------------------------------------------------------------------x -.............................................................................x -..............................................................................x -...............................................................................x -................................................................................x -.................................................................................x - -The End. diff --git a/test/escape_sequence_files/t0016-SU.text b/test/escape_sequence_files/t0016-SU.text deleted file mode 100644 index 2323fa3..0000000 --- a/test/escape_sequence_files/t0016-SU.text +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - -The End. - - - - - diff --git a/test/escape_sequence_files/t0017-SD.in b/test/escape_sequence_files/t0017-SD.in deleted file mode 100644 index ce76440..0000000 --- a/test/escape_sequence_files/t0017-SD.in +++ /dev/null @@ -1,54 +0,0 @@ -A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X -a - b - c - d - e - f - g - h -------------------------------------------------------------------------------1 - - --------------------------------------------------------------------------------2 - - ---------------------------------------------------------------------------------3 - - ----------------------------------------------------------------------------------4 - - -..............................................................................5 - - -...............................................................................6 - - -................................................................................7 - - -.................................................................................8 diff --git a/test/escape_sequence_files/t0017-SD.text b/test/escape_sequence_files/t0017-SD.text deleted file mode 100644 index 6e39cd9..0000000 --- a/test/escape_sequence_files/t0017-SD.text +++ /dev/null @@ -1,25 +0,0 @@ - - -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 deleted file mode 100644 index 9df6cd7..0000000 --- a/test/escape_sequence_files/t0020-CUF.in +++ /dev/null @@ -1,14 +0,0 @@ -abcdefghijkl -abcdefghijkl -abcdefghijkl -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ -x -x -abcd diff --git a/test/escape_sequence_files/t0020-CUF.text b/test/escape_sequence_files/t0020-CUF.text deleted file mode 100644 index b868261..0000000 --- a/test/escape_sequence_files/t0020-CUF.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index b07f753..0000000 --- a/test/escape_sequence_files/t0021-CUB.in +++ /dev/null @@ -1,8 +0,0 @@ -abcdefg!@ -abcdefg!@ -abcdefg!@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr@ -x diff --git a/test/escape_sequence_files/t0021-CUB.text b/test/escape_sequence_files/t0021-CUB.text deleted file mode 100644 index 9a1b385..0000000 --- a/test/escape_sequence_files/t0021-CUB.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 4c47f30..0000000 --- a/test/escape_sequence_files/t0022-CUU.in +++ /dev/null @@ -1,25 +0,0 @@ -a -b -c -defg -h -i -j....................................................................klmn - - - - - - - - - - - -0123 - - - - - - diff --git a/test/escape_sequence_files/t0022-CUU.text b/test/escape_sequence_files/t0022-CUU.text deleted file mode 100644 index b786ade..0000000 --- a/test/escape_sequence_files/t0022-CUU.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index e0c9243..0000000 --- a/test/escape_sequence_files/t0023-CUU_scroll.in +++ /dev/null @@ -1,50 +0,0 @@ -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. I 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 deleted file mode 100644 index 96b8726..0000000 --- a/test/escape_sequence_files/t0023-CUU_scroll.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index e971bbe..0000000 --- a/test/escape_sequence_files/t0024-CUD.in +++ /dev/null @@ -1,24 +0,0 @@ -a -b -c -d -e -f -g -h -i -j -k -l -m -n -o -p -q -r -s -t -u -v -w -x012345Bottom line. ABCDE  diff --git a/test/escape_sequence_files/t0024-CUD.text b/test/escape_sequence_files/t0024-CUD.text deleted file mode 100644 index 622c0b0..0000000 --- a/test/escape_sequence_files/t0024-CUD.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index b62631e..0000000 --- a/test/escape_sequence_files/t0025-CUP.in +++ /dev/null @@ -1 +0,0 @@ -abcdefg diff --git a/test/escape_sequence_files/t0025-CUP.text b/test/escape_sequence_files/t0025-CUP.text deleted file mode 100644 index 44dc619..0000000 --- a/test/escape_sequence_files/t0025-CUP.text +++ /dev/null @@ -1,25 +0,0 @@ - b - - -e - - - - - d - - - - - - - - - - g - - - - - f - diff --git a/test/escape_sequence_files/t0026-CNL.in b/test/escape_sequence_files/t0026-CNL.in deleted file mode 100644 index 8318682..0000000 --- a/test/escape_sequence_files/t0026-CNL.in +++ /dev/null @@ -1,2 +0,0 @@ -abcdefghi --------------------------------------------------------------------------abcdefghijlast line diff --git a/test/escape_sequence_files/t0026-CNL.text b/test/escape_sequence_files/t0026-CNL.text deleted file mode 100644 index 61ac27e..0000000 --- a/test/escape_sequence_files/t0026-CNL.text +++ /dev/null @@ -1,25 +0,0 @@ -def - - - - -ghi --------------------------------------------------------------------------abcdefg -hij - - - - - - - - - - - - - - - -last line - diff --git a/test/escape_sequence_files/t0027-CPL.in b/test/escape_sequence_files/t0027-CPL.in deleted file mode 100644 index edafc49..0000000 --- a/test/escape_sequence_files/t0027-CPL.in +++ /dev/null @@ -1,6 +0,0 @@ -erasedreplacement - - -line fourline two - - diff --git a/test/escape_sequence_files/t0027-CPL.text b/test/escape_sequence_files/t0027-CPL.text deleted file mode 100644 index 847ed7c..0000000 --- a/test/escape_sequence_files/t0027-CPL.text +++ /dev/null @@ -1,25 +0,0 @@ -replacement -line two - -line four - - - - - - - - - - - - - - - - - - - - - diff --git a/test/escape_sequence_files/t0030-HPR.in b/test/escape_sequence_files/t0030-HPR.in deleted file mode 100644 index 485720f..0000000 --- a/test/escape_sequence_files/t0030-HPR.in +++ /dev/null @@ -1,14 +0,0 @@ -abcdefghijkl -abcdefghijkl -abcdefghijkl -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm@ -x -x -abcd diff --git a/test/escape_sequence_files/t0030-HPR.text b/test/escape_sequence_files/t0030-HPR.text deleted file mode 100644 index b868261..0000000 --- a/test/escape_sequence_files/t0030-HPR.text +++ /dev/null @@ -1,25 +0,0 @@ -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_ deleted file mode 100644 index 13de738..0000000 --- a/test/escape_sequence_files/t0031-HPB.in_ +++ /dev/null @@ -1,8 +0,0 @@ -abcdefg!@ -abcdefg!@ -abcdefg!@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq@ -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr@ -x diff --git a/test/escape_sequence_files/t0031-HPB.text b/test/escape_sequence_files/t0031-HPB.text deleted file mode 100644 index 9ec4087..0000000 --- a/test/escape_sequence_files/t0031-HPB.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 30dd002..0000000 --- a/test/escape_sequence_files/t0032-VPB.in +++ /dev/null @@ -1,25 +0,0 @@ -a -b -c -defg -h -i -j....................................................................klmn - - - - - - - - - - - -0123 - - - - - - diff --git a/test/escape_sequence_files/t0032-VPB.text b/test/escape_sequence_files/t0032-VPB.text deleted file mode 100644 index 15f0d67..0000000 --- a/test/escape_sequence_files/t0032-VPB.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index f58db4b..0000000 --- a/test/escape_sequence_files/t0033-VPB_scroll.in +++ /dev/null @@ -1,50 +0,0 @@ -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. I 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 deleted file mode 100644 index 0b20185..0000000 --- a/test/escape_sequence_files/t0033-VPB_scroll.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index b9dc145..0000000 --- a/test/escape_sequence_files/t0034-VPR.in +++ /dev/null @@ -1,24 +0,0 @@ -a -b -c -d -e -f -g -h -i -j -k -l -m -n -o -p -q -r -s -t -u -v -w -x012345Bottom line. ABCDE  diff --git a/test/escape_sequence_files/t0034-VPR.text b/test/escape_sequence_files/t0034-VPR.text deleted file mode 100644 index 622c0b0..0000000 --- a/test/escape_sequence_files/t0034-VPR.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 781dfdb..0000000 --- a/test/escape_sequence_files/t0035-HVP.in +++ /dev/null @@ -1 +0,0 @@ -abcdefg diff --git a/test/escape_sequence_files/t0035-HVP.text b/test/escape_sequence_files/t0035-HVP.text deleted file mode 100644 index 44dc619..0000000 --- a/test/escape_sequence_files/t0035-HVP.text +++ /dev/null @@ -1,25 +0,0 @@ - b - - -e - - - - - d - - - - - - - - - - g - - - - - f - diff --git a/test/escape_sequence_files/t0040-REP.in b/test/escape_sequence_files/t0040-REP.in deleted file mode 100644 index f1abf45..0000000 --- a/test/escape_sequence_files/t0040-REP.in +++ /dev/null @@ -1,7 +0,0 @@ -x -< -abcdefg -abcdefg! - @ - . - ?- diff --git a/test/escape_sequence_files/t0040-REP.text b/test/escape_sequence_files/t0040-REP.text deleted file mode 100644 index cae1ef9..0000000 --- a/test/escape_sequence_files/t0040-REP.text +++ /dev/null @@ -1,25 +0,0 @@ -xxxxxx -< -abcdefg -abcd!fg - @@@@@@@@@ -@@@@@@@@@@@@ - . -.... - ? -?- - - - - - - - - - - - - - - - diff --git a/test/escape_sequence_files/t0050-ICH.in b/test/escape_sequence_files/t0050-ICH.in deleted file mode 100644 index a629f20..0000000 --- a/test/escape_sequence_files/t0050-ICH.in +++ /dev/null @@ -1,23 +0,0 @@ -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 deleted file mode 100644 index d787b8d..0000000 --- a/test/escape_sequence_files/t0050-ICH.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index e66a242..0000000 --- a/test/escape_sequence_files/t0051-IL.in +++ /dev/null @@ -1,23 +0,0 @@ -ab -cd -ef -gh -ij -kl -mn -opQRST -1 -2 -3 -4 -5------------------------------------------------------------------------------ab -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 diff --git a/test/escape_sequence_files/t0051-IL.text b/test/escape_sequence_files/t0051-IL.text deleted file mode 100644 index 2d0f595..0000000 --- a/test/escape_sequence_files/t0051-IL.text +++ /dev/null @@ -1,25 +0,0 @@ - -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 deleted file mode 100644 index b5a5fe0..0000000 --- a/test/escape_sequence_files/t0052-DL.in +++ /dev/null @@ -1,15 +0,0 @@ -a -b -c -d -e -f -g -hijklmnop - - -1 -2 -3 -4 x - diff --git a/test/escape_sequence_files/t0052-DL.text b/test/escape_sequence_files/t0052-DL.text deleted file mode 100644 index 10d24aa..0000000 --- a/test/escape_sequence_files/t0052-DL.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index d1f8807..0000000 --- a/test/escape_sequence_files/t0053-DCH.in +++ /dev/null @@ -1,12 +0,0 @@ -abcdefghijklmnopqrstuvwxyz> -abcdefghijklmnopqrstuvwxyz>! -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>! -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>! -------------------------------------------------------------------------------? --------------------------------------------------------------------------------? --------------------------------------------------------------------------------? ----------------------------------------------------------------------------------? -.............................................................................. -............................................................................... -............................................................................... -................................................................................. diff --git a/test/escape_sequence_files/t0053-DCH.text b/test/escape_sequence_files/t0053-DCH.text deleted file mode 100644 index 75c6b3b..0000000 --- a/test/escape_sequence_files/t0053-DCH.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 03a00d8..0000000 --- a/test/escape_sequence_files/t0054-ECH.in +++ /dev/null @@ -1,12 +0,0 @@ -abcdefghijklmnopqrstuvwxyz> -abcdefghijklmnopqrstuvwxyz>! -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>! -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>! -------------------------------------------------------------------------------? --------------------------------------------------------------------------------? --------------------------------------------------------------------------------? ----------------------------------------------------------------------------------? -.............................................................................. -............................................................................... -............................................................................... -................................................................................. diff --git a/test/escape_sequence_files/t0054-ECH.text b/test/escape_sequence_files/t0054-ECH.text deleted file mode 100644 index a22cfbe..0000000 --- a/test/escape_sequence_files/t0054-ECH.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 014658c..0000000 --- a/test/escape_sequence_files/t0055-EL.in +++ /dev/null @@ -1,8 +0,0 @@ -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>< -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>< -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>< -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh>< -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh><! -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh><! -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh><! -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh! diff --git a/test/escape_sequence_files/t0055-EL.text b/test/escape_sequence_files/t0055-EL.text deleted file mode 100644 index a248f3b..0000000 --- a/test/escape_sequence_files/t0055-EL.text +++ /dev/null @@ -1,25 +0,0 @@ -abcdefghijklmnopqrstuvwxyz0123456789ABC> -abcdefghijklmnopqrstuvwxyz0123456789ABC> - FGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh - -abcdefghijklmnopqrstuvwxyz0123456789ABC>! - !FGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh - ! -abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefg! - - - - - - - - - - - - - - - - - diff --git a/test/escape_sequence_files/t0056-ED.in b/test/escape_sequence_files/t0056-ED.in deleted file mode 100644 index fca4e54..0000000 --- a/test/escape_sequence_files/t0056-ED.in +++ /dev/null @@ -1,62 +0,0 @@ -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! - -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaav^ - - - -the end diff --git a/test/escape_sequence_files/t0056-ED.text b/test/escape_sequence_files/t0056-ED.text deleted file mode 100644 index 61a8ac7..0000000 --- a/test/escape_sequence_files/t0056-ED.text +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - ! - -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaav -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^ - - - -the end - diff --git a/test/escape_sequence_files/t0057-ED3.in b/test/escape_sequence_files/t0057-ED3.in deleted file mode 100644 index 46606df..0000000 --- a/test/escape_sequence_files/t0057-ED3.in +++ /dev/null @@ -1,55 +0,0 @@ -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 -this -is -the -end diff --git a/test/escape_sequence_files/t0057-ED3.note b/test/escape_sequence_files/t0057-ED3.note deleted file mode 100644 index ca6d940..0000000 --- a/test/escape_sequence_files/t0057-ED3.note +++ /dev/null @@ -1,6 +0,0 @@ -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 deleted file mode 100644 index 8230921..0000000 --- a/test/escape_sequence_files/t0057-ED3.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index d269150..0000000 --- a/test/escape_sequence_files/t0060-DECSC.in +++ /dev/null @@ -1,9 +0,0 @@ - 7v 12 - -38^ - - - - v7 -...ooo8^ - diff --git a/test/escape_sequence_files/t0060-DECSC.text b/test/escape_sequence_files/t0060-DECSC.text deleted file mode 100644 index 409198b..0000000 --- a/test/escape_sequence_files/t0060-DECSC.text +++ /dev/null @@ -1,25 +0,0 @@ - -3 - - v -... ^ - ooo - - - - - - - - - - - - - - - - - - - diff --git a/test/escape_sequence_files/t0061-CSI_s.in b/test/escape_sequence_files/t0061-CSI_s.in deleted file mode 100644 index 451fafa..0000000 --- a/test/escape_sequence_files/t0061-CSI_s.in +++ /dev/null @@ -1,9 +0,0 @@ - v 12 - -3^ - - - - v -...ooo^ - diff --git a/test/escape_sequence_files/t0061-CSI_s.text b/test/escape_sequence_files/t0061-CSI_s.text deleted file mode 100644 index 409198b..0000000 --- a/test/escape_sequence_files/t0061-CSI_s.text +++ /dev/null @@ -1,25 +0,0 @@ - -3 - - v -... ^ - ooo - - - - - - - - - - - - - - - - - - - diff --git a/test/escape_sequence_files/t0070-DECSTBM_LF.in b/test/escape_sequence_files/t0070-DECSTBM_LF.in deleted file mode 100644 index 571f223..0000000 --- a/test/escape_sequence_files/t0070-DECSTBM_LF.in +++ /dev/null @@ -1,31 +0,0 @@ -1 -2 -3 -4 -5 -6 -7 -8 -9ABCDEFa -b -c -d -e -f -g -h -i -j -k -l -m -n -o -p -q -r -s -t -uvwxyz - -The end. diff --git a/test/escape_sequence_files/t0070-DECSTBM_LF.text b/test/escape_sequence_files/t0070-DECSTBM_LF.text deleted file mode 100644 index 0940b07..0000000 --- a/test/escape_sequence_files/t0070-DECSTBM_LF.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index f9f6a42..0000000 --- a/test/escape_sequence_files/t0071-DECSTBM_IND.in +++ /dev/null @@ -1,3 +0,0 @@ -1D2D3D4D5D6D7D8D9ABCDEFaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuvwxyz - -The end. diff --git a/test/escape_sequence_files/t0071-DECSTBM_IND.text b/test/escape_sequence_files/t0071-DECSTBM_IND.text deleted file mode 100644 index f6644fb..0000000 --- a/test/escape_sequence_files/t0071-DECSTBM_IND.text +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index 5df9e71..0000000 --- a/test/escape_sequence_files/t0072-DECSTBM_NEL.in +++ /dev/null @@ -1,2 +0,0 @@ -1E2E3E4E5E6E7E8E9aEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEu -The end. diff --git a/test/escape_sequence_files/t0072-DECSTBM_NEL.text b/test/escape_sequence_files/t0072-DECSTBM_NEL.text deleted file mode 100644 index 1a0e4a1..0000000 --- a/test/escape_sequence_files/t0072-DECSTBM_NEL.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index fc7b7e4..0000000 --- a/test/escape_sequence_files/t0073-DECSTBM_RI.in +++ /dev/null @@ -1,43 +0,0 @@ -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 - - - - -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. -The end. diff --git a/test/escape_sequence_files/t0073-DECSTBM_RI.text b/test/escape_sequence_files/t0073-DECSTBM_RI.text deleted file mode 100644 index ce6dbc7..0000000 --- a/test/escape_sequence_files/t0073-DECSTBM_RI.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 1acbaf3..0000000 --- a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in +++ /dev/null @@ -1,24 +0,0 @@ -a -b -c -d -e -f -g -h -i -j -k -l -m -n -o -p -q -r -s -t -u -v -w -x diff --git a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text b/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text deleted file mode 100644 index 948e5d4..0000000 --- a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index b679113..0000000 --- a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in +++ /dev/null @@ -1,24 +0,0 @@ -a -b -c -d -e -f -g -h -i -j -k -l -m -n -o -p -q -r -s -t -u -v -w -x12 diff --git a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text b/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text deleted file mode 100644 index 486b91d..0000000 --- a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 58d20d2..0000000 --- a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in +++ /dev/null @@ -1,33 +0,0 @@ - 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 - -25 B -26 ^^^^ -27 vvvv DL on line 28, expected: B_ -28 A -29 B -30 ^^^^ -31 -32 diff --git a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text b/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text deleted file mode 100644 index 92c1033..0000000 --- a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index b444362..0000000 --- a/test/escape_sequence_files/t0077-DECSTBM_quirks.in +++ /dev/null @@ -1,32 +0,0 @@ - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24A -B -C -D -E -F -G - -Done. diff --git a/test/escape_sequence_files/t0077-DECSTBM_quirks.text b/test/escape_sequence_files/t0077-DECSTBM_quirks.text deleted file mode 100644 index ea142e3..0000000 --- a/test/escape_sequence_files/t0077-DECSTBM_quirks.text +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index 581e0ba..0000000 --- a/test/escape_sequence_files/t0080-HT.in +++ /dev/null @@ -1,14 +0,0 @@ -a b c d e f g h i j k l - x -1 2 - 3 - -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 deleted file mode 100644 index 0683c21..0000000 --- a/test/escape_sequence_files/t0080-HT.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 744b7a5..0000000 --- a/test/escape_sequence_files/t0081-TBC.in +++ /dev/null @@ -1,19 +0,0 @@ -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: -> 0done - -TBC at end with clipping: ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdeMD! diff --git a/test/escape_sequence_files/t0081-TBC.text b/test/escape_sequence_files/t0081-TBC.text deleted file mode 100644 index 575e3fd..0000000 --- a/test/escape_sequence_files/t0081-TBC.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 2bd62d4..0000000 --- a/test/escape_sequence_files/t0082-HTS.in +++ /dev/null @@ -1,8 +0,0 @@ - 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 deleted file mode 100644 index ecf66a5..0000000 --- a/test/escape_sequence_files/t0082-HTS.text +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index 838325d..0000000 --- a/test/escape_sequence_files/t0083-CHT.in +++ /dev/null @@ -1,18 +0,0 @@ -abcdefghijkl -x -12 - 3 - -CHT before EOL: -no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ -tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@ -tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg@ - -CHT at EOL: -no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi@ -tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi@ -with clipping: 4567890abcdefghiMD@ - -aeg -e h -x diff --git a/test/escape_sequence_files/t0083-CHT.text b/test/escape_sequence_files/t0083-CHT.text deleted file mode 100644 index 071ed63..0000000 --- a/test/escape_sequence_files/t0083-CHT.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index a7dd5b1..0000000 --- a/test/escape_sequence_files/t0084-CBT.in +++ /dev/null @@ -1,16 +0,0 @@ -a b c d e f g h i j k - <Iihfa -a - -default tab stops: -near end: abcdefg! -at end: abcdefgh! -at end (2): abcdefgh! -at end with clipping: abcdefghMD! -at end with clipping (2): abcdefghMD! - -set tab stop at column 80: Hv -at end: abcdefgh! -at end (2): abcdefgh! -at end with clipping: abcdefghMD! -at end with clipping (2): abcdefghMD! diff --git a/test/escape_sequence_files/t0084-CBT.text b/test/escape_sequence_files/t0084-CBT.text deleted file mode 100644 index 2fb8765..0000000 --- a/test/escape_sequence_files/t0084-CBT.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 7a2adc7..0000000 --- a/test/escape_sequence_files/t0084-CBT.text-xterm +++ /dev/null @@ -1,20 +0,0 @@ -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 deleted file mode 100644 index bf1eeaf..0000000 --- a/test/escape_sequence_files/t0090-alt_screen.in +++ /dev/null @@ -1,55 +0,0 @@ -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 deleted file mode 100644 index 7ac0135..0000000 --- a/test/escape_sequence_files/t0090-alt_screen.text +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 40957e8..0000000 --- a/test/escape_sequence_files/t0091-alt_screen_ED3.in +++ /dev/null @@ -1,46 +0,0 @@ -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 - -[?47l -11 diff --git a/test/escape_sequence_files/t0091-alt_screen_ED3.text b/test/escape_sequence_files/t0091-alt_screen_ED3.text deleted file mode 100644 index 4a326a4..0000000 --- a/test/escape_sequence_files/t0091-alt_screen_ED3.text +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index 3022a93..0000000 --- a/test/escape_sequence_files/t0092-alt_screen_DECSC.in +++ /dev/null @@ -1,15 +0,0 @@ -a - b7 - c[?47h - - >7 - - xxxxxxx8[?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 deleted file mode 100644 index bab1503..0000000 --- a/test/escape_sequence_files/t0092-alt_screen_DECSC.text +++ /dev/null @@ -1,25 +0,0 @@ -a - b< - c - - ! - - - - -The end. - - - - - - - - - - - - - - - diff --git a/test/escape_sequence_files/t0100-IRM.in b/test/escape_sequence_files/t0100-IRM.in deleted file mode 100644 index 5046f18..0000000 --- a/test/escape_sequence_files/t0100-IRM.in +++ /dev/null @@ -1,13 +0,0 @@ --------- insert single '!' --------------------------------------------abcdefghi -jklmnop! - - --------- insert 0-9, with wraparound ----------------------------------abcdefghi -jklmnop0123456789 - --------- repeat 3 '!' -------------------------------------------------abcdefghi -jklmnop! - - --------- repeat 10 '!', with wraparound -------------------------------abcdefghi -jklmnop! diff --git a/test/escape_sequence_files/t0100-IRM.text b/test/escape_sequence_files/t0100-IRM.text deleted file mode 100644 index f4f3eea..0000000 --- a/test/escape_sequence_files/t0100-IRM.text +++ /dev/null @@ -1,25 +0,0 @@ --------- 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 deleted file mode 100644 index 554a0f3..0000000 --- a/test/escape_sequence_files/t0101-NLM.in +++ /dev/null @@ -1,10 +0,0 @@ -a -b -c -d -e -f g h -i j k -l -m -n o p diff --git a/test/escape_sequence_files/t0101-NLM.text b/test/escape_sequence_files/t0101-NLM.text deleted file mode 100644 index 47f883f..0000000 --- a/test/escape_sequence_files/t0101-NLM.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index c615659..0000000 --- a/test/escape_sequence_files/t0102-DECAWM.in +++ /dev/null @@ -1,4 +0,0 @@ --------- 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 deleted file mode 100644 index c1f22de..0000000 --- a/test/escape_sequence_files/t0102-DECAWM.text +++ /dev/null @@ -1,25 +0,0 @@ --------- 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 deleted file mode 100644 index 092462e..0000000 --- a/test/escape_sequence_files/t0103-reverse_wrap.in +++ /dev/null @@ -1,6 +0,0 @@ -[?45ha -bA - -c-B - -dC!the endreally![?45l diff --git a/test/escape_sequence_files/t0103-reverse_wrap.text b/test/escape_sequence_files/t0103-reverse_wrap.text deleted file mode 100644 index da830d5..0000000 --- a/test/escape_sequence_files/t0103-reverse_wrap.text +++ /dev/null @@ -1,25 +0,0 @@ -c C -! - - - - - - - - - - - - - - - - - - - - - the end -really! - diff --git a/test/escape_sequence_files/t0200-SGR.html b/test/escape_sequence_files/t0200-SGR.html deleted file mode 100644 index fa270a0..0000000 --- a/test/escape_sequence_files/t0200-SGR.html +++ /dev/null @@ -1,35 +0,0 @@ -
-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 hidden.
-
- 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_ deleted file mode 100644 index 3b37c93..0000000 --- a/test/escape_sequence_files/t0200-SGR.in_ +++ /dev/null @@ -1,33 +0,0 @@ -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 hidden. - - 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/t0220-SGR_inverse.html b/test/escape_sequence_files/t0220-SGR_inverse.html deleted file mode 100644 index 7218bf4..0000000 --- a/test/escape_sequence_files/t0220-SGR_inverse.html +++ /dev/null @@ -1,6 +0,0 @@ -
-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_ deleted file mode 100644 index e7e63f9..0000000 --- a/test/escape_sequence_files/t0220-SGR_inverse.in_ +++ /dev/null @@ -1,4 +0,0 @@ -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/t0500-bash_long_line.in b/test/escape_sequence_files/t0500-bash_long_line.in deleted file mode 100644 index b1e5491..0000000 --- a/test/escape_sequence_files/t0500-bash_long_line.in +++ /dev/null @@ -1,7 +0,0 @@ -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 UVWXYZ1234567890abcdefghijklmnopqrstuvcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuv - -]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 deleted file mode 100644 index 5c785d0..0000000 --- a/test/escape_sequence_files/t0500-bash_long_line.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 9053d8b..0000000 --- a/test/escape_sequence_files/t0501-bash_ls.in +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index 8114fc9..0000000 --- a/test/escape_sequence_files/t0501-bash_ls.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 1f4eda8..0000000 --- a/test/escape_sequence_files/t0502-bash_ls_color.in +++ /dev/null @@ -1,10 +0,0 @@ -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 / -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: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 deleted file mode 100644 index 1892eea..0000000 --- a/test/escape_sequence_files/t0502-bash_ls_color.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index aca2d10..0000000 --- a/test/escape_sequence_files/t0503-zsh_ls_color.in +++ /dev/null @@ -1,9 +0,0 @@ -Script started on Sun 17 May 2009 06:21:21 PM EDT -]2;mark-desktop - ~/vt100-to-html/scripts% $ ~/vt100-to-html/scriptslls / -]2;mark-desktop - 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 -]2;mark-desktop - ~/vt100-to-html/scripts% $ ~/vt100-to-html/scripts - -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 deleted file mode 100644 index 19feb18..0000000 --- a/test/escape_sequence_files/t0503-zsh_ls_color.text +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index cb68232..0000000 --- a/test/escape_sequence_files/t0504-vim.in +++ /dev/null @@ -1,56 +0,0 @@ -Script started on Sun 15 Aug 2010 11:53:27 PM EDT -]0;mark-desktop - ~/vt100-to-html/test% $ ~/vt100-to-html/testlls -]0;mark-desktop - lsexpected_text t0016-SU.text t0050-ICH.text -input t0017-SD.in t0051-IL.in -run_all.py 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 -]0;mark-desktop - ~/vt100-to-html/test% $ ~/vt100-to-html/testvvim -]0;mark-desktop - vim[?1000h[?1049h[?1h=[?12;25h[?12l[?25h[>c[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] 0,0-1 AllVIM - Vi IMprovedversion 7.2.267by Bram Moolenaar et al.Vim is open source and freely distributableBecome a registered Vim user!type :help register for information type :q to exit type :help or  for on-line helptype :help version7 for version info]2;[No Name] - VIM]1;[No Name][?12l[?25h[?1000l[?1002hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\[?25l-- INSERT --1 [?12l[?25h[?25lT         [+]1,2 ]2;[No Name] + - VIM]1;[No Name][?12l[?25h[?25lTh3 [?12l[?25h[?25lhi4 [?12l[?25h[?25lis5 [?12l[?25h[?25l6 [?12l[?25h[?25l i7 [?12l[?25h[?25lis8 [?12l[?25h[?25l9 [?12l[?25h[?25l a10[?12l[?25h[?25l1 [?12l[?25h[?25l t2 [?12l[?25h[?25lte3 [?12l[?25h[?25les4 [?12l[?25h[?25lst5 [?12l[?25h[?25lt.6 [?12l[?25h[?25l2,1 [?12l[?25h[?25l3,[?12l[?25h[?25lH2 [?12l[?25h[?25lHo3 [?12l[?25h[?25loe4 [?12l[?25h[?25l5 [?12l[?25h[?25l f6 [?12l[?25h[?25lfu7 [?12l[?25h[?25l6 [?12l[?25h[?25l5 [?12l[?25h[?25l4 [?12l[?25h[?25l3 [?12l[?25h[?25lop4 [?12l[?25h[?25lpe5 [?12l[?25h[?25lef6 [?12l[?25h[?25lfu7 [?12l[?25h[?25lul8 [?12l[?25h[?25lll9 [?12l[?25h[?25lly10[?12l[?25h[?25l1 [?12l[?25h[?25l i2 [?12l[?25h[?25lit3 [?12l[?25h[?25l4 [?12l[?25h[?25l w5 [?12l[?25h[?25lwi6 [?12l[?25h[?25lil7 [?12l[?25h[?25lll8 [?12l[?25h[?25l9 [?12l[?25h[?25l w20 [?12l[?25h[?25lwo1 [?12l[?25h[?25lor2 [?12l[?25h[?25lrk3 [?12l[?25h[?25lk.4 [?12l[?25h[?25l4,1 [?12l[?25h[?25l5,[?12l[?25h[?25l6,[?12l[?25h[?25l7,[?12l[?25h[?25l8,[?12l[?25h[?25l9,[?12l[?25h[?25l10,1[?12l[?25h[?25l1,[?12l[?25h[?25l2,[?12l[?25h[?25l3,[?12l[?25h[?25l4,[?12l[?25h[?25l5,[?12l[?25h[?25l6,[?12l[?25h[?25l7,[?12l[?25h[?25l8,[?12l[?25h[?25l9,[?12l[?25h[?25l20,[?12l[?25h[?25l1,[?12l[?25h[?25l2,[?12l[?25h[?25l -3,Bot[?12l[?25h[?25l -4,[?12l[?25h[?25l -5,[?12l[?25h[?25l -6,[?12l[?25h[?25l -7,[?12l[?25h[?25l -8,[?12l[?25h[?25l -9,[?12l[?25h[?25l -30,[?12l[?25h[?25l -1,[?12l[?25h[?25l -2,[?12l[?25h[?25l -3,[?12l[?25h[?25lI2 [?12l[?25h[?25l3 [?12l[?25h[?25l b4 [?12l[?25h[?25lbe5 [?12l[?25h[?25let6 [?12l[?25h[?25l7 [?12l[?25h[?25l i8 [?12l[?25h[?25lit9 [?12l[?25h[?25l10[?12l[?25h[?25l w1 [?12l[?25h[?25lwi2 [?12l[?25h[?25lil3 [?12l[?25h[?25lll4 [?12l[?25h[?25ll.5 [?12l[?25h[?25l4 [?12l[?25h[?25lThis is a test. - -Hopefully it will work.1,1 Top[?12l[?25h[?25lI bet it will. -~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] [+] 21,0-1 Bot[?12l[?25h[?25l0,[?12l[?25h[?25l19,[?12l[?25h[?25l8,[?12l[?25h[?25l7,[?12l[?25h[?25l6,[?12l[?25h[?25l5,[?12l[?25h[?25l:[?12l[?25hw[?25l[?12l[?25hq[?25l[?12l[?25h [?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hw[?25l[?12l[?25h[?25l [?12l[?25hf[?25l[?12l[?25ho[?25l[?12l[?25ho[?25l[?12l[?25h [?25l"foo" [New] 33L, 85C writtenfoo ]2;foo (~/vt100-to-html/test) - VIM]1;foo[?12l[?25h[?25l:[?12l[?25hq[?25l[?12l[?25h [?25l[?1002l]2;mark-desktop - vim]1;mark-desktop - vim[?1l>[?12l[?25h[?1049l]0;mark-desktop - ~/vt100-to-html/test% $ ~/vt100-to-html/testeecho Yes! -]0;mark-desktop - echo Yes!Yes! -]0;mark-desktop - ~/vt100-to-html/test% $ ~/vt100-to-html/test - -Script done on Sun 15 Aug 2010 11:54:14 PM EDT diff --git a/test/escape_sequence_files/t0504-vim.text b/test/escape_sequence_files/t0504-vim.text deleted file mode 100644 index 7c20251..0000000 --- a/test/escape_sequence_files/t0504-vim.text +++ /dev/null @@ -1,25 +0,0 @@ -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 -$ vim ~/vt100-to-html/test -Script done on Sun 15 Aug 2010 11:54:14 PM EDT ~/vt100-to-html/test diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 4a7d857..0000000 --- a/test/test.js +++ /dev/null @@ -1,782 +0,0 @@ -var assert = require('chai').assert; -var expect = require('chai').expect; -var Terminal = require('../build/xterm'); - -describe('xterm.js', function() { - var xterm; - - beforeEach(function () { - xterm = new Terminal(); - xterm.refresh = function(){}; - xterm.viewport = { - syncScrollArea: function(){} - }; - }); - - describe('getOption', function() { - it('should retrieve the option correctly', function() { - // In the `options` namespace. - xterm.options.cursorBlink = true; - assert.equal(xterm.getOption('cursorBlink'), true); - - // On the Terminal instance - delete xterm.options.cursorBlink; - xterm.cursorBlink = false; - assert.equal(xterm.getOption('cursorBlink'), false); - }); - it('should throw when retrieving a non-existant option', function() { - assert.throws(xterm.getOption.bind(xterm, 'fake', true)); - }); - }); - - describe('setOption', function() { - it('should set the option correctly', function() { - xterm.setOption('cursorBlink', true); - assert.equal(xterm.cursorBlink, true); - assert.equal(xterm.options.cursorBlink, true); - xterm.setOption('cursorBlink', false); - assert.equal(xterm.cursorBlink, false); - assert.equal(xterm.options.cursorBlink, false); - }); - it('should throw when setting a non-existant option', function() { - assert.throws(xterm.setOption.bind(xterm, 'fake', true)); - }); - }); - - describe('clear', function() { - it('should clear a buffer equal to rows', function() { - var promptLine = xterm.lines[xterm.ybase + xterm.y]; - xterm.clear(); - assert.equal(xterm.y, 0); - assert.equal(xterm.ybase, 0); - assert.equal(xterm.ydisp, 0); - assert.equal(xterm.lines.length, xterm.rows); - assert.deepEqual(xterm.lines[0], promptLine); - for (var i = 1; i < xterm.rows; i++) { - assert.deepEqual(xterm.lines[0], xterm.blankLine()); - } - }); - it('should clear a buffer larger than rows', function() { - // Fill the buffer with dummy rows - for (var i = 0; i < xterm.rows * 2; i++) { - xterm.write('test\n'); - } - - var promptLine = xterm.lines[xterm.ybase + xterm.y]; - xterm.clear(); - assert.equal(xterm.y, 0); - assert.equal(xterm.ybase, 0); - assert.equal(xterm.ydisp, 0); - assert.equal(xterm.lines.length, xterm.rows); - assert.deepEqual(xterm.lines[0], promptLine); - for (var i = 1; i < xterm.rows; i++) { - assert.deepEqual(xterm.lines[i], xterm.blankLine()); - } - }); - it('should not break the prompt when cleared twice', function() { - var promptLine = xterm.lines[xterm.ybase + xterm.y]; - xterm.clear(); - xterm.clear(); - assert.equal(xterm.y, 0); - assert.equal(xterm.ybase, 0); - assert.equal(xterm.ydisp, 0); - assert.equal(xterm.lines.length, xterm.rows); - assert.deepEqual(xterm.lines[0], promptLine); - for (var i = 1; i < xterm.rows; i++) { - assert.deepEqual(xterm.lines[i], xterm.blankLine()); - } - }); - }); - - describe('scroll', function() { - describe('scrollDisp', function() { - var startYDisp; - beforeEach(function() { - for (var i = 0; i < xterm.rows * 2; i++) { - xterm.writeln('test'); - } - startYDisp = xterm.rows + 1; - }); - it('should scroll a single line', function() { - assert.equal(xterm.ydisp, startYDisp); - xterm.scrollDisp(-1); - assert.equal(xterm.ydisp, startYDisp - 1); - xterm.scrollDisp(1); - assert.equal(xterm.ydisp, startYDisp); - }); - it('should scroll multiple lines', function() { - assert.equal(xterm.ydisp, startYDisp); - xterm.scrollDisp(-5); - assert.equal(xterm.ydisp, startYDisp - 5); - xterm.scrollDisp(5); - assert.equal(xterm.ydisp, startYDisp); - }); - it('should not scroll beyond the bounds of the buffer', function() { - assert.equal(xterm.ydisp, startYDisp); - xterm.scrollDisp(1); - assert.equal(xterm.ydisp, startYDisp); - for (var i = 0; i < startYDisp; i++) { - xterm.scrollDisp(-1); - } - assert.equal(xterm.ydisp, 0); - xterm.scrollDisp(-1); - assert.equal(xterm.ydisp, 0); - }); - }); - - describe('scrollPages', function() { - var startYDisp; - beforeEach(function() { - for (var i = 0; i < xterm.rows * 3; i++) { - xterm.writeln('test'); - } - startYDisp = (xterm.rows * 2) + 1; - }); - it('should scroll a single page', function() { - assert.equal(xterm.ydisp, startYDisp); - xterm.scrollPages(-1); - assert.equal(xterm.ydisp, startYDisp - (xterm.rows - 1)); - xterm.scrollPages(1); - assert.equal(xterm.ydisp, startYDisp); - }); - it('should scroll a multiple pages', function() { - assert.equal(xterm.ydisp, startYDisp); - xterm.scrollPages(-2); - assert.equal(xterm.ydisp, startYDisp - (xterm.rows - 1) * 2); - xterm.scrollPages(2); - assert.equal(xterm.ydisp, startYDisp); - }); - }); - - describe('scrollToTop', function() { - beforeEach(function() { - for (var i = 0; i < xterm.rows * 3; i++) { - xterm.writeln('test'); - } - }); - it('should scroll to the top', function() { - assert.notEqual(xterm.ydisp, 0); - xterm.scrollToTop(); - assert.equal(xterm.ydisp, 0); - }); - }); - - describe('scrollToBottom', function() { - var startYDisp; - beforeEach(function() { - for (var i = 0; i < xterm.rows * 3; i++) { - xterm.writeln('test'); - } - startYDisp = (xterm.rows * 2) + 1; - }); - it('should scroll to the bottom', function() { - xterm.scrollDisp(-1); - xterm.scrollToBottom(); - assert.equal(xterm.ydisp, startYDisp); - xterm.scrollPages(-1); - xterm.scrollToBottom(); - assert.equal(xterm.ydisp, startYDisp); - xterm.scrollToTop(); - xterm.scrollToBottom(); - assert.equal(xterm.ydisp, startYDisp); - }); - }); - }); - - describe('evaluateKeyEscapeSequence', function() { - it('should return the correct escape sequence for unmodified keys', function() { - // Backspace - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 8 }).key, '\x7f'); // ^? - // Tab - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 9 }).key, '\t'); - // Return/enter - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 13 }).key, '\r'); // CR - // Escape - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 27 }).key, '\x1b'); - // Page up, page down - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 33 }).key, '\x1b[5~'); // CSI 5 ~ - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 34 }).key, '\x1b[6~'); // CSI 6 ~ - // End, Home - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 35 }).key, '\x1b[F'); // SS3 F - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 36 }).key, '\x1b[H'); // SS3 H - // Left, up, right, down arrows - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 37 }).key, '\x1b[D'); // CSI D - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 38 }).key, '\x1b[A'); // CSI A - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 39 }).key, '\x1b[C'); // CSI C - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 40 }).key, '\x1b[B'); // CSI B - // Insert - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 45 }).key, '\x1b[2~'); // CSI 2 ~ - // Delete - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 46 }).key, '\x1b[3~'); // CSI 3 ~ - // F1-F12 - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 112 }).key, '\x1bOP'); // SS3 P - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 113 }).key, '\x1bOQ'); // SS3 Q - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 114 }).key, '\x1bOR'); // SS3 R - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 115 }).key, '\x1bOS'); // SS3 S - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 116 }).key, '\x1b[15~'); // CSI 1 5 ~ - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 117 }).key, '\x1b[17~'); // CSI 1 7 ~ - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 118 }).key, '\x1b[18~'); // CSI 1 8 ~ - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 119 }).key, '\x1b[19~'); // CSI 1 9 ~ - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 120 }).key, '\x1b[20~'); // CSI 2 0 ~ - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 121 }).key, '\x1b[21~'); // CSI 2 1 ~ - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 122 }).key, '\x1b[23~'); // CSI 2 3 ~ - assert.equal(xterm.evaluateKeyEscapeSequence({ keyCode: 123 }).key, '\x1b[24~'); // CSI 2 4 ~ - }); - it('should return \\x1b[3;5~ for ctrl+delete', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 46 }).key, '\x1b[3;5~'); - }); - it('should return \\x1b[3;2~ for shift+delete', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 46 }).key, '\x1b[3;2~'); - }); - it('should return \\x1b[3;3~ for alt+delete', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 46 }).key, '\x1b[3;3~'); - }); - it('should return \\x1b[5D for ctrl+left', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 37 }).key, '\x1b[1;5D'); // CSI 5 D - }); - it('should return \\x1b[5C for ctrl+right', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 39 }).key, '\x1b[1;5C'); // CSI 5 C - }); - it('should return \\x1b[5A for ctrl+up', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 38 }).key, '\x1b[1;5A'); // CSI 5 A - }); - it('should return \\x1b[5B for ctrl+down', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 40 }).key, '\x1b[1;5B'); // CSI 5 B - }); - // Evalueate alt + arrow key movement, which is a feature of terminal emulators but not VT100 - // http://unix.stackexchange.com/a/108106 - it('should return \\x1b[5D for alt+left', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 37 }).key, '\x1b[1;5D'); // CSI 5 D - }); - it('should return \\x1b[5C for alt+right', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 39 }).key, '\x1b[1;5C'); // CSI 5 C - }); - it('should return \\x1b[5A for alt+up', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 38 }).key, '\x1b[1;5A'); // CSI 5 A - }); - it('should return \\x1b[5B for alt+down', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 40 }).key, '\x1b[1;5B'); // CSI 5 B - }); - it('should return the correct escape sequence for modified F1-F12 keys', function() { - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 112 }).key, '\x1b[1;2P'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 113 }).key, '\x1b[1;2Q'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 114 }).key, '\x1b[1;2R'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 115 }).key, '\x1b[1;2S'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 116 }).key, '\x1b[15;2~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 117 }).key, '\x1b[17;2~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 118 }).key, '\x1b[18;2~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 119 }).key, '\x1b[19;2~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 120 }).key, '\x1b[20;2~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 121 }).key, '\x1b[21;2~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 122 }).key, '\x1b[23;2~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ shiftKey: true, keyCode: 123 }).key, '\x1b[24;2~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 112 }).key, '\x1b[1;3P'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 113 }).key, '\x1b[1;3Q'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 114 }).key, '\x1b[1;3R'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 115 }).key, '\x1b[1;3S'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 116 }).key, '\x1b[15;3~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 117 }).key, '\x1b[17;3~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 118 }).key, '\x1b[18;3~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 119 }).key, '\x1b[19;3~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 120 }).key, '\x1b[20;3~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 121 }).key, '\x1b[21;3~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 122 }).key, '\x1b[23;3~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ altKey: true, keyCode: 123 }).key, '\x1b[24;3~'); - - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 112 }).key, '\x1b[1;5P'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 113 }).key, '\x1b[1;5Q'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 114 }).key, '\x1b[1;5R'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 115 }).key, '\x1b[1;5S'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 116 }).key, '\x1b[15;5~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 117 }).key, '\x1b[17;5~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 118 }).key, '\x1b[18;5~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 119 }).key, '\x1b[19;5~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 120 }).key, '\x1b[20;5~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 121 }).key, '\x1b[21;5~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 122 }).key, '\x1b[23;5~'); - assert.equal(xterm.evaluateKeyEscapeSequence({ ctrlKey: true, keyCode: 123 }).key, '\x1b[24;5~'); - }); - }); - - describe('attachCustomEventHandler', function () { - var evKeyDown = { - preventDefault: function() {}, - stopPropagation: function() {}, - type: 'keydown' - } - - beforeEach(function() { - xterm.handler = function() {}; - xterm.showCursor = function() {}; - xterm.clearSelection = function() {}; - xterm.compositionHelper = { - keydown: { - bind: function() { - return function () { return true; } - } - } - } - }); - - it('should process the keydown event based on what the handler returns', function () { - assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), true); - xterm.attachCustomKeydownHandler(function (ev) { - return ev.keyCode === 77; - }); - assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), true); - xterm.attachCustomKeydownHandler(function (ev) { - return ev.keyCode !== 77; - }); - assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), false); - }); - - it('should alive after reset(ESC c Full Reset (RIS))', function () { - xterm.attachCustomKeydownHandler(function (ev) { - return ev.keyCode !== 77; - }); - assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), false); - xterm.reset(); - assert.equal(xterm.keyDown(Object.assign({}, evKeyDown, { keyCode: 77 })), false); - }); - }); - - describe('Third level shift', function() { - var evKeyDown = { - preventDefault: function() {}, - stopPropagation: function() {}, - type: 'keydown' - }, - evKeyPress = { - preventDefault: function() {}, - stopPropagation: function() {}, - type: 'keypress' - }; - - beforeEach(function() { - xterm.handler = function() {}; - xterm.showCursor = function() {}; - xterm.clearSelection = function() {}; - xterm.compositionHelper = { - isComposing: false, - keydown: { - bind: function() { - return function() { return true; }; - } - } - }; - }); - - describe('On Mac OS', function() { - beforeEach(function() { - xterm.isMac = true; - }); - - it('should not interfere with the alt key on keyDown', function() { - assert.equal( - xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, keyCode: 81 })), - true - ); - assert.equal( - xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, keyCode: 192 })), - true - ); - }); - - it('should interefere with the alt + arrow keys', function() { - assert.equal( - xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, keyCode: 37 })), - false - ); - assert.equal( - xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, keyCode: 39 })), - false - ); - }); - - it('should emit key with alt + key on keyPress', function(done) { - var keys = ['@', '@', '\\', '\\', '|', '|']; - - xterm.on('keypress', function(key) { - if (key) { - var index = keys.indexOf(key); - assert(index !== -1, "Emitted wrong key: " + key); - keys.splice(index, 1); - } - if (keys.length === 0) done(); - }); - - xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, keyCode: 64 })); // @ - // Firefox - xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, charCode: 64, keyCode: 0 })); - xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, keyCode: 92 })); // \ - xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, charCode: 92, keyCode: 0 })); - xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, keyCode: 124 })); // | - xterm.keyPress(Object.assign({}, evKeyPress, { altKey: true, charCode: 124, keyCode: 0 })); - }); - }); - - describe('On MS Windows', function() { - beforeEach(function() { - xterm.isMSWindows = true; - }); - - it('should not interfere with the alt + ctrl key on keyDown', function() { - assert.equal( - xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, ctrlKey: true, keyCode: 81 })), - true - ); - assert.equal( - xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, ctrlKey: true, keyCode: 192 })), - true - ); - }); - - it('should interefere with the alt + ctrl + arrow keys', function() { - assert.equal( - xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, ctrlKey: true, keyCode: 37 })), - false - ); - assert.equal( - xterm.keyDown(Object.assign({}, evKeyDown, { altKey: true, ctrlKey: true, keyCode: 39 })), - false - ); - }); - - it('should emit key with alt + ctrl + key on keyPress', function(done) { - var keys = ['@', '@', '\\', '\\', '|', '|']; - - xterm.on('keypress', function(key) { - if (key) { - var index = keys.indexOf(key); - assert(index !== -1, "Emitted wrong key: " + key); - keys.splice(index, 1); - } - if (keys.length === 0) done(); - }); - - xterm.keyPress( - Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, keyCode: 64 }) - ); // @ - xterm.keyPress( - Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, charCode: 64, keyCode: 0 }) - ); - xterm.keyPress( - Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, keyCode: 92 }) - ); // \ - xterm.keyPress( - Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, charCode: 92, keyCode: 0 }) - ); - xterm.keyPress( - Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, keyCode: 124 }) - ); // | - xterm.keyPress( - Object.assign({}, evKeyPress, { altKey: true, ctrlKey: true, charCode: 124, keyCode: 0 }) - ); - }); - }); - }); - - describe('unicode - surrogates', function() { - it('2 characters per cell', function () { - var high = String.fromCharCode(0xD800); - for (var i=0xDC00; i<=0xDCFF; ++i) { - xterm.write(high + String.fromCharCode(i)); - var tchar = xterm.lines[0][0]; - expect(tchar[1]).eql(high + String.fromCharCode(i)); - expect(tchar[1].length).eql(2); - expect(tchar[2]).eql(1); - expect(xterm.lines[0][1][1]).eql(' '); - xterm.reset(); - } - }); - it('2 characters at last cell', function() { - var high = String.fromCharCode(0xD800); - for (var i=0xDC00; i<=0xDCFF; ++i) { - xterm.x = xterm.cols - 1; - xterm.write(high + String.fromCharCode(i)); - expect(xterm.lines[0][xterm.x-1][1]).eql(high + String.fromCharCode(i)); - expect(xterm.lines[0][xterm.x-1][1].length).eql(2); - expect(xterm.lines[1][0][1]).eql(' '); - xterm.reset(); - } - }); - it('2 characters per cell over line end with autowrap', function() { - var high = String.fromCharCode(0xD800); - for (var i=0xDC00; i<=0xDCFF; ++i) { - xterm.x = xterm.cols - 1; - xterm.wraparoundMode = true; - xterm.write('a' + high + String.fromCharCode(i)); - expect(xterm.lines[0][xterm.cols-1][1]).eql('a'); - expect(xterm.lines[1][0][1]).eql(high + String.fromCharCode(i)); - expect(xterm.lines[1][0][1].length).eql(2); - expect(xterm.lines[1][1][1]).eql(' '); - xterm.reset(); - } - }); - it('2 characters per cell over line end without autowrap', function() { - var high = String.fromCharCode(0xD800); - for (var i=0xDC00; i<=0xDCFF; ++i) { - xterm.x = xterm.cols - 1; - xterm.wraparoundMode = false; - xterm.write('a' + high + String.fromCharCode(i)); - expect(xterm.lines[0][xterm.cols-1][1]).eql(high + String.fromCharCode(i)); - expect(xterm.lines[0][xterm.cols-1][1].length).eql(2); - expect(xterm.lines[1][1][1]).eql(' '); - xterm.reset(); - } - }); - it('splitted surrogates', function() { - var high = String.fromCharCode(0xD800); - for (var i=0xDC00; i<=0xDCFF; ++i) { - xterm.write(high); - xterm.write(String.fromCharCode(i)); - var tchar = xterm.lines[0][0]; - expect(tchar[1]).eql(high + String.fromCharCode(i)); - expect(tchar[1].length).eql(2); - expect(tchar[2]).eql(1); - expect(xterm.lines[0][1][1]).eql(' '); - xterm.reset(); - } - }); - }); - - describe('unicode - combining characters', function() { - it('café', function () { - xterm.write('cafe\u0301'); - expect(xterm.lines[0][3][1]).eql('e\u0301'); - expect(xterm.lines[0][3][1].length).eql(2); - expect(xterm.lines[0][3][2]).eql(1); - }); - it('café - end of line', function() { - xterm.x = xterm.cols - 1 - 3; - xterm.write('cafe\u0301'); - expect(xterm.lines[0][xterm.cols-1][1]).eql('e\u0301'); - expect(xterm.lines[0][xterm.cols-1][1].length).eql(2); - expect(xterm.lines[0][xterm.cols-1][2]).eql(1); - expect(xterm.lines[0][1][1]).eql(' '); - expect(xterm.lines[0][1][1].length).eql(1); - expect(xterm.lines[0][1][2]).eql(1); - }); - it('multiple combined é', function() { - xterm.wraparoundMode = true; - xterm.write(Array(100).join('e\u0301')); - for (var i=0; i