in interface.js [197:256]
function formatBufferUncolored(err, options) {
// istanbul ignore else
if (!hex) {
return err.buffer.toString('hex');
}
options = options || {};
var hasOffset = !(err.offset === undefined || err.offset === null);
var hasEnd = !(err.endOffset === undefined || err.endOffset === null);
var markStart = options.markStart || '>';
var markEnd = options.markEnd || '<';
var accum = 0;
var opts = options.hexerOptions ? Object.create(options.hexerOptions) : {};
if (hasOffset) {
opts.groupSeparator = '';
if (hasEnd) {
opts.decorateHexen = decorateRangedError;
} else {
opts.decorateHexen = decorateError;
}
}
return hex(err.buffer, opts);
// TODO: suspected broken across lines, should either test and complete or
// use some sort of alternate notation such as interstitial lines
function decorateRangedError(totalOffset, screenOffset, hexen) {
var s;
if (totalOffset === err.offset) {
accum = 1;
s = markStart + hexen;
if (totalOffset === err.endOffset-1) {
s += markEnd;
accum = 0;
} else {
s = ' ' + s;
}
return s;
} else if (totalOffset === err.endOffset-1) {
s = hexen + markEnd;
while (accum-- > 0) s += ' ';
accum = 0;
return s;
} else if (accum) {
accum += 2;
return hexen;
} else {
return ' ' + hexen + ' ';
}
}
function decorateError(totalOffset, screenOffset, hexen) {
if (totalOffset === err.offset) {
return markStart + hexen + markEnd;
} else {
return ' ' + hexen + ' ';
}
}
}