From c45cca777aa3477eaf297db99f337e18d9683c61 Mon Sep 17 00:00:00 2001 From: Kevin Backhouse Date: Wed, 21 Jun 2023 12:23:33 +0100 Subject: [PATCH] Add ExifData as extra argument to exif_item_get_data_as_text(). --- src/advanced-exif.cc | 2 +- src/exif-common.cc | 2 +- src/exif.cc | 8 ++++---- src/exif.h | 2 +- src/exiv2.cc | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/advanced-exif.cc b/src/advanced-exif.cc index 79a54b12f..e3d3067a9 100644 --- a/src/advanced-exif.cc +++ b/src/advanced-exif.cc @@ -120,7 +120,7 @@ static void advanced_exif_update(ExifWin *ew) tag = g_strdup_printf("0x%04x", exif_item_get_tag_id(item)); tag_name = exif_item_get_tag_name(item); format = exif_item_get_format_name(item, TRUE); - text = exif_item_get_data_as_text(item); + text = exif_item_get_data_as_text(item, exif); utf8_text = utf8_validate_or_convert(text); g_free(text); elements = g_strdup_printf("%d", exif_item_get_elements(item)); diff --git a/src/exif-common.cc b/src/exif-common.cc index 6a4c9740f..b6f07ca63 100644 --- a/src/exif-common.cc +++ b/src/exif-common.cc @@ -995,7 +995,7 @@ gchar *exif_get_data_as_text(ExifData *exif, const gchar *key) if (key_valid) return text; item = exif_get_item(exif, key); - if (item) return exif_item_get_data_as_text(item); + if (item) return exif_item_get_data_as_text(item, exif); return nullptr; } diff --git a/src/exif.cc b/src/exif.cc index 8708ff534..cda2cb1a6 100644 --- a/src/exif.cc +++ b/src/exif.cc @@ -1454,7 +1454,7 @@ gchar *exif_item_get_string(ExifItem *item, gint UNUSED(idx)) return exif_item_get_data_as_text_full(item, METADATA_PLAIN); } -gchar *exif_item_get_data_as_text(ExifItem *item) +gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif) { return exif_item_get_data_as_text_full(item, METADATA_FORMATTED); } @@ -1527,11 +1527,11 @@ gchar *exif_get_tag_description_by_key(const gchar *key) return NULL; } -static void exif_write_item(FILE *f, ExifItem *item) +static void exif_write_item(FILE *f, ExifItem *item, ExifData *exif) { gchar *text; - text = exif_item_get_data_as_text(item); + text = exif_item_get_data_as_text(item, exif); if (text) { gchar *tag = exif_item_get_tag_name(item); @@ -1578,7 +1578,7 @@ void exif_write_data_list(ExifData *exif, FILE *f, gint human_readable_list) item = (ExifItem*)(work->data); work = work->next; - exif_write_item(f, item); + exif_write_item(f, item, exif); } } g_fprintf(f, "----------------------------------------------------\n"); diff --git a/src/exif.h b/src/exif.h index fcc7d8f54..4b03c2012 100644 --- a/src/exif.h +++ b/src/exif.h @@ -136,7 +136,7 @@ gchar *exif_item_get_data(ExifItem *item, guint *data_len); gchar *exif_item_get_description(ExifItem *item); guint exif_item_get_format_id(ExifItem *item); const gchar *exif_item_get_format_name(ExifItem *item, gboolean brief); -gchar *exif_item_get_data_as_text(ExifItem *item); +gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif); gint exif_item_get_integer(ExifItem *item, gint *value); ExifRational *exif_item_get_rational(ExifItem *item, gint *sign, guint n); diff --git a/src/exiv2.cc b/src/exiv2.cc index 33b779e77..dc62e8e04 100644 --- a/src/exiv2.cc +++ b/src/exiv2.cc @@ -778,13 +778,13 @@ const char *exif_item_get_format_name(ExifItem *item, gboolean UNUSED(brief)) } -gchar *exif_item_get_data_as_text(ExifItem *item) +gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif) { try { if (!item) return nullptr; auto metadatum = reinterpret_cast(item); #if EXIV2_TEST_VERSION(0,17,0) - return utf8_validate_or_convert(metadatum->print().c_str()); + return utf8_validate_or_convert(metadatum->print(&exif->exifData()).c_str()); #else std::stringstream str; Exiv2::Exifdatum *exifdatum;