From: Lutz M?l. <lu...@us...> - 2003-12-09 19:50:04
|
Update of /cvsroot/libexif/libexif/libexif In directory sc8-pr-cvs1:/tmp/cvs-serv4838/libexif Modified Files: exif-entry.c Log Message: 2003-12-09 Lutz Mueller <lu...@us...> A couple of fixes by Jan Patera <pa...@pi...>: * libexif Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- exif-entry.c 7 Dec 2003 23:26:05 -0000 1.41 +++ exif-entry.c 9 Dec 2003 19:49:59 -0000 1.42 @@ -153,6 +153,18 @@ ExifByteOrder o; double d; ExifEntry *entry; + static struct { + char *label; + char major, minor; + } versions[] = { + {"0110", 1, 1}, + {"0120", 1, 2}, + {"0200", 2, 0}, + {"0210", 2, 1}, + {"0220", 2, 2}, + {"0221", 2, 21}, + {NULL , 0, 0} + }; bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); bindtextdomain (GETTEXT_PACKAGE, LIBEXIF_LOCALEDIR); @@ -177,26 +189,29 @@ case EXIF_TAG_USER_COMMENT: CF (e->format, EXIF_FORMAT_UNDEFINED, v); if (e->size < 8) break; - strncpy (v, e->data + 8, MIN (e->size, sizeof (v) - 1)); + strncpy (v, e->data + 8, MIN (e->size - 8, sizeof (v) - 1)); break; case EXIF_TAG_EXIF_VERSION: CF (e->format, EXIF_FORMAT_UNDEFINED, v); CC (e->components, 4, v); - if (!memcmp (e->data, "0110", 4)) - strncpy (v, "Exif Version 1.1", sizeof (v) - 1); - else if (!memcmp (e->data, "0200", 4)) - strncpy (v, "Exif Version 2.0", sizeof (v) - 1); - else if (!memcmp (e->data, "0210", 4)) - strncpy (v, "Exif Version 2.1", sizeof (v) - 1); - else if (!memcmp (e->data, "0220", 4)) - strncpy (v, "Exif Version 2.2", sizeof (v) - 1); - else strncpy (v, _("Unknown Exif Version"), sizeof (v) - 1); + strncpy (v, _("Unknown Exif Version"), sizeof (v) - 1); + for (i = 0; versions[i].label; i++) { + if (!memcmp (e->data, versions[i].label, 4)) { + snprintf (v, sizeof (v) - 1, + _("Exif Version %d.%d"), + versions[i].major, + versions[i].minor); + break; + } + } break; case EXIF_TAG_FLASH_PIX_VERSION: CF (e->format, EXIF_FORMAT_UNDEFINED, v); CC (e->components, 4, v); if (!memcmp (e->data, "0100", 4)) - strncpy (v, "FlashPix Version 1.0", sizeof (v)); + strncpy (v, _("FlashPix Version 1.0"), sizeof (v)); + else if (!memcmp (e->data, "0101", 4)) + strncpy (v, _("FlashPix Version 1.01"), sizeof (v)); else strncpy (v, _("Unknown FlashPix Version"), sizeof (v)); break; @@ -978,6 +993,11 @@ strncat (v, ", ", sizeof (v)); strncat (v, b, sizeof (v)); } + break; + case EXIF_FORMAT_DOUBLE: + case EXIF_FORMAT_FLOAT: + default: + /* What to do here? */ break; } } |