typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data);
/*! Executes function on each EXIF tag in this IFD in turn.
+ * The tags will not necessarily be visited in numerical order.
*
* \param[in,out] content IFD over which to iterate
* \param[in] func function to call for each entry
entry->size);
break;
case MNOTE_PENTAX_TAG_TZ_CITY:
- CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
- CC (entry->components, 4, val, maxlen);
- strncpy (val, (char*)entry->data, MIN(maxlen, entry->size));
- break;
case MNOTE_PENTAX_TAG_TZ_DST:
CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
CC (entry->components, 4, val, maxlen);
case EXIF_FORMAT_SHORT:
{
const unsigned char *data = entry->data;
- size_t i, len = strlen(val);
- for(i=0; i<entry->components; i++) {
- if ((i+1)*2 > entry->size) {
- // Prevent buffer overflow
- break;
- }
+ size_t k, len = strlen(val);
+ for(k=0; k<entry->components; k++) {
vs = exif_get_short (data, entry->order);
snprintf (val+len, maxlen-len, "%i ", vs);
len = strlen(val);
case EXIF_FORMAT_LONG:
{
const unsigned char *data = entry->data;
- size_t i, len = strlen(val);
- for(i=0; i<entry->components; i++) {
- if ((i+1)*4 > entry->size) {
- // Prevent buffer overflow
- break;
- }
+ size_t k, len = strlen(val);
+ for(k=0; k<entry->components; k++) {
vl = exif_get_long (data, entry->order);
snprintf (val+len, maxlen-len, "%li", (long int) vl);
len = strlen(val);