cleanup parsers

This commit is contained in:
Christopher Jeffrey 2013-02-24 07:39:29 -06:00
parent bc20f65f85
commit 4703d45fef

View File

@ -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: