[Pkg-javascript-commits] [node-ansi-regex] 01/02: Imported Upstream version 2.0.0

Thorsten Alteholz alteholz at moszumanska.debian.org
Sun Jul 17 13:05:22 UTC 2016


This is an automated email from the git hooks/post-receive script.

alteholz pushed a commit to branch master
in repository node-ansi-regex.

commit 23dd13d1a0c397c3ba3364ecbe114fe7734d00ec
Author: Thorsten Alteholz <debian at alteholz.de>
Date:   Sun Jul 17 15:05:18 2016 +0200

    Imported Upstream version 2.0.0
---
 .editorconfig                       |   2 +-
 .jshintrc                           |   1 -
 index.js                            |   2 +-
 package.json                        |   8 +-
 readme.md                           |   4 +-
 test/{viewCodes.js => ansiCodes.js} | 115 +++++-------------
 test/test.js                        |  97 ++++++++++-----
 test/viewCodes.js                   | 234 ++----------------------------------
 8 files changed, 114 insertions(+), 349 deletions(-)

diff --git a/.editorconfig b/.editorconfig
index 86c8f59..8f9d77e 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -7,7 +7,7 @@ charset = utf-8
 trim_trailing_whitespace = true
 insert_final_newline = true
 
-[package.json]
+[{package.json,*.yml}]
 indent_style = space
 indent_size = 2
 
diff --git a/.jshintrc b/.jshintrc
index 804f8af..9fe1be2 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -2,7 +2,6 @@
 	"node": true,
 	"esnext": true,
 	"bitwise": true,
-	"camelcase": true,
 	"curly": true,
 	"immed": true,
 	"newcap": true,
