Stopped printing some values as int in exif_mnote_data_get_value
authorDan Fandrich <dan@coneharvesters.com>
Wed, 17 Jul 2019 13:26:32 +0000 (15:26 +0200)
committerDan Fandrich <dan@coneharvesters.com>
Wed, 17 Jul 2019 13:38:30 +0000 (15:38 +0200)
This is the same change as the previous one but for the MakerNotes.
Patch from Google.

libexif/canon/mnote-canon-entry.c
libexif/olympus/mnote-olympus-entry.c

index f86b3e1..f59dce3 100644 (file)
@@ -665,9 +665,9 @@ mnote_canon_entry_get_value (const MnoteCanonEntry *entry, unsigned int t, char
                case 21:
                        d = apex_value_to_shutter_speed (vss / 32.0);
                        if (d < 1)
-                               snprintf (val, maxlen, _("1/%i"),(int)(1.0 / d));
+                               snprintf (val, maxlen, _("1/%.0f"), 1.0 / d);
                        else
-                               snprintf (val, maxlen, "%i", (int) d);
+                               snprintf (val, maxlen, "%.0f", d);
                        break;
                case 8:
                        snprintf (val, maxlen, "%u", vss);
index 3fa1cf8..32b5a22 100644 (file)
@@ -352,7 +352,7 @@ mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *v, unsigned int m
                CC (entry->components, 4, v, maxlen);
                vl =  exif_get_long (entry->data, entry->order);
                a = (vl>>24)&0xff; b = (vl>>16)&0xff; c = (vl>>8)&0xff;
-               snprintf (v, maxlen, "%.1f",  c?(float)a*((float)b/(float)c):0 );
+               snprintf (v, maxlen, "%.1f",  c?(double)a*((double)b/(double)c):0 );
                break;
        }
        case MNOTE_NIKON_TAG_FLASHEXPCOMPENSATION: