From ff64cbab64ae042ca6efca49a111f1f49e9325ec Mon Sep 17 00:00:00 2001 From: Lutz Mueller Date: Tue, 26 Apr 2005 22:37:33 +0200 Subject: [PATCH] 2005-04-26 Lutz Mueller * libexif/exif-entry.c (exif_entry_fix): Leave ' ' untouched, too. --- libexif/exif-entry.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/libexif/exif-entry.c b/libexif/exif-entry.c index c792e8c..a6dc9c9 100644 --- a/libexif/exif-entry.c +++ b/libexif/exif-entry.c @@ -256,27 +256,12 @@ exif_entry_fix (ExifEntry *e) e->format = EXIF_FORMAT_UNDEFINED; } - /* If the tag is all empty, there's nothing to do. */ - for (i = 0; (i < e->size) && !e->data[i]; i++); - if (i && (i == e->size) && (i >= 8)) break; - /* Some packages like Canon ZoomBrowser EX 4.5 store only one zero byte followed by 7 bytes of rubbish */ if ((e->size >= 8) && (e->data[0] == 0)) { memcpy(e->data, "\0\0\0\0\0\0\0\0", 8); } - /* Some cameras fill the tag with ' '. This is wrong. */ - for (i = 0; (i < e->size) && (e->data[i] == ' '); i++); - if (i && (i == e->size)) { - exif_entry_log (e, EXIF_LOG_CODE_DEBUG, - "The value of 'UserComment' is against specification. The value " - "has been reset."); - exif_mem_free (e->priv->mem, e->data); - e->data = NULL; - e->size = 0; - } - /* There need to be at least 8 bytes. */ if (e->size < 8) { e->data = exif_entry_realloc (e, e->data, 8 + e->size); @@ -303,9 +288,11 @@ exif_entry_fix (ExifEntry *e) * afterwards, let's assume ASCII and claim the 8 first * bytes for the format specifyer. */ - if (e->size >= 8) { + for (i = 0; (i < e->size) && !e->data[i]; i++); + if (!i) for ( ; (i < e->size) && (e->data[i] = ' '); i++); + if ((i >= 8) && (i < e->size)) { exif_entry_log (e, EXIF_LOG_CODE_DEBUG, - "Tag 'UserComment' did not start with " + "Tag 'UserComment' is not empty but does not start with " "format identifyer. This has been fixed."); memcpy (e->data, "ASCII\0\0\0", 8); } -- 2.7.4