aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2022-01-02 19:06:00 -0800
committeriximeow <me@iximeow.net>2022-01-02 19:06:00 -0800
commitfe9c41db5e4f2916439dd268a1b5e65447396ce3 (patch)
tree36a7ced4c0f76ea5b3e8971169aa50983e391a09 /src
parent6a018dc137ee149a65c1773c0bc6ab4e9732f7c4 (diff)
some verbose display stuff
Diffstat (limited to 'src')
-rw-r--r--src/main.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs
index 6a3d3ac..3e9b887 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -161,7 +161,7 @@ fn with_parsed_superh<F: FnOnce(yaxpeax_superh::SuperHDecoder)>(
// yaxpeax-arch while older decoders are still being updated.
mod current_arch {
use yaxpeax_arch_02::{AddressBase, Arch, Decoder, Instruction, LengthedInstruction, Reader, U8Reader};
- use yaxpeax_arch_02::{AnnotatingDecoder, FieldDescription, VecSink};
+ use yaxpeax_arch_02::annotation::{AnnotatingDecoder, FieldDescription, VecSink};
use std::fmt;
use num_traits::identities::Zero;
@@ -351,19 +351,21 @@ mod current_arch {
let mut fudge = 0;
let mut col = [b' '; 160];
+ let mut line_end = 0;
for i in 0..160 {
- if (i >> 3) >= data.len() {
+ if (i >> 3) > data.len() {
continue;
}
if boundaries[i] {
col[i + fudge] = b'|';
+ line_end = i + fudge + 1;
}
if fudge_bits[i] {
fudge += 1;
}
}
- res.push_str(unsafe { std::str::from_utf8_unchecked(&col) });
+ res.push_str(unsafe { std::str::from_utf8_unchecked(&col[..line_end]) });
res.push_str("\n");
for (field_index, bit) in boundary_order {
@@ -371,7 +373,7 @@ mod current_arch {
let mut col = [b' '; 160];
for i in 0..160 {
- if (i >> 3) >= data.len() {
+ if (i >> 3) > data.len() {
continue;
}