3 var repeat = function (times, str) {
6 for (var i = 0; i < times; i++) {
13 var printHex = function (width, num) {
14 var ret = Number(num).toString(16);
16 if (ret.length < width) {
17 return repeat(width - ret.length, "0") + ret;
24 var isPrintableAscii = function (code) {
25 return (code >= 0x20 && code <= 0x7e);
28 Rakka.hexDump = function (data, limit) {
30 var size = Math.min(data.length, limit);
33 for (; offset < size; offset += 16) {
34 ret += printHex(8, offset);
38 var end = Math.min(offset + 16, size);
40 for (var i = begin; i < end; i++) {
41 var c = data.charCodeAt(i);
43 ret += printHex(2, c);
50 for (var i = end; i < offset + 16; i++) {
59 for (var i = begin; i < end; i++) {
60 var c = data.charCodeAt(i);
62 if (isPrintableAscii(c)) {
63 ret += data.charAt(i);
70 for (var i = end; i < offset + 16; i++) {
77 if (data.length > limit) {
78 ret += printHex(8, offset);