Coverity scan fixes CID : 982002 through 982054 (all ostream related)

v0.27.3
Mahesh 11 years ago
parent cff1efe122
commit 200c65a380

@ -1374,8 +1374,14 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData* metadata) const ExifData* metadata)
{ {
std::ios::fmtflags f( os.flags() );
if ( !metadata || value.typeId() != unsignedLong if ( !metadata || value.typeId() != unsignedLong
|| value.count() == 0) return os << "(" << value << ")"; || value.count() == 0)
{
os << "(" << value << ")";
os.flags(f);
return os;
}
ExifData::const_iterator pos = metadata->findKey(ExifKey("Exif.Image.Model")); ExifData::const_iterator pos = metadata->findKey(ExifKey("Exif.Image.Model"));
if (pos == metadata->end()) return os << "(" << value << ")"; if (pos == metadata->end()) return os << "(" << value << ")";
@ -1389,7 +1395,9 @@ namespace Exiv2 {
uint32_t val = value.toLong(); uint32_t val = value.toLong();
uint32_t dn = (val & 0xffc0) >> 6; uint32_t dn = (val & 0xffc0) >> 6;
uint32_t fn = ((val >> 16) & 0xff) + ((val & 0x3f) << 8); uint32_t fn = ((val >> 16) & 0xff) + ((val & 0x3f) << 8);
return os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn; os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn;
os.flags(f);
return os;
} }
if ( model.find("30D") != std::string::npos if ( model.find("30D") != std::string::npos
|| model.find("400D") != std::string::npos || model.find("400D") != std::string::npos
@ -1400,9 +1408,12 @@ namespace Exiv2 {
uint32_t dn = (val & 0xffc00) >> 10; uint32_t dn = (val & 0xffc00) >> 10;
while (dn < 100) dn += 0x40; while (dn < 100) dn += 0x40;
uint32_t fn = ((val & 0x3ff) << 4) + ((val >> 20) & 0x0f); uint32_t fn = ((val & 0x3ff) << 4) + ((val >> 20) & 0x0f);
return os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn; os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn;
os.flags(f);
return os;
} }
os.flags(f);
return os << "(" << value << ")"; return os << "(" << value << ")";
} }
@ -1410,9 +1421,11 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData* metadata) const ExifData* metadata)
{ {
std::ios::fmtflags f( os.flags() );
if ( !metadata if ( !metadata
|| value.count() < 4 || value.count() < 4
|| value.typeId() != unsignedShort) { || value.typeId() != unsignedShort) {
os.flags(f);
return os << value; return os << value;
} }
@ -1429,10 +1442,12 @@ namespace Exiv2 {
os << std::fixed << std::setprecision(1); os << std::fixed << std::setprecision(1);
os << fl << " mm"; os << fl << " mm";
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
} }
os.flags(f);
return os << value; return os << value;
} }
@ -1564,9 +1579,13 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if ( value.count() < 3 if ( value.count() < 3
|| value.typeId() != unsignedShort) { || value.typeId() != unsignedShort) {
return os << "(" << value << ")"; os << "(" << value << ")";
os.flags(f);
return os;
} }
float fu = value.toFloat(2); float fu = value.toFloat(2);
@ -1582,6 +1601,7 @@ namespace Exiv2 {
os << len2 << " - " << len1 << " mm"; os << len2 << " - " << len1 << " mm";
} }
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -1589,11 +1609,13 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if ( value.typeId() == unsignedShort if ( value.typeId() == unsignedShort
&& value.count() > 0) { && value.count() > 0) {
// Ported from Exiftool by Will Stokes // Ported from Exiftool by Will Stokes
os << exp(canonEv(value.toLong()) * log(2.0)) * 100.0 / 32.0; os << exp(canonEv(value.toLong()) * log(2.0)) * 100.0 / 32.0;
} }
os.flags(f);
return os; return os;
} }
@ -1654,6 +1676,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if ( value.typeId() != unsignedShort if ( value.typeId() != unsignedShort
|| value.count() == 0) return os << value; || value.count() == 0) return os << value;
@ -1664,6 +1687,7 @@ namespace Exiv2 {
else { else {
os << l << ""; os << l << "";
} }
os.flags(f);
return os; return os;
} }
@ -1688,6 +1712,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if ( value.typeId() != unsignedShort if ( value.typeId() != unsignedShort
|| value.count() == 0) return os << value; || value.count() == 0) return os << value;
@ -1696,6 +1721,7 @@ namespace Exiv2 {
if (ur.second > 1) { if (ur.second > 1) {
os << "/" << ur.second; os << "/" << ur.second;
} }
os.flags(f);
return os << " s"; return os << " s";
} }
@ -1718,6 +1744,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if ( value.typeId() != signedShort if ( value.typeId() != signedShort
|| value.count() == 0) return os << value; || value.count() == 0) return os << value;
@ -1734,6 +1761,7 @@ namespace Exiv2 {
} }
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }

