X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2Fhexdump.ct;h=76b95e66cad84785c0972deb63c69b839ffba595;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=350c8c5b8f464ebe9f0deeee2b1833d8d12c6a14;hpb=9cd0c7d8fc22ecf342c5d2a45980c245b827a67f;p=senf.git diff --git a/Utils/hexdump.ct b/Utils/hexdump.ct index 350c8c5..76b95e6 100644 --- a/Utils/hexdump.ct +++ b/Utils/hexdump.ct @@ -26,6 +26,7 @@ //#include "hexdump.ih" // Custom includes +#include #include //#include "hexdump.mpp" @@ -33,28 +34,27 @@ ///////////////////////////////cc.p//////////////////////////////////////// template -prefix_ void senf::hexdump(Iterator i, Iterator const & i_end, std::ostream& stream, unsigned block_size=16) +prefix_ void senf::hexdump(Iterator i, Iterator i_end, std::ostream & stream, + unsigned block_size) { + boost::io::ios_all_saver ias (stream); unsigned offset (0); std::string ascii; for (; i != i_end; ++i, ++offset) { - switch ((offset % block_size)==0) { - case true: + if ((offset % block_size) == 0) { if (!ascii.empty()) { stream << " " << ascii << "\n"; ascii = ""; } stream << " " - << std::hex << std::setw(4) << std::setfill('0') - << offset << ' '; - break; - case false: + << std::hex << std::setw(4) << std::setfill('0') + << offset << ' '; + } else if ((offset % block_size) == block_size/2) { stream << " "; ascii += ' '; - break; } stream << ' ' << std::hex << std::setw(2) << std::setfill('0') - << unsigned(*i); + << unsigned(*i); ascii += (*i >= ' ' && *i < 126) ? *i : '.'; } if (!ascii.empty()) { @@ -65,14 +65,13 @@ prefix_ void senf::hexdump(Iterator i, Iterator const & i_end, std::ostream& str } stream << " " << ascii << "\n"; } - stream << std::dec; } ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "hexdump.mpp" - + // Local Variables: // mode: c++ // fill-column: 100