12 static size_t bufsz = 128;
13 static char *buf =
new char[bufsz];
17 while ((need=vsnprintf(buf, bufsz, fmt, ap))>bufsz) {
20 buf =
new char[bufsz];
43 sprintf(s, numeric_fmt, 0u);
44 int numeric_width = strlen(s);
49 for (
size_t i=0; i<n; i+=fmt.
width) {
57 for (
size_t j=0; j<fmt.
width; j++) {
61 if (j>0 && 0 == j % fmt.
colsize)
67 if (j>0 && 0 == j % fmt.
colsize)
79 for (
size_t j=0; j<fmt.
width; j++) {
83 }
else if (isprint(data[i+j])) {
105 fmt.
prefix = prefix.c_str();
106 hexdump(f, base_addr, &(data[0]), data.size(), fmt);
119 fmt.
prefix = prefix.c_str();
120 hexdump(f, base_addr, &(data[0]), data.
size(), fmt);
132 std::ostringstream s;
133 hexdump(s, base_addr, data, n, fmt);
142 if (data.empty())
return "";
145 fmt.
prefix = prefix.c_str();
146 return hexdump(base_addr, &(data[0]), data.size(), fmt);
154 if (data.
empty())
return "";
157 fmt.
prefix = prefix.c_str();
158 return hexdump(base_addr, &(data[0]), data.
size(), fmt);
170 fputs(
hexdump(base_addr, data, n, fmt).c_str(), f);
179 fputs(
hexdump(base_addr, prefix, data, multiline).c_str(), f);
188 fputs(
hexdump(base_addr, prefix, data, multiline).c_str(), f);