@ -218,10 +218,12 @@ namespace Exiv2 {
std::ostream& CasioMakerNote::print0x0006(std::ostream& os, const Value& value, const ExifData*) std::ostream& CasioMakerNote::print0x0006(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(2) << value.toLong() / 1000.0 << _(" m"); os << std::fixed << std::setprecision(2) << value.toLong() / 1000.0 << _(" m");
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -583,14 +585,18 @@ namespace Exiv2 {
std::ostream& Casio2MakerNote::print0x2022(std::ostream& os, const Value& value, const ExifData*) std::ostream& Casio2MakerNote::print0x2022(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if(value.toLong()>=0x20000000) if(value.toLong()>=0x20000000)
{ {
return os << N_("Inf"); os << N_("Inf");
os.flags(f);
return os;
}; };
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(2) << value.toLong() / 1000.0 << _(" m"); os << std::fixed << std::setprecision(2) << value.toLong() / 1000.0 << _(" m");
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }

@ -660,10 +660,12 @@ namespace Exiv2 {
void CiffHeader::print(std::ostream& os, const std::string& prefix) const void CiffHeader::print(std::ostream& os, const std::string& prefix) const
{ {
std::ios::fmtflags f( os.flags() );
os << prefix os << prefix
<< _("Header, offset") << " = 0x" << std::setw(8) << std::setfill('0') << _("Header, offset") << " = 0x" << std::setw(8) << std::setfill('0')
<< std::hex << std::right << offset_ << "\n"; << std::hex << std::right << offset_ << "\n";
if (pRootDir_) pRootDir_->print(os, byteOrder_, prefix); if (pRootDir_) pRootDir_->print(os, byteOrder_, prefix);
os.flags(f);
} // CiffHeader::print } // CiffHeader::print
void CiffComponent::print(std::ostream& os, void CiffComponent::print(std::ostream& os,

@ -714,8 +714,9 @@ namespace Exiv2 {
std::ostream& operator<<(std::ostream& os, const DataSet& dataSet) std::ostream& operator<<(std::ostream& os, const DataSet& dataSet)
{ {
std::ios::fmtflags f( os.flags() );
IptcKey iptcKey(dataSet.number_, dataSet.recordId_); IptcKey iptcKey(dataSet.number_, dataSet.recordId_);
return os << dataSet.name_ << ", " os << dataSet.name_ << ", "
<< std::dec << dataSet.number_ << ", " << std::dec << dataSet.number_ << ", "
<< "0x" << std::setw(4) << std::setfill('0') << "0x" << std::setw(4) << std::setfill('0')
<< std::right << std::hex << dataSet.number_ << ", " << std::right << std::hex << dataSet.number_ << ", "
@ -729,6 +730,8 @@ namespace Exiv2 {
IptcDataSets::dataSetType(dataSet.number_, IptcDataSets::dataSetType(dataSet.number_,
dataSet.recordId_)) << ", " dataSet.recordId_)) << ", "
<< dataSet.desc_; << dataSet.desc_;
os.flags(f);
return os;
} }
} // namespace Exiv2 } // namespace Exiv2

@ -960,22 +960,26 @@ namespace Exiv2 {
{ {
// From Xavier Raynaud: the value is converted from 0:256 to -5.33:5.33 // From Xavier Raynaud: the value is converted from 0:256 to -5.33:5.33
std::ios::fmtflags f( os.flags() );
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(2) os << std::fixed << std::setprecision(2)
<< (float (value.toLong()-128)/24); << (float (value.toLong()-128)/24);
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
//! Method to convert Minolta Dynax 5D exposure compensation values. //! Method to convert Minolta Dynax 5D exposure compensation values.
std::ostream& MinoltaMakerNote::printMinoltaExposureCompensation5D(std::ostream& os, const Value& value, const ExifData*) std::ostream& MinoltaMakerNote::printMinoltaExposureCompensation5D(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(2) os << std::fixed << std::setprecision(2)
<< (float (value.toLong()-300)/100); << (float (value.toLong()-300)/100);
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -2151,10 +2155,13 @@ namespace Exiv2 {
std::ostream& printMinoltaSonyFlashExposureComp(std::ostream& os, const Value& value, const ExifData*) std::ostream& printMinoltaSonyFlashExposureComp(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != signedRational) { if (value.count() != 1 || value.typeId() != signedRational) {
return os << "(" << value << ")"; return os << "(" << value << ")";
} }
return os << std::fixed << std::setprecision(2) << value.toFloat(0) << " EV"; os << std::fixed << std::setprecision(2) << value.toFloat(0) << " EV";
os.flags(f);
return os;
} }
}} // namespace Internal, Exiv2 }} // namespace Internal, Exiv2

@ -298,6 +298,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
Rational distance = value.toRational(); Rational distance = value.toRational();
if (distance.first == 0) { if (distance.first == 0) {
os << _("Unknown"); os << _("Unknown");
@ -313,6 +314,7 @@ namespace Exiv2 {
else { else {
os << "(" << value << ")"; os << "(" << value << ")";
} }
os.flags(f);
return os; return os;
} }
@ -320,6 +322,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
Rational zoom = value.toRational(); Rational zoom = value.toRational();
if (zoom.first == 0) { if (zoom.first == 0) {
os << _("Not used"); os << _("Not used");
@ -335,6 +338,7 @@ namespace Exiv2 {
else { else {
os << "(" << value << ")"; os << "(" << value << ")";
} }
os.flags(f);
return os; return os;
} }
@ -501,6 +505,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
Rational zoom = value.toRational(); Rational zoom = value.toRational();
if (zoom.first == 0) { if (zoom.first == 0) {
os << _("Not used"); os << _("Not used");
@ -516,6 +521,7 @@ namespace Exiv2 {
else { else {
os << "(" << value << ")"; os << "(" << value << ")";
} }
os.flags(f);
return os; return os;
} }
@ -1460,6 +1466,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if ( value.count() != 4 if ( value.count() != 4
|| value.toRational(0).second == 0 || value.toRational(0).second == 0
|| value.toRational(1).second == 0) { || value.toRational(1).second == 0) {
@ -1485,6 +1492,7 @@ namespace Exiv2 {
<< static_cast<float>(fno2.first) / fno2.second; << static_cast<float>(fno2.first) / fno2.second;
} }
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -1492,6 +1500,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
Rational distance = value.toRational(); Rational distance = value.toRational();
if (distance.first == 0) { if (distance.first == 0) {
os << _("Unknown"); os << _("Unknown");
@ -1507,6 +1516,7 @@ namespace Exiv2 {
else { else {
os << "(" << value << ")"; os << "(" << value << ")";
} }
os.flags(f);
return os; return os;
} }
@ -1514,6 +1524,7 @@ namespace Exiv2 {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
Rational zoom = value.toRational(); Rational zoom = value.toRational();
if (zoom.first == 0) { if (zoom.first == 0) {
os << _("Not used"); os << _("Not used");
@ -1529,6 +1540,7 @@ namespace Exiv2 {
else { else {
os << "(" << value << ")"; os << "(" << value << ")";
} }
os.flags(f);
return os; return os;
} }
@ -2399,14 +2411,18 @@ fmountlens[] = {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte) { if (value.count() != 1 || value.typeId() != unsignedByte) {
return os << "(" << value << ")"; os << "(" << value << ")";
os.flags(f);
return os;
} }
double dist = 0.01 * pow(10.0, value.toLong()/40.0); double dist = 0.01 * pow(10.0, value.toLong()/40.0);
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(2) << dist << " m"; os << std::fixed << std::setprecision(2) << dist << " m";
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -2414,14 +2430,18 @@ fmountlens[] = {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte) { if (value.count() != 1 || value.typeId() != unsignedByte) {
return os << "(" << value << ")"; os << "(" << value << ")";
os.flags(f);
return os;
} }
double aperture = pow(2.0, value.toLong()/24.0); double aperture = pow(2.0, value.toLong()/24.0);
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << "F" << aperture; os << std::fixed << std::setprecision(1) << "F" << aperture;
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -2444,14 +2464,18 @@ fmountlens[] = {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte) { if (value.count() != 1 || value.typeId() != unsignedByte) {
return os << "(" << value << ")"; os << "(" << value << ")";
os.flags(f);
return os;
} }
double fstops = value.toLong()/12.0; double fstops = value.toLong()/12.0;
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << "F" << fstops; os << std::fixed << std::setprecision(1) << "F" << fstops;
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -2459,14 +2483,18 @@ fmountlens[] = {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte || value.toLong() == 0) { if (value.count() != 1 || value.typeId() != unsignedByte || value.toLong() == 0) {
return os << "(" << value << ")"; os << "(" << value << ")";
os.flags(f);
return os;
} }
double epp = 2048.0/value.toLong(); double epp = 2048.0/value.toLong();
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << epp << " mm"; os << std::fixed << std::setprecision(1) << epp << " mm";
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -2474,13 +2502,17 @@ fmountlens[] = {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte || value.toLong() == 0 || value.toLong() == 255) { if (value.count() != 1 || value.typeId() != unsignedByte || value.toLong() == 0 || value.toLong() == 255) {
return os << "(" << value << ")"; os << "(" << value << ")";
os.flags(f);
return os;
} }
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << value.toLong() << " mm"; os << std::fixed << std::setprecision(1) << value.toLong() << " mm";
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }
@ -2520,8 +2552,11 @@ fmountlens[] = {
const Value& value, const Value& value,
const ExifData*) const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != signedShort) { if (value.count() != 1 || value.typeId() != signedShort) {
return os << "(" << value << ")"; os << "(" << value << ")";
os.flags(f);
return os;
} }
std::ostringstream oss; std::ostringstream oss;
oss.copyfmt(os); oss.copyfmt(os);
@ -2531,6 +2566,7 @@ fmountlens[] = {
os << std::fixed << "UTC " << sign << std::setw(2) << std::setfill('0') << h << ":" os << std::fixed << "UTC " << sign << std::setw(2) << std::setfill('0') << h << ":"
<< std::setw(2) << std::setfill('0') << min; << std::setw(2) << std::setfill('0') << min;
os.copyfmt(oss); os.copyfmt(oss);
os.flags(f);
return os; return os;
} }

@ -1530,7 +1530,9 @@ namespace Exiv2 {
// Olympus FocusDistance 0x0305 // Olympus FocusDistance 0x0305
std::ostream& OlympusMakerNote::print0x0305(std::ostream& os, const Value& value, const ExifData*) { std::ostream& OlympusMakerNote::print0x0305(std::ostream& os, const Value& value, const ExifData*) {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedRational) { if (value.count() != 1 || value.typeId() != unsignedRational) {
os.flags(f);
return os << value; return os << value;
} }
@ -1545,6 +1547,7 @@ namespace Exiv2 {
os << (float)distance.first/1000 << " m"; os << (float)distance.first/1000 << " m";
os.copyfmt(oss); os.copyfmt(oss);
} }
os.flags(f);
return os; return os;
} }

@ -1010,11 +1010,13 @@ namespace Exiv2 {
std::ostream& PentaxMakerNote::printPentaxTime(std::ostream& os, const Value& value, const ExifData*) std::ostream& PentaxMakerNote::printPentaxTime(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
os << std::setw(2) << std::setfill('0') << value.toLong(0); os << std::setw(2) << std::setfill('0') << value.toLong(0);
os << ":"; os << ":";
os << std::setw(2) << std::setfill('0') << value.toLong(1); os << std::setw(2) << std::setfill('0') << value.toLong(1);
os << ":"; os << ":";
os << std::setw(2) << std::setfill('0') << value.toLong(2); os << std::setw(2) << std::setfill('0') << value.toLong(2);
os.flags(f);
return os; return os;
} }
@ -1026,24 +1028,30 @@ namespace Exiv2 {
std::ostream& PentaxMakerNote::printPentaxFValue(std::ostream& os, const Value& value, const ExifData*) std::ostream& PentaxMakerNote::printPentaxFValue(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
os << "F" << std::setprecision(2) os << "F" << std::setprecision(2)
<< static_cast<float>(value.toLong()) / 10; << static_cast<float>(value.toLong()) / 10;
os.flags(f);
return os; return os;
} }
std::ostream& PentaxMakerNote::printPentaxFocalLength(std::ostream& os, const Value& value, const ExifData*) std::ostream& PentaxMakerNote::printPentaxFocalLength(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
os << std::fixed << std::setprecision(1) os << std::fixed << std::setprecision(1)
<< static_cast<float>(value.toLong()) / 100 << static_cast<float>(value.toLong()) / 100
<< " mm"; << " mm";
os.flags(f);
return os; return os;
} }
std::ostream& PentaxMakerNote::printPentaxCompensation(std::ostream& os, const Value& value, const ExifData*) std::ostream& PentaxMakerNote::printPentaxCompensation(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
os << std::setprecision(2) os << std::setprecision(2)
<< (static_cast<float>(value.toLong()) - 50) / 10 << (static_cast<float>(value.toLong()) - 50) / 10
<< " EV"; << " EV";
os.flags(f);
return os; return os;
} }
@ -1055,9 +1063,11 @@ namespace Exiv2 {
std::ostream& PentaxMakerNote::printPentaxFlashCompensation(std::ostream& os, const Value& value, const ExifData*) std::ostream& PentaxMakerNote::printPentaxFlashCompensation(std::ostream& os, const Value& value, const ExifData*)
{ {
std::ios::fmtflags f( os.flags() );
os << std::setprecision(2) os << std::setprecision(2)
<< static_cast<float>(value.toLong()) / 256 << static_cast<float>(value.toLong()) / 256
<< " EV"; << " EV";
os.flags(f);
return os; return os;
} }

@ -2290,7 +2290,12 @@ namespace Exiv2 {
for (int i = 0; i < n + 1; ++i) { for (int i = 0; i < n + 1; ++i) {
const int32_t z = value.toRational(i).first; const int32_t z = value.toRational(i).first;
const int32_t d = value.toRational(i).second; const int32_t d = value.toRational(i).second;
if (d == 0) return os << "(" << value << ")"; if (d == 0)
{
os << "(" << value << ")";
os.flags(f);
return os;
}
// Hack: Need Value::toDouble // Hack: Need Value::toDouble
double b = static_cast<double>(z)/d; double b = static_cast<double>(z)/d;
const int p = z % d == 0 ? 0 : prec[i]; const int p = z % d == 0 ? 0 : prec[i];

Loading…
Cancel
Save