return EXIF_DATA_TYPE_MAKER_NOTE_NONE;
/* Olympus & Nikon */
- if ((e->size >= 5) && (!memcmp (e->data, "OLYMP", 5) ||
- !memcmp (e->data, "Nikon", 5)))
+ if ((e->size >= 8) && (!memcmp (e->data, "OLYMP", 6) ||
+ !memcmp (e->data, "OLYMPUS", 8) || !memcmp (e->data, "Nikon", 6)))
return EXIF_DATA_TYPE_MAKER_NOTE_OLYMPUS;
em = exif_data_get_entry (d, EXIF_TAG_MAKE);
{ EXIF_TAG_COLOR_SPACE,
{ {1, {N_("sRGB"), NULL}},
{2, {N_("Adobe RGB"), NULL}},
- {0xffff, {N_("Uncalibrated"), NULL}}}},
+ {0xffff, {N_("Uncalibrated"), NULL}},
+ {0x0000, {NULL}}}},
{0, }
};
}
/* Find the value */
- for (j = 0; list2[i].elem[j].values &&
+ for (j = 0; list2[i].elem[j].values[0] &&
(list2[i].elem[j].index < v_short); j++);
if (list2[i].elem[j].index != v_short) {
snprintf (val, maxlen, _("Internal error (unknown "
/* Find a short enough value */
memset (val, 0, maxlen);
- for (k = 0; list2[i].elem[j].values &&
- list2[i].elem[j].values[k]; k++) {
+ for (k = 0; list2[i].elem[j].values[k]; k++) {
l = strlen (_(list2[i].elem[j].values[k]));
if ((maxlen > l) && (strlen (val) < l))
strncpy (val, _(list2[i].elem[j].values[k]), maxlen - 1);
else
strncpy (val, _(list[i].strings[j]), maxlen - 1);
break;
+ case EXIF_TAG_INTEROPERABILITY_VERSION:
+ CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen);
+ strncpy (val, (char *) e->data, MIN (maxlen, e->size));
+ break;
default:
if (!e->components) break;
switch (e->format) {