Update of /cvsroot/libexif/libexif/libexif
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv16648/libexif
Modified Files:
exif-entry.c
Log Message:
2007-12-27 Lutz Mueller <lu...@us...>
Suggestion by Andreas Kleinert <And...@gm...>:
* libexif/exif-entry.c: (exif_entry_get_value) Use %lf for double
instead of %f (which is for float).
Index: exif-entry.c
===================================================================
RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -p -d -r1.111 -r1.112
--- exif-entry.c 14 Nov 2007 05:27:18 -0000 1.111
+++ exif-entry.c 27 Dec 2007 16:22:57 -0000 1.112
@@ -722,8 +722,8 @@ exif_entry_get_value (ExifEntry *e, char
CC (e, 1, val, maxlen);
v_rat = exif_get_rational (e->data, o);
if (!v_rat.denominator) return val;
- snprintf (val, maxlen, "f/%.01f", (float) v_rat.numerator /
- (float) v_rat.denominator);
+ d = (double) v_rat.numerator / (double) v_rat.denominator;
+ snprintf (val, maxlen, "f/%.01lf", d);
break;
case EXIF_TAG_APERTURE_VALUE:
case EXIF_TAG_MAX_APERTURE_VALUE:
@@ -732,7 +732,7 @@ exif_entry_get_value (ExifEntry *e, char
v_rat = exif_get_rational (e->data, o);
if (!v_rat.denominator) return val;
d = (double) v_rat.numerator / (double) v_rat.denominator;
- snprintf (val, maxlen, _("%.02f EV"), d);
+ 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);
@@ -768,8 +768,8 @@ exif_entry_get_value (ExifEntry *e, char
(int) (d * (double) v_rat.numerator /
(double) v_rat.denominator));
- snprintf (val, maxlen, "%.1f mm",
- (float) v_rat.numerator / (float) v_rat.denominator);
+ 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);
break;
@@ -778,8 +778,8 @@ exif_entry_get_value (ExifEntry *e, char
CC (e, 1, val, maxlen);
v_rat = exif_get_rational (e->data, o);
if (!v_rat.denominator) return val;
- snprintf (val, maxlen, "%.1f m", (float) v_rat.numerator /
- (float) v_rat.denominator);
+ d = (double) v_rat.numerator / (double) v_rat.denominator;
+ snprintf (val, maxlen, "%.1lf m", d);
break;
case EXIF_TAG_EXPOSURE_TIME:
CF (e, EXIF_FORMAT_RATIONAL, val, maxlen);
@@ -788,8 +788,7 @@ exif_entry_get_value (ExifEntry *e, char
if (!v_rat.denominator) return val;
d = (double) v_rat.numerator / (double) v_rat.denominator;
if (d < 1)
- snprintf (val, maxlen, _("1/%d"),
- (int) (1. / d));
+ snprintf (val, maxlen, _("1/%d"), (int) (1. / d));
else
snprintf (val, maxlen, _("%d"), (int) d);
if (maxlen > strlen (val) + strlen (_(" sec.")))
@@ -1068,20 +1067,29 @@ exif_entry_get_value (ExifEntry *e, char
break;
case EXIF_FORMAT_RATIONAL:
v_rat = exif_get_rational (e->data, o);
- if (v_rat.denominator) {
- snprintf (val, maxlen, "%2.2f", (double)v_rat.numerator / v_rat.denominator);
- } else {
- snprintf (val, maxlen, "%i/%i", v_rat.numerator, v_rat.denominator);
- }
+ if (v_rat.denominator)
+ snprintf (val, maxlen, "%2.2lf",
+ (double) v_rat.numerator /
+ (double) v_rat.denominator);
+ else
+ snprintf (val, maxlen, "%2.2lf/%2.2lf",
+ (double) v_rat.numerator,
+ (double) v_rat.denominator);
maxlen -= strlen (val);
for (i = 1; i < e->components; i++) {
v_rat = exif_get_rational (
e->data + 8 * i, o);
- snprintf (b, sizeof (b), ", %2.2f",
- (double)v_rat.numerator / v_rat.denominator);
+ if (v_rat.denominator)
+ snprintf (b, sizeof (b), ", %2.2lf",
+ (double) v_rat.numerator /
+ (double) v_rat.denominator);
+ else
+ snprintf (b, sizeof (b), ", %2.2lf/%2.2lf",
+ (double) v_rat.numerator,
+ (double) v_rat.denominator);
strncat (val, b, maxlen);
maxlen -= strlen (b);
- if ((signed)maxlen <= 0) break;
+ if ((signed) maxlen <= 0) break;
}
break;
case EXIF_FORMAT_SRATIONAL:
|