summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/OutputUtil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceUtil/OutputUtil.cpp')
-rw-r--r--cpp/src/IceUtil/OutputUtil.cpp38
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&))
{