From f7a569c628707d433e1f4ebdd398d9e10fdb1a64 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 4 Mar 2013 13:00:14 -0600 Subject: [PATCH] refactor. assert. --- lib/tput.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/tput.js b/lib/tput.js index ae1d128..2dd6b41 100644 --- a/lib/tput.js +++ b/lib/tput.js @@ -132,7 +132,7 @@ Tput.prototype.parseTerminfo = function(data) { o = 0; for (; i < l; i++) { v = Tput.bools[o++]; - info.bools[v] = !!data[i]; + info.bools[v] = data[i] === 1; } // Null byte in between to make sure numbers begin on an even byte. @@ -179,9 +179,8 @@ Tput.prototype.parseTerminfo = function(data) { while (data[j]) j++; - // assert.ok(j < data.length); + // assert.ok(j < data.length, 'Expected ' + j + ' < ' + data.length); if (j >= data.length) { - // throw new Error('Error parsing terminfo.'); delete info.strings[key]; return; } @@ -284,7 +283,7 @@ Tput.prototype.parseExtended = function(data) { var _bools = []; l = i + h.boolCount; for (; i < l; i++) { - _bools.push(!!data[i]); + _bools.push(data[i] === 1); } // Null byte in between to make sure numbers begin on an even byte. @@ -333,9 +332,8 @@ Tput.prototype.parseExtended = function(data) { while (data[j]) j++; - // assert.ok(j < data.length); + // assert.ok(j < data.length, 'Expected ' + j + ' < ' + data.length); if (j >= data.length) { - // throw new Error('Error parsing terminfo.'); _strings[k] = ''; return; } @@ -365,21 +363,26 @@ Tput.prototype.parseExtended = function(data) { } // Identify by name + j = 0; + info.bools = {}; _bools.forEach(function(bool) { - info.bools[sym.shift()] = bool; + info.bools[sym[j++]] = bool; }); info.numbers = {}; _numbers.forEach(function(number) { - info.numbers[sym.shift()] = number; + info.numbers[sym[j++]] = number; }); info.strings = {}; _strings.forEach(function(string) { - info.strings[sym.shift()] = string; + info.strings[sym[j++]] = string; }); + // Should be the very last bit of data. + assert.equal(i, data.length); + return info; };