mirror of
https://github.com/chjj/blessed.git
synced 2026-02-06 13:51:52 +00:00
cleanup parsers
This commit is contained in:
parent
bc20f65f85
commit
4703d45fef
62
lib/tput.js
62
lib/tput.js
@ -59,7 +59,9 @@ Tput.prototype.readTerminfo = function() {
|
||||
Tput.prototype.parseTerminfo = function(data) {
|
||||
var info = {}
|
||||
, l = data.length
|
||||
, i = 0;
|
||||
, i = 0
|
||||
, v
|
||||
, o;
|
||||
|
||||
var h = info.header = {
|
||||
dataSize: data.length,
|
||||
@ -102,10 +104,10 @@ Tput.prototype.parseTerminfo = function(data) {
|
||||
// Same order as <term.h>
|
||||
info.bools = {};
|
||||
l = i + h.boolCount;
|
||||
var o = 0, b;
|
||||
o = 0;
|
||||
for (; i < l; i++) {
|
||||
b = Tput.bools[o++] || 'OFFSET: ' + (o - 1);
|
||||
info.bools[b] = !!data[i];
|
||||
v = Tput.bools[o++] || 'OFFSET: ' + (o - 1);
|
||||
info.bools[v] = !!data[i];
|
||||
}
|
||||
|
||||
// Null byte in between to make sure numbers begin on an even byte.
|
||||
@ -117,26 +119,26 @@ Tput.prototype.parseTerminfo = function(data) {
|
||||
// Numbers Section
|
||||
info.numbers = {};
|
||||
l = i + h.numCount * 2;
|
||||
var o = 0, n;
|
||||
o = 0;
|
||||
for (; i < l; i += 2) {
|
||||
n = Tput.numbers[o++] || 'OFFSET: ' + (o - 1);
|
||||
v = Tput.numbers[o++] || 'OFFSET: ' + (o - 1);
|
||||
if (data[i + 1] === 0377 && data[i] === 0377) {
|
||||
info.numbers[n] = -1;
|
||||
info.numbers[v] = -1;
|
||||
} else {
|
||||
info.numbers[n] = (data[i + 1] << 8) | data[i];
|
||||
info.numbers[v] = (data[i + 1] << 8) | data[i];
|
||||
}
|
||||
}
|
||||
|
||||
// Strings Section
|
||||
info.strings = {};
|
||||
l = i + h.strCount * 2;
|
||||
var o = 0, s;
|
||||
o = 0;
|
||||
for (; i < l; i += 2) {
|
||||
s = Tput.strings[o++] || 'OFFSET: ' + (o - 1);
|
||||
v = Tput.strings[o++] || 'OFFSET: ' + (o - 1);
|
||||
if (data[i + 1] === 0377 && data[i] === 0377) {
|
||||
info.strings[s] = -1;
|
||||
info.strings[v] = -1;
|
||||
} else {
|
||||
info.strings[s] = (data[i + 1] << 8) | data[i];
|
||||
info.strings[v] = (data[i + 1] << 8) | data[i];
|
||||
}
|
||||
}
|
||||
|
||||
@ -179,7 +181,9 @@ Tput.prototype.parseTerminfo = function(data) {
|
||||
Tput.prototype.parseExtended = function(data) {
|
||||
var info = {}
|
||||
, l = data.length
|
||||
, i = 0;
|
||||
, i = 0
|
||||
, v
|
||||
, o;
|
||||
|
||||
var h = info.header = {
|
||||
dataSize: data.length,
|
||||
@ -204,10 +208,10 @@ Tput.prototype.parseExtended = function(data) {
|
||||
// Same order as <term.h>
|
||||
info.bools = {};
|
||||
l = i + h.boolCount;
|
||||
var o = 36 + 1, b;
|
||||
o = 36 + 1;
|
||||
for (; i < l; i++) {
|
||||
b = Tput.bools[o++] || 'OFFSET: ' + (o - 1);
|
||||
info.bools[b] = !!data[i];
|
||||
v = Tput.bools[o++] || 'OFFSET: ' + (o - 1);
|
||||
info.bools[v] = !!data[i];
|
||||
}
|
||||
|
||||
// Null byte in between to make sure numbers begin on an even byte.
|
||||
@ -219,26 +223,26 @@ Tput.prototype.parseExtended = function(data) {
|
||||
// Numbers Section
|
||||
info.numbers = {};
|
||||
l = i + h.numCount * 2;
|
||||
var o = 32 + 1, n;
|
||||
o = 32 + 1;
|
||||
for (; i < l; i += 2) {
|
||||
n = Tput.numbers[o++] || 'OFFSET: ' + (o - 1);
|
||||
v = Tput.numbers[o++] || 'OFFSET: ' + (o - 1);
|
||||
if (data[i + 1] === 0377 && data[i] === 0377) {
|
||||
info.numbers[n] = -1;
|
||||
info.numbers[v] = -1;
|
||||
} else {
|
||||
info.numbers[n] = (data[i + 1] << 8) | data[i];
|
||||
info.numbers[v] = (data[i + 1] << 8) | data[i];
|
||||
}
|
||||
}
|
||||
|
||||
// Strings Section
|
||||
info.strings = {};
|
||||
l = i + h.strCount * 2;
|
||||
var o = 393 + 1, s;
|
||||
o = 393 + 1;
|
||||
for (; i < l; i += 2) {
|
||||
s = Tput.strings[o++] || 'OFFSET: ' + (o - 1);
|
||||
v = Tput.strings[o++] || 'OFFSET: ' + (o - 1);
|
||||
if (data[i + 1] === 0377 && data[i] === 0377) {
|
||||
info.strings[s] = -1;
|
||||
info.strings[v] = -1;
|
||||
} else {
|
||||
info.strings[s] = (data[i + 1] << 8) | data[i];
|
||||
info.strings[v] = (data[i + 1] << 8) | data[i];
|
||||
}
|
||||
}
|
||||
|
||||
@ -318,13 +322,11 @@ Tput.prototype._compile = function(val) {
|
||||
|
||||
switch (typeof val) {
|
||||
case 'boolean':
|
||||
return function() {
|
||||
return val ? 'true' : 'false';
|
||||
};
|
||||
return val;
|
||||
// return val ? 'true' : 'false';
|
||||
case 'number':
|
||||
return function() {
|
||||
return val === -1 ? null : val;
|
||||
};
|
||||
return val;
|
||||
// return val === -1 ? null : val;
|
||||
case 'string':
|
||||
break;
|
||||
default:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user