+2002-07-10 Lutz Müller <lutz@users.sourceforge.net>
+
+ Bug spotted by Andres <aplaza@smalcamera.com>:
+
+ * libexif/exif-data.c: Save the EXIF_TAG_INTEROPERABILITY_IFD_POINTER
+ in ifd_exif, not in ifd0.
+
2002-06-26 Lutz Müller <lutz@users.sourceforge.net>
Patch by Jos van den Oever <oever@fenk.wau.nl>: Make libexif c++
{
unsigned int i, n_ptr = 0, n_thumb = 0;
- /* If we are to save IFD 0, we need some extra entries. */
+ /* If we are to save IFD 0 or 1, we need some extra entries. */
if (ifd == data->ifd0) {
if (data->ifd_exif->count)
n_ptr++;
if (data->ifd_gps->count)
n_ptr++;
+ } else if (ifd == data->ifd1) {
if (data->ifd_interoperability->count)
n_ptr++;
}
offset += 12;
}
- if (ifd == data->ifd0 && data->ifd_interoperability->count) {
+ if (ifd == data->ifd1 && data->ifd_interoperability->count) {
/* EXIF_TAG_INTEROPERABILITY_IFD_POINTER */
exif_set_short (*d + 6 + offset + 0, data->priv->order,
offset += 12;
}
- if (ifd == data->ifd0 && data->ifd1->count) {
+ if (ifd == data->ifd0 && (data->ifd1->count ||
+ data->ifd_interoperability->count)) {
/*
* We are saving IFD 0. Tell where IFD 1 starts and save
* IFD 1.