@@ -579,14 +579,8 @@ void IptcKey::makeKey() {
579579//  free functions
580580
581581std::ostream& operator <<(std::ostream& os, const  DataSet& dataSet) {
582-   std::ios::fmtflags f (os.flags ());
583582  IptcKey iptcKey (dataSet.number_ , dataSet.recordId_ );
584-   os << dataSet.name_  << " , "   << std::dec << dataSet.number_  << " , " 
585-      << " 0x"   << std::setw (4 ) << std::setfill (' 0'  ) << std::right << std::hex << dataSet.number_  << " , " 
586-      << IptcDataSets::recordName (dataSet.recordId_ ) << " , "   << std::boolalpha << dataSet.mandatory_  << " , " 
587-      << dataSet.repeatable_  << " , "   << std::dec << dataSet.minbytes_  << " , "   << dataSet.maxbytes_  << " , " 
588-      << iptcKey.key () << " , "   << TypeInfo::typeName (IptcDataSets::dataSetType (dataSet.number_ , dataSet.recordId_ ))
589-      << " , "  ;
583+ 
590584  //  CSV encoded I am \"dead\" beat" => "I am ""dead"" beat"
591585  std::string escapedDesc;
592586  escapedDesc.push_back (' "'  );
@@ -597,9 +591,12 @@ std::ostream& operator<<(std::ostream& os, const DataSet& dataSet) {
597591      escapedDesc.push_back (c);
598592  }
599593  escapedDesc.push_back (' "'  );
600-   os << escapedDesc;
601-   os.flags (f);
602-   return  os;
594+ 
595+   return  os << stringFormat (
596+              " {}, {}, 0x{:04x}, {}, {}, {}, {}, {}, {}, {}, {}"  , dataSet.name_ , dataSet.number_ , dataSet.number_ ,
597+              IptcDataSets::recordName (dataSet.recordId_ ), dataSet.mandatory_  ? " true"   : " false"  ,
598+              dataSet.repeatable_  ? " true"   : " false"  , dataSet.minbytes_ , dataSet.maxbytes_ , iptcKey.key (),
599+              TypeInfo::typeName (IptcDataSets::dataSetType (dataSet.number_ , dataSet.recordId_ )), escapedDesc);
603600}
604601
605602}  //  namespace Exiv2
0 commit comments