diff options
Diffstat (limited to 'cpp/src/IceUtil/OutputUtil.cpp')
-rw-r--r-- | cpp/src/IceUtil/OutputUtil.cpp | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/cpp/src/IceUtil/OutputUtil.cpp b/cpp/src/IceUtil/OutputUtil.cpp index d38292ffd26..00fc1897f33 100644 --- a/cpp/src/IceUtil/OutputUtil.cpp +++ b/cpp/src/IceUtil/OutputUtil.cpp @@ -23,6 +23,8 @@ namespace IceUtil NextLine nl; StartBlock sb; EndBlock eb; +StartPar spar; +EndPar epar; Separator sp; EndElement ee; StartEscapes startEscapes; @@ -237,24 +239,40 @@ IceUtil::OutputBase::fill(ostream::char_type newFill) IceUtil::Output::Output() : OutputBase(), _blockStart("{"), - _blockEnd("}") + _blockEnd("}"), + _par(-1) { } IceUtil::Output::Output(ostream& os) : OutputBase(os), _blockStart("{"), - _blockEnd("}") + _blockEnd("}"), + _par(-1) { } IceUtil::Output::Output(const char* s) : OutputBase(s), _blockStart("{"), - _blockEnd("}") + _blockEnd("}"), + _par(-1) { } +void +IceUtil::Output::print(const char* s) +{ + if(_par >= 0) + { + if(++_par > 1) // No comma for the first parameter. + { + _out << ", "; + } + } + OutputBase::print(s); +} + void IceUtil::Output::setBeginBlock(const char *bb) { @@ -292,6 +310,20 @@ IceUtil::Output::eb() --_pos; } +void +IceUtil::Output::spar() +{ + _out << '('; + _par = 0; +} + +void +IceUtil::Output::epar() +{ + _par = -1; + _out << ')'; +} + Output& IceUtil::operator<<(Output& out, ios_base& (*val)(ios_base&)) { |