From: Dan F. <dfa...@us...> - 2009-09-23 18:00:29
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv26149/libexif Modified Files: exif-content.c exif-entry.c Log Message: Removed bogus "APEX" value from shutter speed display (thanks to Jef Driesen for confirming this) Fixed a couple of off-by-one unnecessary string truncations Define M_PI for those systems that don't have it Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.133 retrieving revision 1.134 diff -u -p -d -r1.133 -r1.134 --- exif-entry.c 17 Sep 2009 22:32:59 -0000 1.133 +++ exif-entry.c 23 Sep 2009 18:00:16 -0000 1.134 @@ -32,6 +32,10 @@ #include <time.h> #include <math.h> +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + struct _ExifEntryPrivate { unsigned int ref_count; @@ -983,7 +987,7 @@ exif_entry_get_value (ExifEntry *e, char snprintf (val, maxlen, _("%.02lf EV"), d); snprintf (b, sizeof (b), _(" (f/%.01f)"), pow (2, d / 2.)); if (maxlen > strlen (val) + strlen (b)) - strncat (val, b, maxlen - strlen (val) - 1); + strncat (val, b, maxlen - strlen (val)); break; case EXIF_TAG_FOCAL_LENGTH: CF (e, EXIF_FORMAT_RATIONAL, val, maxlen); @@ -1022,7 +1026,7 @@ exif_entry_get_value (ExifEntry *e, char d = (double) v_rat.numerator / (double) v_rat.denominator; snprintf (val, maxlen, "%.1lf mm", d); if (maxlen > strlen (val) + strlen (b)) - strncat (val, b, maxlen - strlen (val) - 1); + strncat (val, b, maxlen - strlen (val)); break; case EXIF_TAG_SUBJECT_DISTANCE: CF (e, EXIF_FORMAT_RATIONAL, val, maxlen); @@ -1049,7 +1053,7 @@ exif_entry_get_value (ExifEntry *e, char else snprintf (val, maxlen, "%i", (int) d); if (maxlen > strlen (val) + strlen (_(" sec."))) - strncat (val, _(" sec."), maxlen - strlen (val) - 1); + strncat (val, _(" sec."), maxlen - strlen (val)); break; case EXIF_TAG_SHUTTER_SPEED_VALUE: CF (e, EXIF_FORMAT_SRATIONAL, val, maxlen); @@ -1061,18 +1065,12 @@ exif_entry_get_value (ExifEntry *e, char } d = (double) v_srat.numerator / (double) v_srat.denominator; snprintf (val, maxlen, _("%.02f EV"), d); - snprintf (b, sizeof (b), " (APEX: %i)", (int) pow (sqrt(2), d)); - if (maxlen > strlen (val) + strlen (b)) - strncat (val, b, maxlen - strlen (val) - 1); d = 1. / pow (2, d); if (d < 1) - snprintf (b, sizeof (b), _(" 1/%d sec.)"), (int) (1. / d)); + snprintf (b, sizeof (b), _(" (1/%d sec.)"), (int) (1. / d)); else - snprintf (b, sizeof (b), _(" %d sec.)"), (int) d); - if (maxlen > strlen (val) + strlen (b)) { - val[strlen (val) - 1] = ','; - strncat (val, b, maxlen - strlen (val) - 1); - } + snprintf (b, sizeof (b), _(" (%d sec.)"), (int) d); + strncat (val, b, maxlen - strlen (val)); break; case EXIF_TAG_BRIGHTNESS_VALUE: CF (e, EXIF_FORMAT_SRATIONAL, val, maxlen); @@ -1087,7 +1085,7 @@ exif_entry_get_value (ExifEntry *e, char snprintf (b, sizeof (b), _(" (%.02f cd/m^2)"), 1. / (M_PI * 0.3048 * 0.3048) * pow (2, d)); if (maxlen > strlen (val) + strlen (b)) - strncat (val, b, maxlen - strlen (val) - 1); + strncat (val, b, maxlen - strlen (val)); break; case EXIF_TAG_FILE_SOURCE: CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen); @@ -1114,7 +1112,8 @@ exif_entry_get_value (ExifEntry *e, char default: c = _("reserved"); break; } strncat (val, c, maxlen - strlen (val)); - if (i < 3) strncat (val, " ", maxlen - strlen (val)); + if (i < 3) + strncat (val, " ", maxlen - strlen (val)); } break; case EXIF_TAG_EXPOSURE_BIAS_VALUE: Index: exif-content.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -p -d -r1.30 -r1.31 --- exif-content.c 21 Jan 2009 00:27:41 -0000 1.30 +++ exif-content.c 23 Sep 2009 18:00:15 -0000 1.31 @@ -289,6 +289,7 @@ exif_content_fix (ExifContent *c) exif_content_remove_entry (c, e); break; case EXIF_SUPPORT_LEVEL_OPTIONAL: + case EXIF_SUPPORT_LEVEL_UNKNOWN: default: break; } |