2004-05-25 Lutz Mueller <lutz@users.sourceforge.net>
authorLutz Mueller <lutz.s.mueller@gmail.com>
Tue, 25 May 2004 22:30:53 +0000 (00:30 +0200)
committerLutz Mueller <lutz.s.mueller@gmail.com>
Tue, 25 May 2004 22:30:53 +0000 (00:30 +0200)
* libexif/olympus/mnote-olympus-entry.c: Print bytes if tag is not
  known.

ChangeLog
libexif/olympus/exif-mnote-data-olympus.c
libexif/olympus/mnote-olympus-entry.c

index 702480c..464ce22 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-05-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+       * libexif/olympus/mnote-olympus-entry.c: Print bytes if tag is not
+         known.
+
 2004-05-24  Jan Patera <patera@users.sourceforge.net>
 
        * libjpeg/jpeg-data.[c,h]: jpeg_data_append_section changed
index e59e271..f7b62c9 100644 (file)
@@ -64,6 +64,9 @@ exif_mnote_data_olympus_get_value (ExifMnoteData *d, unsigned int i, char *val,
 
        if (!d) return NULL;
        if (n->count <= i) return NULL;
+       exif_log (d->log, EXIF_LOG_CODE_DEBUG, "MnoteDataOlympus",
+                 "Querying value for tag '%s'...",
+                 mnote_olympus_tag_get_name (n->entries[i].tag));
        return mnote_olympus_entry_get_value (&n->entries[i], val, maxlen);
 }
 
index 7d451ff..fc675c8 100644 (file)
@@ -158,7 +158,7 @@ mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *v, unsigned int m
 {
        char         buf[32];
        ExifLong     vl;
-       ExifShort    vs;
+       ExifShort    vs = 0;
        ExifRational vr;
        int          i, j;
        double       r, b;
@@ -309,13 +309,16 @@ mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *v, unsigned int m
                CF (entry->format, items[i].fmt, v, maxlen);
                CC (entry->components, 1, v, maxlen);
                switch (entry->format) {
-                       case EXIF_FORMAT_BYTE:
-                       case EXIF_FORMAT_UNDEFINED:
-                               vs = entry->data[0];
-                               break;
-                       case EXIF_FORMAT_SHORT:
-                               vs = exif_get_short(entry->data, entry->order);
-                               break;
+               case EXIF_FORMAT_BYTE:
+               case EXIF_FORMAT_UNDEFINED:
+                       vs = entry->data[0];
+                       break;
+               case EXIF_FORMAT_SHORT:
+                       vs = exif_get_short(entry->data, entry->order);
+                       break;
+               default:
+                       vs = 0;
+                       break;
                }
                /* find the value */
                for (j = 0; items[i].elem[j].string &&
@@ -499,21 +502,26 @@ mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *v, unsigned int m
        default:
                switch (entry->format) {
                case EXIF_FORMAT_ASCII:
-                 strncpy (v, entry->data, MIN (maxlen, entry->components));
-                 break;
+                       strncpy (v, entry->data,
+                                MIN (maxlen, entry->components));
+                       break;
                case EXIF_FORMAT_SHORT:
-                 vs = exif_get_short (entry->data, entry->order);
-                 snprintf (v, maxlen, "%hi", vs);
-                 break;
+                       vs = exif_get_short (entry->data, entry->order);
+                       snprintf (v, maxlen, "%hi", vs);
+                       break;
                case EXIF_FORMAT_LONG:
-                 vl = exif_get_long (entry->data, entry->order);
-                 snprintf (v, maxlen, "%li", vl);
-                 break;
+                       vl = exif_get_long (entry->data, entry->order);
+                       snprintf (v, maxlen, "%li", vl);
+                       break;
                case EXIF_FORMAT_UNDEFINED:
                default:
-                 snprintf (v, maxlen, "%li bytes unknown data",
-                           entry->size);
-                 break;
+                       snprintf (v, maxlen, "%li bytes unknown data:",
+                                 entry->size);
+                       for (i = 0; i < entry->size; i++) {
+                               sprintf (buf, " %02x", entry->data[i]);
+                               strncat (v, buf, maxlen);
+                       }
+                       break;
                }
                break;
        }