minor changes to sgr handling.
This commit is contained in:
parent
9eaf45acab
commit
268fbfef6a
|
@ -562,7 +562,6 @@ function Element(options) {
|
||||||
// this.position.padding = options.padding || 0;
|
// this.position.padding = options.padding || 0;
|
||||||
// this.position.margin = options.margin || 0;
|
// this.position.margin = options.margin || 0;
|
||||||
|
|
||||||
this.hidden = options.hidden || false;
|
|
||||||
this.fg = convert(options.fg);
|
this.fg = convert(options.fg);
|
||||||
this.bg = convert(options.bg);
|
this.bg = convert(options.bg);
|
||||||
this.bold = options.bold ? 1 : 0;
|
this.bold = options.bold ? 1 : 0;
|
||||||
|
@ -571,10 +570,12 @@ function Element(options) {
|
||||||
this.inverse = options.inverse ? 8 : 0;
|
this.inverse = options.inverse ? 8 : 0;
|
||||||
this.invisible = options.invisible ? 16 : 0;
|
this.invisible = options.invisible ? 16 : 0;
|
||||||
|
|
||||||
|
this.hidden = options.hidden || false;
|
||||||
this.fixed = options.fixed || false;
|
this.fixed = options.fixed || false;
|
||||||
this.align = options.align || 'left';
|
this.align = options.align || 'left';
|
||||||
this.shrink = options.shrink;
|
this.shrink = options.shrink;
|
||||||
this.padding = options.padding || 0;
|
this.padding = options.padding || 0;
|
||||||
|
|
||||||
this.border = options.border;
|
this.border = options.border;
|
||||||
if (this.border) {
|
if (this.border) {
|
||||||
this.border.type = this.border.type || 'bg';
|
this.border.type = this.border.type || 'bg';
|
||||||
|
@ -1082,7 +1083,7 @@ Box.prototype.render = function(stop) {
|
||||||
var cci = ci - (this._clines[this.childBase - 1].length + 1);
|
var cci = ci - (this._clines[this.childBase - 1].length + 1);
|
||||||
for (; cci < ci; cci++) {
|
for (; cci < ci; cci++) {
|
||||||
if (content[cci] === '\x1b') {
|
if (content[cci] === '\x1b') {
|
||||||
if (c = /^\x1b\[(?:\d+(?:;\d+)*)?m/.exec(content.substring(cci))) {
|
if (c = /^\x1b\[[\d;]*m/.exec(content.substring(cci))) {
|
||||||
attr = attrCode(c[0], attr);
|
attr = attrCode(c[0], attr);
|
||||||
cci += c[0].length - 1;
|
cci += c[0].length - 1;
|
||||||
}
|
}
|
||||||
|
@ -1114,11 +1115,13 @@ outer:
|
||||||
|
|
||||||
// Handle escape codes.
|
// Handle escape codes.
|
||||||
while (ch === '\x1b') {
|
while (ch === '\x1b') {
|
||||||
if (c = /^\x1b\[(?:\d+(?:;\d+)*)?m/.exec(content.substring(ci - 1))) {
|
if (c = /^\x1b\[[\d;]*m/.exec(content.substring(ci - 1))) {
|
||||||
ci += c[0].length - 1;
|
ci += c[0].length - 1;
|
||||||
attr = attrCode(c[0], attr);
|
attr = attrCode(c[0], attr);
|
||||||
ch = content[ci] || ' ';
|
ch = content[ci] || ' ';
|
||||||
ci++;
|
ci++;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1324,11 +1327,13 @@ Text.prototype.render = function(stop) {
|
||||||
|
|
||||||
// Handle escape codes.
|
// Handle escape codes.
|
||||||
while (ch === '\x1b') {
|
while (ch === '\x1b') {
|
||||||
if (c = /^\x1b\[(?:\d+(?:;\d+)*)?m/.exec(content.substring(ci - 1))) {
|
if (c = /^\x1b\[[\d;]*m/.exec(content.substring(ci - 1))) {
|
||||||
ci += c[0].length - 1;
|
ci += c[0].length - 1;
|
||||||
attr = attrCode(c[0], attr);
|
attr = attrCode(c[0], attr);
|
||||||
ch = content[ci];
|
ch = content[ci];
|
||||||
ci++;
|
ci++;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1880,7 +1885,10 @@ function attrCode(code, cur) {
|
||||||
var bg = cur & 0x1ff;
|
var bg = cur & 0x1ff;
|
||||||
var c, i;
|
var c, i;
|
||||||
|
|
||||||
code = /^\x1b\[([^m]*)m$/.exec(code)[1].split(';');
|
code = /^\x1b\[([\d;]*)m$/.exec(code);
|
||||||
|
if (!code) return cur;
|
||||||
|
|
||||||
|
code = code[1].split(';');
|
||||||
if (!code[0]) code[0] = '0';
|
if (!code[0]) code[0] = '0';
|
||||||
|
|
||||||
for (i = 0; i < code.length; i++) {
|
for (i = 0; i < code.length; i++) {
|
||||||
|
@ -2012,6 +2020,9 @@ function wrapContent(content, width) {
|
||||||
while (line.length > width) {
|
while (line.length > width) {
|
||||||
for (i = 0, total = 0; i < line.length; i++) {
|
for (i = 0, total = 0; i < line.length; i++) {
|
||||||
while (line[i] === '\x1b') {
|
while (line[i] === '\x1b') {
|
||||||
|
//var c = /^\x1b\[[\d;]*m/.exec(line.substring(i));
|
||||||
|
//if (!c) { i++; break; }
|
||||||
|
//i += c[0].length;
|
||||||
while (line[i] && line[i++] !== 'm');
|
while (line[i] && line[i++] !== 'm');
|
||||||
}
|
}
|
||||||
if (!line[i]) break;
|
if (!line[i]) break;
|
||||||
|
|
Loading…
Reference in New Issue