From 1538506e226c8751c4e0cb3dab7f82ed097cc1a5 Mon Sep 17 00:00:00 2001 From: Henner Zeller Date: Thu, 3 Oct 2019 09:01:40 -0700 Subject: [PATCH 2/2] Use %c format specifier to implement ASCII output in pk-dump. 2019-10-03 Henner Zeller * Provide ASCII output in pk-dump Signed-off-by: Henner Zeller --- src/pk-dump.pk | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/pk-dump.pk b/src/pk-dump.pk index 722b01f..8ebec92 100644 --- a/src/pk-dump.pk +++ b/src/pk-dump.pk @@ -27,7 +27,7 @@ pk_help_str = pk_help_str defvar pk_dump_size = 128#B; defvar pk_dump_group_by = 2#B; defvar pk_dump_ruler = 1; -defvar pk_dump_ascii = 0; +defvar pk_dump_ascii = 1; /* `pk_dump_offset' keeps the last base offset used by `dump'. It is the offset to be used in case the command is invoked with no :from @@ -76,6 +76,20 @@ defun dump = (off64 from = pk_dump_offset, printf ("%u8x", int<8> @ (offset + o)); o = o + 1#B; } + if (ascii) + { + print(" "); + o = 0#B; + while (o < step && offset + o < top) + { + defvar v = int<8> @ (offset + o); + if (v < ' ' || v > '~') + print("."); + else + printf ("%c", v); + o = o + 1#B; + } + } print "\n"; offset = offset + step; -- 2.20.1