diff --git a/index.js b/index.js
index 2fcdd1e..4906755 100644
--- a/index.js
+++ b/index.js
@@ -1,4 +1,4 @@
 'use strict';
 module.exports = function () {
-	return /(?:(?:\u001b\[)|\u009b)(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\u001b[A-M]/g;
+	return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;
 };
diff --git a/package.json b/package.json
index 2d71a33..bca8b6d 100644
--- a/package.json
+++ b/package.json
@@ -1,17 +1,17 @@
 {
   "name": "ansi-regex",
-  "version": "1.1.1",
+  "version": "2.0.0",
   "description": "Regular expression for matching ANSI escape codes",
   "license": "MIT",
   "repository": "sindresorhus/ansi-regex",
   "author": {
     "name": "Sindre Sorhus",
     "email": "sindresorhus at gmail.com",
-    "url": "http://sindresorhus.com"
+    "url": "sindresorhus.com"
   },
   "maintainers": [
-    "Sindre Sorhus <sindresorhus at gmail.com> (http://sindresorhus.com)",
-    "Joshua Appelman <jappelman at xebia.com> (http://jbnicolai.com)"
+    "Sindre Sorhus <sindresorhus at gmail.com> (sindresorhus.com)",
+    "Joshua Appelman <jappelman at xebia.com> (jbnicolai.com)"
   ],
   "engines": {
     "node": ">=0.10.0"
diff --git a/readme.md b/readme.md
index ae876e7..1a4894e 100644
--- a/readme.md
+++ b/readme.md
@@ -5,7 +5,7 @@
 
 ## Install
 
-```sh
+```
 $ npm install --save ansi-regex
 ```
 
@@ -25,8 +25,6 @@ ansiRegex().test('cake');
 //=> ['\u001b[4m', '\u001b[0m']
 ```
 
-*It's a function so you can create multiple instances. Regexes with the global flag will have the `.lastIndex` property changed for each call to methods on the instance. Therefore reusing the instance with multiple calls will not work as expected for `.test()`.*
-
 
 ## License
 
diff --git a/test/viewCodes.js b/test/ansiCodes.js
similarity index 75%
copy from test/viewCodes.js
copy to test/ansiCodes.js
index 1090b25..4c3c0fb 100644
--- a/test/viewCodes.js
+++ b/test/ansiCodes.js
@@ -1,11 +1,7 @@
 'use strict';
-var ansiRegex = require('../');
-var allCodes = {};
-var supported = [];
-var unsupported = [];
 
 // from http://www.umich.edu/~archive/apple2/misc/programmers/vt100.codes.txt
-var vt52Codes = {
+exports.vt52Codes = {
 	'A': ['Cursor up'],
 	'B': ['Cursor down'],
 	'C': ['Cursor right'],
@@ -23,32 +19,32 @@ var vt52Codes = {
 };
 
 // from http://www.umich.edu/~archive/apple2/misc/programmers/vt100.codes.txt
-var ansiCompatible = {
-	'[176A':['Cursor up Pn lines'],
-	'[176B':['Cursor down Pn lines'],
-	'[176C':['Cursor forward Pn characters (right)'],
-	'[176D':['Cursor backward Pn characters (left)'],
-	'[176;176H':['Direct cursor addressing, where Pl is line#, Pc is column#'],
-	'[176;176f':['Direct cursor addressing, where Pl is line#, Pc is column#'],
-
-	'7':['Save cursor and attributes'],
-	'8':['Restore cursor and attributes'],
-
-	'#3':['Change this line to double-height top half'],
-	'#4':['Change this line to double-height bottom half'],
-	'#5':['Change this line to single-width single-height'],
-	'#6':['Change this line to double-width single-height'],
+exports.ansiCompatible = {
+	'[176A': ['Cursor up Pn lines'],
+	'[176B': ['Cursor down Pn lines'],
+	'[176C': ['Cursor forward Pn characters (right)'],
+	'[176D': ['Cursor backward Pn characters (left)'],
+	'[176;176H': ['Direct cursor addressing, where Pl is line#, Pc is column#'],
+	'[176;176f': ['Direct cursor addressing, where Pl is line#, Pc is column#'],
+
+	'7': ['Save cursor and attributes'],
+	'8': ['Restore cursor and attributes'],
+
+	'#3': ['Change this line to double-height top half'],
+	'#4': ['Change this line to double-height bottom half'],
+	'#5': ['Change this line to single-width single-height'],
+	'#6': ['Change this line to double-width single-height'],
 
 	'[176;176;176;176;176;176;176m': ['Text Styles'],
 	'[176;176;176;176;176;176;176q': ['Programmable LEDs'],
 
-	'[K':['Erase from cursor to end of line'],
-	'[0K':['Same'],
-	'[1K':['Erase from beginning of line to cursor'],
-	'[2K':['Erase line containing cursor'],
-	'[J':['Erase from cursor to end of screen'],
-	'[0J':['Same'],
-	'[2J':['Erase entire screen'],
+	'[K': ['Erase from cursor to end of line'],
+	'[0K': ['Same'],
+	'[1K': ['Erase from beginning of line to cursor'],
+	'[2K': ['Erase line containing cursor'],
+	'[J': ['Erase from cursor to end of screen'],
+	'[0J': ['Same'],
+	'[2J': ['Erase entire screen'],
 
 	'(A': ['United Kingdom (UK) (Character Set G0)'],
 	')A': ['United Kingdom (UK) (Character Set G1)'],
@@ -76,11 +72,10 @@ var ansiCompatible = {
 	'c': ['Causes power-up reset routine to be executed'],
 	'#8': ['Fill screen with "E"'],
 	'[2;176y': ['Invoke Test(s), where Ps is a decimal computed by adding the numbers of the desired tests to be executed']
-
 };
 
 // from http://ascii-table.com/ansi-escape-sequences-vt-100.php
-var commonCodes = {
+exports.commonCodes = {
 	'[176A': ['Move cursor up n lines', 'CUU'],
 	'[176B': ['Move cursor down n lines', 'CUD'],
 	'[176C': ['Move cursor right n lines', 'CUF'],
@@ -173,10 +168,10 @@ var commonCodes = {
 	'[c': ['Identify what terminal type', 'DA'],
 	'[0c': ['Identify what terminal type (another)', 'DA'],
 	'c': ['Reset terminal to initial state', 'RIS'],
-	'[2;1y': [ 'Confidence power up test', 'DECTST'],
-	'[2;2y': [ 'Confidence loopback test', 'DECTST'],
-	'[2;9y': [ 'Repeat power up test', 'DECTST'],
-	'[2;10y': [ 'Repeat loopback test', 'DECTST'],
+	'[2;1y': ['Confidence power up test', 'DECTST'],
+	'[2;2y': ['Confidence loopback test', 'DECTST'],
+	'[2;9y': ['Repeat power up test', 'DECTST'],
+	'[2;10y': ['Repeat loopback test', 'DECTST'],
 	'[0q': ['Turn off all four leds', 'DECLL0'],
 	'[1q': ['Turn on LED #1', 'DECLL1'],
 	'[2q': ['Turn on LED #2', 'DECLL2'],
@@ -185,7 +180,7 @@ var commonCodes = {
 };
 
 // from http://ascii-table.com/ansi-escape-sequences-vt-100.php
-var otherCodes = {
+exports.otherCode = {
 	'7': ['Save cursor position and attributes', 'DECSC'],
 	'8': ['Restore cursor position and attributes', 'DECSC'],
 
@@ -214,55 +209,3 @@ var otherCodes = {
 	'3n': ['Response: terminal is not OK', 'DSR'],
 	'6n': ['Get cursor position', 'DSR']
 };
-
-function addCodesToTest(codes) {
-	for (var code in codes){
-		allCodes[code] = codes[code];
-	}
-}
-
-function identifySupportedCodes() {
-	var codeSupport = {};
-
-	for (var code in allCodes) {
-		codeSupport = {
-			code : code,
-			matches: ('\u001b'+code).match( ansiRegex() ),
-			description: allCodes[code][0],
-			// neighbourDelimitWorks: ('\u001b'+code+'a209ZELLO').match(ansiRegex({vt100: true}))[0] === ('\u001b'+code).match(ansiRegex({vt100: true}))[0],
-		};
-
-		if (codeSupport.matches !== null && codeSupport.matches[0] === '\u001b' + code) {
-			supported.push(codeSupport);
-		} else {
-			unsupported.push(codeSupport);
-		}
-
-	}
-}
-
-function displaySupport() {
-	process.stdout.write('\u001b[32m');
-
-	console.log('SUPPORTED');
-	for (var i = 0; i < supported.length; i++) {
-		console.log(supported[i]);
-	}
-
-	process.stdout.write('\u001b[31m');
-	console.log('UNSUPPORTED');
-
-	for (var i = 0; i < unsupported.length; i++) {
-		console.log(unsupported[i]);
-	}
-
-	process.stdout.write('\u001b[0m');
-}
-
-addCodesToTest(vt52Codes);
-addCodesToTest(ansiCompatible);
-addCodesToTest(commonCodes);
-addCodesToTest(otherCodes);
-
-identifySupportedCodes();
-displaySupport();
diff --git a/test/test.js b/test/test.js
index f93b6bc..35ffa98 100644
--- a/test/test.js
+++ b/test/test.js
@@ -1,43 +1,80 @@
 'use strict';
 var assert = require('assert');
 var ansiRegex = require('../');
+var ansiCodes = require('./ansiCodes.js');
+
+var consumptionChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+1234567890-=[]{};\':"./>?,<\\|';
 
 // testing against codes found at: http://ascii-table.com/ansi-escape-sequences-vt-100.php
+describe('practical tests', function () {
+	it('should match ansi code in a string', function () {
+		assert.equal(ansiRegex().test('foo\u001b[4mcake\u001b[0m'), true);
+		assert.equal(ansiRegex().test('\u001b[4mcake\u001b[0m'), true);
+		assert.equal(ansiRegex().test('foo\u001b[4mcake\u001b[0m'), true);
+		assert.equal(ansiRegex().test('\u001b[0m\u001b[4m\u001b[42m\u001b[31mfoo\u001b[39m\u001b[49m\u001b[24mfoo\u001b[0m'), true);
+		assert.equal(ansiRegex().test('foo\u001b[mfoo'), true);
+	});
 
-it('should match ansi code in a string', function (done) {
-	assert.equal(ansiRegex().test('foo\u001b[4mcake\u001b[0m'), true);
-	assert.equal(ansiRegex().test('\u001b[4mcake\u001b[0m'), true);
-	assert.equal(ansiRegex().test('foo\u001b[4mcake\u001b[0m'), true);
-	assert.equal(ansiRegex().test('\u001b[0m\u001b[4m\u001b[42m\u001b[31mfoo\u001b[39m\u001b[49m\u001b[24mfoo\u001b[0m'), true);
-	assert.equal(ansiRegex().test('foo\u001b[mfoo'), true);
-	done();
-});
+	it('should match ansi code from ls command', function () {
+		assert.equal(ansiRegex().test('\u001b[00;38;5;244m\u001b[m\u001b[00;38;5;33mfoo\u001b[0m'), true);
+	});
 
-it('should match ansi code from ls command', function (done) {
-	assert.equal(ansiRegex().test('\u001b[00;38;5;244m\u001b[m\u001b[00;38;5;33mfoo\u001b[0m'), true);
-	done();
-});
+	it('should match reset;setfg;setbg;italics;strike;underline sequence in a string', function () {
+		assert.equal(ansiRegex().test('\u001b[0;33;49;3;9;4mbar\u001b[0m'), true);
+		assert.equal('foo\u001b[0;33;49;3;9;4mbar'.match(ansiRegex())[0], '\u001b[0;33;49;3;9;4m');
+	});
 
-it('should match reset;setfg;setbg;italics;strike;underline sequence in a string', function (done) {
-	assert.equal(ansiRegex().test('\u001b[0;33;49;3;9;4mbar\u001b[0m'), true);
-	assert.equal(('foo\u001b[0;33;49;3;9;4mbar').match(ansiRegex())[0], '\u001b[0;33;49;3;9;4m');
-	done();
-});
+	it('should match clear tabs sequence in a string', function () {
+		assert.equal(ansiRegex().test('foo\u001b[0gbar'), true);
+		assert.equal('foo\u001b[0gbar'.match(ansiRegex())[0], '\u001b[0g');
+	});
 
-it('should match clear tabs sequence in a string', function (done) {
-	assert.equal(ansiRegex().test('foo\u001b[0gbar'), true);
-	assert.equal(('foo\u001b[0gbar').match(ansiRegex())[0], '\u001b[0g');
-	done();
-});
+	it('should match clear line from cursor right in a string', function () {
+		assert.equal(ansiRegex().test('foo\u001b[Kbar'), true);
+		assert.equal('foo\u001b[Kbar'.match(ansiRegex())[0], '\u001b[K');
+	});
 
-it('should match clear line from cursor right in a string', function (done) {
-	assert.equal(ansiRegex().test('foo\u001b[Kbar'), true);
-	assert.equal(('foo\u001b[Kbar').match(ansiRegex())[0], '\u001b[K');
-	done();
+	it('should match clear screen in a string', function () {
+		assert.equal(ansiRegex().test('foo\u001b[2Jbar'), true);
+		assert.equal('foo\u001b[2Jbar'.match(ansiRegex())[0], '\u001b[2J');
+	});
 });
 
-it('should match clear screen in a string', function (done) {
-	assert.equal(ansiRegex().test('foo\u001b[2Jbar'), true);
-	assert.equal(('foo\u001b[2Jbar').match(ansiRegex())[0], '\u001b[2J');
-	done();
+// testing against extended codes (excluding codes ending in 0-9)
+describe('extended tests', function () {
+	for (var codeSet in ansiCodes) {
+		describe(codeSet, function () {
+			for (var code in ansiCodes[codeSet]) {
+				var codeInfo = ansiCodes[codeSet][code];
+				var skip = !!code.match(/[0-9]$/);
+				var skipText = skip ? '[SKIP] ' : '';
+				var ecode = '\u001b' + code;
+
+				it(skipText + code + ' -> ' + codeInfo[0], function (ecode, skip) {
+					if (skip) {
+						return;
+					}
+
+					var string = 'hel' + ecode + 'lo';
+					assert.equal(ansiRegex().test(string), true);
+					assert.equal(string.match(ansiRegex())[0], ecode);
+					assert.equal(string.replace(ansiRegex(), ''), 'hello');
+				}.bind(null, ecode, skip));
+
+				it(skipText + code + ' should not overconsume', function (ecode, skip) {
+					if (skip) {
+						return;
+					}
+
+					for (var i = 0; i < consumptionChars.length; i++) {
+						var c = consumptionChars[i];
+						var string = ecode + c;
+						assert.equal(ansiRegex().test(string), true);
+						assert.equal(string.match(ansiRegex())[0], ecode);
+						assert.equal(string.replace(ansiRegex(), ''), c);
+					}
+				}.bind(null, ecode, skip));
+			}
+		});
+	}
 });
diff --git a/test/viewCodes.js b/test/viewCodes.js
index 1090b25..25125dc 100644
--- a/test/viewCodes.js
+++ b/test/viewCodes.js
@@ -1,222 +1,12 @@
 'use strict';
 var ansiRegex = require('../');
+var ansiCodes = require('./ansiCodes');
 var allCodes = {};
 var supported = [];
 var unsupported = [];
 
-// from http://www.umich.edu/~archive/apple2/misc/programmers/vt100.codes.txt
-var vt52Codes = {
-	'A': ['Cursor up'],
-	'B': ['Cursor down'],
-	'C': ['Cursor right'],
-	'D': ['Cursor left'],
-	'H': ['Cursor to home'],
-	'I': ['Reverse line feed'],
-	'J': ['Erase to end of screen'],
-	'K': ['Erase to end of line'],
-	'Z': ['Identify'],
-	'=': ['Enter alternate keypad mode'],
-	'>': ['Exit alternate keypad mode'],
-	'1': ['Graphics processor on'],
-	'2': ['Graphics processor off'],
-	'<': ['Enter ANSI mode']
-};
-
-// from http://www.umich.edu/~archive/apple2/misc/programmers/vt100.codes.txt
-var ansiCompatible = {
-	'[176A':['Cursor up Pn lines'],
-	'[176B':['Cursor down Pn lines'],
-	'[176C':['Cursor forward Pn characters (right)'],
-	'[176D':['Cursor backward Pn characters (left)'],
-	'[176;176H':['Direct cursor addressing, where Pl is line#, Pc is column#'],
-	'[176;176f':['Direct cursor addressing, where Pl is line#, Pc is column#'],
-
-	'7':['Save cursor and attributes'],
-	'8':['Restore cursor and attributes'],
-
-	'#3':['Change this line to double-height top half'],
-	'#4':['Change this line to double-height bottom half'],
-	'#5':['Change this line to single-width single-height'],
-	'#6':['Change this line to double-width single-height'],
-
-	'[176;176;176;176;176;176;176m': ['Text Styles'],
-	'[176;176;176;176;176;176;176q': ['Programmable LEDs'],
-
-	'[K':['Erase from cursor to end of line'],
-	'[0K':['Same'],
-	'[1K':['Erase from beginning of line to cursor'],
-	'[2K':['Erase line containing cursor'],
-	'[J':['Erase from cursor to end of screen'],
-	'[0J':['Same'],
-	'[2J':['Erase entire screen'],
-
-	'(A': ['United Kingdom (UK) (Character Set G0)'],
-	')A': ['United Kingdom (UK) (Character Set G1)'],
-	'(B': ['United States (USASCII) (Character Set G0)'],
-	')B': ['United States (USASCII) (Character Set G1)'],
-	'(0': ['Special graphics/line drawing set (Character Set G0)'],
-	')0': ['Special graphics/line drawing set (Character Set G1)'],
-	'(1': ['Alternative character ROM (Character Set G0)'],
-	')1': ['Alternative character ROM (Character Set G1)'],
-	'(2': ['Alternative graphic ROM (Character Set G0)'],
-	')2': ['Alternative graphic ROM (Character Set G1)'],
-
-	'H': ['Set tab at current column'],
-	'[g': ['Clear tab at current column'],
-	'[0g': ['Same'],
-	'[3g': ['Clear all tabs'],
-
-	'[6n': ['Cursor position report'],
-	'[176;176R': ['(response; Pl=line#; Pc=column#)'],
-	'[5n': ['Status report'],
-	'[c': ['(response; terminal Ok)'],
-	'[0c': ['(response; teminal not Ok)'],
-	'[?1;176c': ['response; where Ps is option present:'],
-
-	'c': ['Causes power-up reset routine to be executed'],
-	'#8': ['Fill screen with "E"'],
-	'[2;176y': ['Invoke Test(s), where Ps is a decimal computed by adding the numbers of the desired tests to be executed']
-
-};
-
-// from http://ascii-table.com/ansi-escape-sequences-vt-100.php
-var commonCodes = {
-	'[176A': ['Move cursor up n lines', 'CUU'],
-	'[176B': ['Move cursor down n lines', 'CUD'],
-	'[176C': ['Move cursor right n lines', 'CUF'],
-	'[176D': ['Move cursor left n lines', 'CUB'],
-	'[176;176H': ['Move cursor to screen location v,h', 'CUP'],
-	'[176;176f': ['Move cursor to screen location v,h', 'CUP'],
-	'[176;176r': ['Set top and bottom lines of a window', 'DECSTBM'],
-	'[176;176R': ['Response: cursor is at v,h', 'CPR'],
-
-	'[?1;1760c': ['Response: terminal type code n', 'DA'],
-
-	'[20h': ['Set new line mode', 'LMN'],
-	'[?1h': ['Set cursor key to application', 'DECCKM'],
-	'[?3h': ['Set number of columns to 132', 'DECCOLM'],
-	'[?4h': ['Set smooth scrolling', 'DECSCLM'],
-	'[?5h': ['Set reverse video on screen', 'DECSCNM'],
-	'[?6h': ['Set origin to relative', 'DECOM'],
-	'[?7h': ['Set auto-wrap mode', 'DECAWM'],
-	'[?8h': ['Set auto-repeat mode', 'DECARM'],
-	'[?9h': ['Set interlacing mode', 'DECINLM'],
-	'[20l': ['Set line feed mode', 'LMN'],
-	'[?1l': ['Set cursor key to cursor', 'DECCKM'],
-	'[?2l': ['Set VT52 (versus ANSI)', 'DECANM'],
-	'[?3l': ['Set number of columns to 80', 'DECCOLM'],
-	'[?4l': ['Set jump scrolling', 'DECSCLM'],
-	'[?5l': ['Set normal video on screen', 'DECSCNM'],
-	'[?6l': ['Set origin to absolute', 'DECOM'],
-	'[?7l': ['Reset auto-wrap mode', 'DECAWM'],
-	'[?8l': ['Reset auto-repeat mode', 'DECARM'],
-	'[?9l': ['Reset interlacing mode', 'DECINLM'],
-
-	'N': ['Set single shift 2', 'SS2'],
-	'O': ['Set single shift 3', 'SS3'],
-
-	'[m': ['Turn off character attributes', 'SGR0'],
-	'[0m': ['Turn off character attributes', 'SGR0'],
-	'[1m': ['Turn bold mode on', 'SGR1'],
-	'[2m': ['Turn low intensity mode on', 'SGR2'],
-	'[4m': ['Turn underline mode on', 'SGR4'],
-	'[5m': ['Turn blinking mode on', 'SGR5'],
-	'[7m': ['Turn reverse video on', 'SGR7'],
-	'[8m': ['Turn invisible text mode on', 'SGR8'],
-
-	'[9m': ['strikethrough on', '--'],
-	'[22m': ['bold off (see below)', '--'],
-	'[23m': ['italics off', '--'],
-	'[24m': ['underline off', '--'],
-	'[27m': ['inverse off', '--'],
-	'[29m': ['strikethrough off', '--'],
-	'[30m': ['set foreground color to black', '--'],
-	'[31m': ['set foreground color to red', '--'],
-	'[32m': ['set foreground color to green', '--'],
-	'[33m': ['set foreground color to yellow', '--'],
-	'[34m': ['set foreground color to blue', '--'],
-	'[35m': ['set foreground color to magenta (purple)', '--'],
-	'[36m': ['set foreground color to cyan', '--'],
-	'[37m': ['set foreground color to white', '--'],
-	'[39m': ['set foreground color to default (white)', '--'],
-	'[40m': ['set background color to black', '--'],
-	'[41m': ['set background color to red', '--'],
-	'[42m': ['set background color to green', '--'],
-	'[43m': ['set background color to yellow', '--'],
-	'[44m': ['set background color to blue', '--'],
-	'[45m': ['set background color to magenta (purple)', '--'],
-	'[46m': ['set background color to cyan', '--'],
-	'[47m': ['set background color to white', '--'],
-	'[49m': ['set background color to default (black)', '--'],
-
-	'[H': ['Move cursor to upper left corner', 'cursorhome'],
-	'[;H': ['Move cursor to upper left corner', 'cursorhome'],
-	'[f': ['Move cursor to upper left corner', 'hvhome'],
-	'[;f': ['Move cursor to upper left corner', 'hvhome'],
-	'M': ['Move/scroll window down one line', 'RI'],
-	'E': ['Move to next line', 'NEL'],
-
-	'H': ['Set a tab at the current column', 'HTS'],
-	'[g': ['Clear a tab at the current column', 'TBC'],
-	'[0g': ['Clear a tab at the current column', 'TBC'],
-	'[3g': ['Clear all tabs', 'TBC'],
-
-	'[K': ['Clear line from cursor right', 'EL0'],
-	'[0K': ['Clear line from cursor right', 'EL0'],
-	'[1K': ['Clear line from cursor left', 'EL1'],
-	'[2K': ['Clear entire line', 'EL2'],
-	'[J': ['Clear screen from cursor down', 'ED0'],
-	'[0J': ['Clear screen from cursor down', 'ED0'],
-	'[1J': ['Clear screen from cursor up', 'ED1'],
-	'[2J': ['Clear entire screen', 'ED2'],
-
-	'[c': ['Identify what terminal type', 'DA'],
-	'[0c': ['Identify what terminal type (another)', 'DA'],
-	'c': ['Reset terminal to initial state', 'RIS'],
-	'[2;1y': [ 'Confidence power up test', 'DECTST'],
-	'[2;2y': [ 'Confidence loopback test', 'DECTST'],
-	'[2;9y': [ 'Repeat power up test', 'DECTST'],
-	'[2;10y': [ 'Repeat loopback test', 'DECTST'],
-	'[0q': ['Turn off all four leds', 'DECLL0'],
-	'[1q': ['Turn on LED #1', 'DECLL1'],
-	'[2q': ['Turn on LED #2', 'DECLL2'],
-	'[3q': ['Turn on LED #3', 'DECLL3'],
-	'[4q': ['Turn on LED #4', 'DECLL4']
-};
-
-// from http://ascii-table.com/ansi-escape-sequences-vt-100.php
-var otherCodes = {
-	'7': ['Save cursor position and attributes', 'DECSC'],
-	'8': ['Restore cursor position and attributes', 'DECSC'],
-
-	'=': ['Set alternate keypad mode', 'DECKPAM'],
-	'>': ['Set numeric keypad mode', 'DECKPNM'],
-
-	'(A': ['Set United Kingdom G0 character set', 'setukg0'],
-	')A': ['Set United Kingdom G1 character set', 'setukg1'],
-	'(B': ['Set United States G0 character set', 'setusg0'],
-	')B': ['Set United States G1 character set', 'setusg1'],
-	'(0': ['Set G0 special chars. & line set', 'setspecg0'],
-	')0': ['Set G1 special chars. & line set', 'setspecg1'],
-	'(1': ['Set G0 alternate character ROM', 'setaltg0'],
-	')1': ['Set G1 alternate character ROM', 'setaltg1'],
-	'(2': ['Set G0 alt char ROM and spec. graphics', 'setaltspecg0'],
-	')2': ['Set G1 alt char ROM and spec. graphics', 'setaltspecg1'],
-
-	'#3': ['Double-height letters, top half', 'DECDHL'],
-	'#4': ['Double-height letters, bottom half', 'DECDHL'],
-	'#5': ['Single width, single height letters', 'DECSWL'],
-	'#6': ['Double width, single height letters', 'DECDWL'],
-	'#8': ['Screen alignment display', 'DECALN'],
-
-	'5n': ['Device status report', 'DSR'],
-	'0n': ['Response: terminal is OK', 'DSR'],
-	'3n': ['Response: terminal is not OK', 'DSR'],
-	'6n': ['Get cursor position', 'DSR']
-};
-
 function addCodesToTest(codes) {
-	for (var code in codes){
+	for (var code in codes) {
 		allCodes[code] = codes[code];
 	}
 }
@@ -226,10 +16,9 @@ function identifySupportedCodes() {
 
 	for (var code in allCodes) {
 		codeSupport = {
-			code : code,
-			matches: ('\u001b'+code).match( ansiRegex() ),
-			description: allCodes[code][0],
-			// neighbourDelimitWorks: ('\u001b'+code+'a209ZELLO').match(ansiRegex({vt100: true}))[0] === ('\u001b'+code).match(ansiRegex({vt100: true}))[0],
+			code: code,
+			matches: ('\u001b' + code).match(ansiRegex()),
+			description: allCodes[code][0]
 		};
 
 		if (codeSupport.matches !== null && codeSupport.matches[0] === '\u001b' + code) {
@@ -237,7 +26,6 @@ function identifySupportedCodes() {
 		} else {
 			unsupported.push(codeSupport);
 		}
-
 	}
 }
 
@@ -252,17 +40,17 @@ function displaySupport() {
 	process.stdout.write('\u001b[31m');
 	console.log('UNSUPPORTED');
 
-	for (var i = 0; i < unsupported.length; i++) {
-		console.log(unsupported[i]);
+	for (var j = 0; j < unsupported.length; j++) {
+		console.log(unsupported[j]);
 	}
 
 	process.stdout.write('\u001b[0m');
 }
 
-addCodesToTest(vt52Codes);
-addCodesToTest(ansiCompatible);
-addCodesToTest(commonCodes);
-addCodesToTest(otherCodes);
+addCodesToTest(ansiCodes.vt52Codes);
+addCodesToTest(ansiCodes.ansiCompatible);
+addCodesToTest(ansiCodes.commonCodes);
+addCodesToTest(ansiCodes.otherCodes);
 
 identifySupportedCodes();
 displaySupport();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-ansi-regex.git



More information about the Pkg-javascript-commits mailing list