Fixing test suite.

main
Robin Mills 5 years ago
parent ecae9dc6eb
commit 23f39b60f7

@ -599,8 +599,16 @@ namespace Action {
std::cout << " "; std::cout << " ";
first = false; first = false;
std::ostringstream os; std::ostringstream os;
// 1431 always translate "comment" tags to show charset=
// sadly md.key() cannot access tagInfo.typeId_ (== comment)
Exiv2::StringSet commentTags;
commentTags.insert("Exif.Photo.UserComment");
commentTags.insert("Exif.GPSInfo.GPSProcessingMethod");
commentTags.insert("Exif.GPSInfo.GPSAreaInformation");
if ( commentTags.find(md.key()) != commentTags.end() ) {
os << md.print(&pImage->exifData());
} else if (md.typeId() == Exiv2::signedByte) {
// #1114 - show negative values for SByte // #1114 - show negative values for SByte
if (md.typeId() == Exiv2::signedByte) {
for ( int c = 0 ; c < md.value().count() ; c++ ) { for ( int c = 0 ; c < md.value().count() ; c++ ) {
int value = md.value().toLong(c); int value = md.value().toLong(c);
os << (c?" ":"") << std::dec << (value < 128 ? value : value - 256); os << (c?" ":"") << std::dec << (value < 128 ? value : value - 256);

@ -225,18 +225,6 @@ namespace Exiv2 {
// be careful with comments (User.Photo.UserComment, GPSAreaInfo etc). // be careful with comments (User.Photo.UserComment, GPSAreaInfo etc).
if ( ti ) { if ( ti ) {
fct = ti->printFct_; fct = ti->printFct_;
if ( ti->typeId_ == comment ) {
fct=NULL;
const Exiv2::CommentValue* cv = dynamic_cast<const Exiv2::CommentValue*>(&value());
Exiv2::CommentValue::CharsetId csId = cv->charsetId();
if ( csId != CommentValue::undefined ) {
os << "charset=" << CommentValue::CharsetInfo::name(csId) << " ";
}
os << cv->comment();
#if 0
os << "|| value().toString() = " << value().toString();
#endif
}
} }
if ( fct ) fct(os, value(), pMetadata); if ( fct ) fct(os, value(), pMetadata);
return os; return os;

@ -1776,7 +1776,7 @@ namespace Exiv2 {
N_("A tag for Exif users to write keywords or comments on the image " N_("A tag for Exif users to write keywords or comments on the image "
"besides those in <ImageDescription>, and without the " "besides those in <ImageDescription>, and without the "
"character code limitations of the <ImageDescription> tag."), "character code limitations of the <ImageDescription> tag."),
exifId, userInfo, comment, 0, printValue), exifId, userInfo, comment, 0, printComment),
TagInfo(0x9290, "SubSecTime", N_("Sub-seconds Time"), TagInfo(0x9290, "SubSecTime", N_("Sub-seconds Time"),
N_("A tag used to record fractions of seconds for the <DateTime> tag."), N_("A tag used to record fractions of seconds for the <DateTime> tag."),
exifId, dateTime, asciiString, 0, printValue), exifId, dateTime, asciiString, 0, printValue),
@ -2204,11 +2204,11 @@ namespace Exiv2 {
TagInfo(0x001b, "GPSProcessingMethod", N_("GPS Processing Method"), TagInfo(0x001b, "GPSProcessingMethod", N_("GPS Processing Method"),
N_("A character string recording the name of the method used for location finding. " N_("A character string recording the name of the method used for location finding. "
"The string encoding is defined using the same scheme as UserComment."), "The string encoding is defined using the same scheme as UserComment."),
gpsId, gpsTags, comment, 0, printValue), gpsId, gpsTags, comment, 0, printComment),
TagInfo(0x001c, "GPSAreaInformation", N_("GPS Area Information"), TagInfo(0x001c, "GPSAreaInformation", N_("GPS Area Information"),
N_("A character string recording the name of the GPS area." N_("A character string recording the name of the GPS area."
"The string encoding is defined using the same scheme as UserComment."), "The string encoding is defined using the same scheme as UserComment."),
gpsId, gpsTags, comment, 0, printValue), gpsId, gpsTags, comment, 0, printComment),
TagInfo(0x001d, "GPSDateStamp", N_("GPS Date Stamp"), TagInfo(0x001d, "GPSDateStamp", N_("GPS Date Stamp"),
N_("A character string recording date and time information relative to UTC " N_("A character string recording date and time information relative to UTC "
"(Coordinated Universal Time). The format is \"YYYY:MM:DD.\"."), "(Coordinated Universal Time). The format is \"YYYY:MM:DD.\"."),
@ -2461,6 +2461,17 @@ namespace Exiv2 {
return os << value; return os << value;
} }
std::ostream& printComment(std::ostream& os, const Value& value, const ExifData*)
{
const Exiv2::CommentValue* cv = dynamic_cast<const Exiv2::CommentValue*>(&value);
Exiv2::CommentValue::CharsetId csId = cv->charsetId();
if ( csId != CommentValue::undefined ) {
os << "charset=" << CommentValue::CharsetInfo::name(csId) << " ";
}
os << cv->comment();
return os ;
}
std::ostream& printBitmask(std::ostream& os, const Value& value, const ExifData* metadata) std::ostream& printBitmask(std::ostream& os, const Value& value, const ExifData* metadata)
{ {
if (value.typeId() == Exiv2::unsignedShort || value.typeId() == Exiv2::signedShort) if (value.typeId() == Exiv2::unsignedShort || value.typeId() == Exiv2::signedShort)

@ -362,6 +362,8 @@ namespace Exiv2 {
//@{ //@{
//! Default print function, using the Value output operator //! Default print function, using the Value output operator
std::ostream& printValue(std::ostream& os, const Value& value, const ExifData*); std::ostream& printValue(std::ostream& os, const Value& value, const ExifData*);
//! Print the value of a comment
std::ostream& printComment(std::ostream& os, const Value& value, const ExifData*);
//! Print the value converted to a long //! Print the value converted to a long
std::ostream& printLong(std::ostream& os, const Value& value, const ExifData*); std::ostream& printLong(std::ostream& os, const Value& value, const ExifData*);
//! Print a Rational or URational value in floating point format //! Print a Rational or URational value in floating point format

@ -819,7 +819,7 @@ Exif.NikonFl1.0x0011 0x0011 Makernote Byte 3
Exif.Nikon3.ImageOptimization 0x00a9 Makernote Ascii 16 NORMAL Exif.Nikon3.ImageOptimization 0x00a9 Makernote Ascii 16 NORMAL
Exif.Nikon3.Saturation 0x00aa Makernote Ascii 16 NORMAL Exif.Nikon3.Saturation 0x00aa Makernote Ascii 16 NORMAL
Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16 Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16
Exif.Photo.UserComment 0x9286 Exif Undefined 44 charset=Ascii Exif.Photo.UserComment 0x9286 Exif Undefined 44
Exif.Photo.SubSecTime 0x9290 Exif Ascii 3 00 Exif.Photo.SubSecTime 0x9290 Exif Ascii 3 00
Exif.Photo.SubSecTimeOriginal 0x9291 Exif Ascii 3 00 Exif.Photo.SubSecTimeOriginal 0x9291 Exif Ascii 3 00
Exif.Photo.SubSecTimeDigitized 0x9292 Exif Ascii 3 00 Exif.Photo.SubSecTimeDigitized 0x9292 Exif Ascii 3 00
@ -990,7 +990,7 @@ Exif.NikonFl1.0x0011 0x0011 Makernote Byte 3
Exif.Nikon3.ImageOptimization 0x00a9 Makernote Ascii 16 NORMAL Exif.Nikon3.ImageOptimization 0x00a9 Makernote Ascii 16 NORMAL
Exif.Nikon3.Saturation 0x00aa Makernote Ascii 16 NORMAL Exif.Nikon3.Saturation 0x00aa Makernote Ascii 16 NORMAL
Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16 Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16
Exif.Photo.UserComment 0x9286 Exif Undefined 44 charset=Ascii Exif.Photo.UserComment 0x9286 Exif Undefined 44
Exif.Photo.SubSecTime 0x9290 Exif Ascii 3 00 Exif.Photo.SubSecTime 0x9290 Exif Ascii 3 00
Exif.Photo.SubSecTimeOriginal 0x9291 Exif Ascii 3 00 Exif.Photo.SubSecTimeOriginal 0x9291 Exif Ascii 3 00
Exif.Photo.SubSecTimeDigitized 0x9292 Exif Ascii 3 00 Exif.Photo.SubSecTimeDigitized 0x9292 Exif Ascii 3 00
@ -1162,7 +1162,7 @@ Exif.NikonFl1.0x0011 0x0011 Makernote Byte 3
Exif.Nikon3.ImageOptimization 0x00a9 Makernote Ascii 16 NORMAL Exif.Nikon3.ImageOptimization 0x00a9 Makernote Ascii 16 NORMAL
Exif.Nikon3.Saturation 0x00aa Makernote Ascii 16 NORMAL Exif.Nikon3.Saturation 0x00aa Makernote Ascii 16 NORMAL
Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16 Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16
Exif.Photo.UserComment 0x9286 Exif Undefined 44 charset=Ascii Exif.Photo.UserComment 0x9286 Exif Undefined 44
Exif.Photo.SubSecTime 0x9290 Exif Ascii 3 00 Exif.Photo.SubSecTime 0x9290 Exif Ascii 3 00
Exif.Photo.SubSecTimeOriginal 0x9291 Exif Ascii 3 00 Exif.Photo.SubSecTimeOriginal 0x9291 Exif Ascii 3 00
Exif.Photo.SubSecTimeDigitized 0x9292 Exif Ascii 3 00 Exif.Photo.SubSecTimeDigitized 0x9292 Exif Ascii 3 00
@ -1334,7 +1334,7 @@ Exif.NikonFl1.0x0011 0x0011 Makernote Byte 3
Exif.Nikon3.ImageOptimization 0x00a9 Makernote Ascii 16 NORMAL Exif.Nikon3.ImageOptimization 0x00a9 Makernote Ascii 16 NORMAL
Exif.Nikon3.Saturation 0x00aa Makernote Ascii 16 NORMAL Exif.Nikon3.Saturation 0x00aa Makernote Ascii 16 NORMAL
Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16 Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16
Exif.Photo.UserComment 0x9286 Exif Undefined 44 charset=Ascii Exif.Photo.UserComment 0x9286 Exif Undefined 44
Exif.Photo.SubSecTime 0x9290 Exif Ascii 3 00 Exif.Photo.SubSecTime 0x9290 Exif Ascii 3 00
Exif.Photo.SubSecTimeOriginal 0x9291 Exif Ascii 3 00 Exif.Photo.SubSecTimeOriginal 0x9291 Exif Ascii 3 00
Exif.Photo.SubSecTimeDigitized 0x9292 Exif Ascii 3 00 Exif.Photo.SubSecTimeDigitized 0x9292 Exif Ascii 3 00

Loading…
Cancel
Save