aboutsummaryrefslogtreecommitdiff
path: root/misc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'misc.cc')
-rw-r--r--misc.cc23
1 files changed, 13 insertions, 10 deletions
diff --git a/misc.cc b/misc.cc
index 3f15520..a76bfb6 100644
--- a/misc.cc
+++ b/misc.cc
@@ -36,7 +36,8 @@ std::vector<uint8_t> hex_string_to_byte(const char* hexString){
};
#include <cctype>
-std::string hexdump(const char *p, size_t size, bool print_header) {
+std::string hexdump(const char *p, size_t size, bool print_header,
+ bool print_ascii, bool print_empty) {
std::stringstream out;
char formatbuf[128];
const char *pstart = p;
@@ -53,18 +54,20 @@ std::string hexdump(const char *p, size_t size, bool print_header) {
snprintf(formatbuf, 128, "%02x ", uint8_t(*p));
out << formatbuf;
} else {
- out << "-- ";
+ if(print_empty)
+ out << "-- ";
}
}
- out << "\t";
-
- for (const char *le = pp + 16; pp < le && pp < pend; pp++) {
- if (std::isgraph(*pp))
- out << uint8_t(*pp);
- else
- out << '.';
- }
+ if(print_ascii){
+ out << "\t";
+ for (const char *le = pp + 16; pp < le && pp < pend; pp++) {
+ if (std::isgraph(*pp))
+ out << uint8_t(*pp);
+ else
+ out << '.';
+ }
+ }
out << std::endl;
}
return out.str();