=== modified file 'src/libpyexiv2.cpp'
--- src/libpyexiv2.cpp 2009-03-14 21:43:49 +0000
+++ src/libpyexiv2.cpp 2010-01-05 08:04:49 +0000
@@ -33,6 +33,33 @@
#define THUMB_ACCESS 104
#define NO_THUMBNAIL 105
+
+// Copied from libexiv2's src/iptc.cpp.
+// Was previously called Exiv2::FindMetadatumById::FindMetadatumById but it was
+// renamed and moved in revision 1727. See http://dev.exiv2.org/issues/show/581.
+//! Unary predicate that matches an Iptcdatum with given record and dataset
+class FindIptcdatum {
+public:
+ //! Constructor, initializes the object with the record and dataset id
+ FindIptcdatum(uint16_t dataset, uint16_t record)
+ : dataset_(dataset), record_(record) {}
+ /*!
+ @brief Returns true if the record and dataset id of the argument
+ Iptcdatum is equal to that of the object.
+ */
+ bool operator()(const Exiv2::Iptcdatum& iptcdatum) const
+ {
+ return dataset_ == iptcdatum.tag() && record_ == iptcdatum.record();
+ }
+
+private:
+ // DATA
+ uint16_t dataset_;
+ uint16_t record_;
+
+}; // class FindIptcdatum
+
+
namespace LibPyExiv2
{
@@ -228,7 +255,7 @@
while ((indexCounter > 0) && (dataIterator != _iptcData.end()))
{
dataIterator = std::find_if(++dataIterator, _iptcData.end(),
- Exiv2::FindMetadatumById::FindMetadatumById(iptcKey.tag(), iptcKey.record()));
+ FindIptcdatum(iptcKey.tag(), iptcKey.record()));
--indexCounter;
}
if (dataIterator != _iptcData.end())
@@ -266,7 +293,7 @@
while ((indexCounter > 0) && (dataIterator != _iptcData.end()))
{
dataIterator = std::find_if(++dataIterator, _iptcData.end(),
- Exiv2::FindMetadatumById::FindMetadatumById(iptcKey.tag(), iptcKey.record()));
+ FindIptcdatum(iptcKey.tag(), iptcKey.record()));
--indexCounter;
}
if (dataIterator != _iptcData.end())
=== modified file 'unittest/Bug183618_TestCase.py'
--- unittest/Bug183618_TestCase.py 2008-02-09 01:13:28 +0000
+++ unittest/Bug183618_TestCase.py 2010-01-05 08:06:59 +0000
@@ -71,12 +71,12 @@
# Exhaustive tests on the values of EXIF GPS metadata
gpsTags = [('Exif.Image.GPSTag', long, 1313L),
- ('Exif.GPSInfo.GPSVersionID', str, '2 0 0 0 '),
+ ('Exif.GPSInfo.GPSVersionID', str, '2 0 0 0'),
('Exif.GPSInfo.GPSLatitudeRef', str, 'N'),
('Exif.GPSInfo.GPSLatitude', tuple, (pyexiv2.Rational(47, 1), pyexiv2.Rational(3817443, 1000000), pyexiv2.Rational(0, 1))),
('Exif.GPSInfo.GPSLongitudeRef', str, 'E'),
('Exif.GPSInfo.GPSLongitude', tuple, (pyexiv2.Rational(8, 1), pyexiv2.Rational(41359940, 1000000), pyexiv2.Rational(0, 1))),
- ('Exif.GPSInfo.GPSAltitudeRef', str, '0 '),
+ ('Exif.GPSInfo.GPSAltitudeRef', str, '0'),
('Exif.GPSInfo.GPSAltitude', pyexiv2.Rational, pyexiv2.Rational(1908629, 1250)),
('Exif.GPSInfo.GPSMapDatum', str, 'WGS-84')]
self.assertEqual([tag for tag in image.exifKeys() if tag.find('GPS') != -1], [tag[0] for tag in gpsTags])