X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FTraits.cc;h=64dadeda72caaacba26f366cff6213a407e8a253;hb=52a6fb56dce12132287e181b787d2474d93b0183;hp=f85d6f56883f8491fa265fae2db530fd0126a628;hpb=1d058092bd771d52996416763b5d9cafadc2e087;p=senf.git diff --git a/senf/Utils/Console/Traits.cc b/senf/Utils/Console/Traits.cc index f85d6f5..64daded 100644 --- a/senf/Utils/Console/Traits.cc +++ b/senf/Utils/Console/Traits.cc @@ -27,6 +27,7 @@ #include "Traits.ih" // Custom includes +#include #include //#include "Traits.mpp" @@ -42,6 +43,13 @@ prefix_ std::string senf::console::ArgumentTraits::str(std::string for (std::string::size_type i (0); i < rv.size(); ++i) if (rv[i] == '"' || rv[i] == '\\') rv.insert(i++,"\\"); + else if (rv[i] < ' ' || rv[i] > 126) { + rv.insert(i+1, (boost::format("x%02x") + % unsigned(static_cast(rv[i]))).str().c_str()); + rv[i] = '\\'; + i += 3; + } + rv.insert(0,"\""); rv.push_back('"'); return rv;