David PHAM-VAN

Improve hexDump function

@@ -81,18 +81,21 @@ Font loadFont(String filename) { @@ -81,18 +81,21 @@ Font loadFont(String filename) {
81 } 81 }
82 82
83 void hexDump( 83 void hexDump(
84 - ByteData bytes,  
85 - int offset,  
86 - int length, [ 84 + ByteData bytes, {
  85 + int offset = 0,
  86 + int? length,
87 int? highlight, 87 int? highlight,
88 int? highlightLength, 88 int? highlightLength,
89 -]) { 89 + int columns = 16,
  90 +}) {
90 const reset = '\x1B[0m'; 91 const reset = '\x1B[0m';
91 const red = '\x1B[1;31m'; 92 const red = '\x1B[1;31m';
92 var s = ''; 93 var s = '';
93 var t = ''; 94 var t = '';
94 var n = 0; 95 var n = 0;
95 var hl = false; 96 var hl = false;
  97 + length ??= bytes.lengthInBytes;
  98 +
96 for (var i = 0; i < length; i++) { 99 for (var i = 0; i < length; i++) {
97 final b = bytes.getUint8(offset + i); 100 final b = bytes.getUint8(offset + i);
98 if (highlight != null && highlightLength != null) { 101 if (highlight != null && highlightLength != null) {
@@ -118,7 +121,7 @@ void hexDump( @@ -118,7 +121,7 @@ void hexDump(
118 } 121 }
119 122
120 n++; 123 n++;
121 - if (n % 16 == 0) { 124 + if (n % columns == 0) {
122 if (hl) { 125 if (hl) {
123 s += reset; 126 s += reset;
124 t += reset; 127 t += reset;
@@ -129,5 +132,5 @@ void hexDump( @@ -129,5 +132,5 @@ void hexDump(
129 t = ''; 132 t = '';
130 } 133 }
131 } 134 }
132 - print('$s $t'); 135 + print('$s${' ' * (columns * 3 - s.length + 3)}$t');
133 } 136 }