X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FTraits.cc;h=f85d6f56883f8491fa265fae2db530fd0126a628;hb=1d058092bd771d52996416763b5d9cafadc2e087;hp=6f75d6076e0bff0d9cae83a0df10fdd5dc1b88eb;hpb=26610f603ebdd465307b9621f532c1fe19fd5571;p=senf.git diff --git a/senf/Utils/Console/Traits.cc b/senf/Utils/Console/Traits.cc index 6f75d60..f85d6f5 100644 --- a/senf/Utils/Console/Traits.cc +++ b/senf/Utils/Console/Traits.cc @@ -33,6 +33,21 @@ #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// +prefix_ std::string senf::console::ArgumentTraits::str(std::string const & value) +{ + if (! value.empty() && boost::algorithm::all(value, CommandParser::isWordChar)) + return value; + else { + std::string rv (value); + for (std::string::size_type i (0); i < rv.size(); ++i) + if (rv[i] == '"' || rv[i] == '\\') + rv.insert(i++,"\\"); + rv.insert(0,"\""); + rv.push_back('"'); + return rv; + } +} + prefix_ long senf::console::detail::parseEnum(EnumTable const & table, ParseCommandInfo::TokensRange const & tokens) {