]>
Commit | Line | Data |
---|---|---|
3a91e177 JB |
1 | From c45cca777aa3477eaf297db99f337e18d9683c61 Mon Sep 17 00:00:00 2001 |
2 | From: Kevin Backhouse <kevinbackhouse@github.com> | |
3 | Date: Wed, 21 Jun 2023 12:23:33 +0100 | |
4 | Subject: [PATCH] Add ExifData as extra argument to | |
5 | exif_item_get_data_as_text(). | |
6 | ||
7 | --- | |
8 | src/advanced-exif.cc | 2 +- | |
9 | src/exif-common.cc | 2 +- | |
10 | src/exif.cc | 8 ++++---- | |
11 | src/exif.h | 2 +- | |
12 | src/exiv2.cc | 4 ++-- | |
13 | 5 files changed, 9 insertions(+), 9 deletions(-) | |
14 | ||
15 | diff --git a/src/advanced-exif.cc b/src/advanced-exif.cc | |
16 | index 79a54b12..e3d3067a 100644 | |
17 | --- a/src/advanced-exif.cc | |
18 | +++ b/src/advanced-exif.cc | |
19 | @@ -120,7 +120,7 @@ static void advanced_exif_update(ExifWin *ew) | |
20 | tag = g_strdup_printf("0x%04x", exif_item_get_tag_id(item)); | |
21 | tag_name = exif_item_get_tag_name(item); | |
22 | format = exif_item_get_format_name(item, TRUE); | |
23 | - text = exif_item_get_data_as_text(item); | |
24 | + text = exif_item_get_data_as_text(item, exif); | |
25 | utf8_text = utf8_validate_or_convert(text); | |
26 | g_free(text); | |
27 | elements = g_strdup_printf("%d", exif_item_get_elements(item)); | |
28 | diff --git a/src/exif-common.cc b/src/exif-common.cc | |
29 | index 6a4c9740..b6f07ca6 100644 | |
30 | --- a/src/exif-common.cc | |
31 | +++ b/src/exif-common.cc | |
32 | @@ -995,7 +995,7 @@ gchar *exif_get_data_as_text(ExifData *exif, const gchar *key) | |
33 | if (key_valid) return text; | |
34 | ||
35 | item = exif_get_item(exif, key); | |
36 | - if (item) return exif_item_get_data_as_text(item); | |
37 | + if (item) return exif_item_get_data_as_text(item, exif); | |
38 | ||
39 | return nullptr; | |
40 | } | |
41 | diff --git a/src/exif.cc b/src/exif.cc | |
42 | index 8708ff53..cda2cb1a 100644 | |
43 | --- a/src/exif.cc | |
44 | +++ b/src/exif.cc | |
45 | @@ -1454,7 +1454,7 @@ gchar *exif_item_get_string(ExifItem *item, gint UNUSED(idx)) | |
46 | return exif_item_get_data_as_text_full(item, METADATA_PLAIN); | |
47 | } | |
48 | ||
49 | -gchar *exif_item_get_data_as_text(ExifItem *item) | |
50 | +gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif) | |
51 | { | |
52 | return exif_item_get_data_as_text_full(item, METADATA_FORMATTED); | |
53 | } | |
54 | @@ -1527,11 +1527,11 @@ gchar *exif_get_tag_description_by_key(const gchar *key) | |
55 | return NULL; | |
56 | } | |
57 | ||
58 | -static void exif_write_item(FILE *f, ExifItem *item) | |
59 | +static void exif_write_item(FILE *f, ExifItem *item, ExifData *exif) | |
60 | { | |
61 | gchar *text; | |
62 | ||
63 | - text = exif_item_get_data_as_text(item); | |
64 | + text = exif_item_get_data_as_text(item, exif); | |
65 | if (text) | |
66 | { | |
67 | gchar *tag = exif_item_get_tag_name(item); | |
68 | @@ -1578,7 +1578,7 @@ void exif_write_data_list(ExifData *exif, FILE *f, gint human_readable_list) | |
69 | item = (ExifItem*)(work->data); | |
70 | work = work->next; | |
71 | ||
72 | - exif_write_item(f, item); | |
73 | + exif_write_item(f, item, exif); | |
74 | } | |
75 | } | |
76 | g_fprintf(f, "----------------------------------------------------\n"); | |
77 | diff --git a/src/exif.h b/src/exif.h | |
78 | index fcc7d8f5..4b03c201 100644 | |
79 | --- a/src/exif.h | |
80 | +++ b/src/exif.h | |
81 | @@ -136,7 +136,7 @@ gchar *exif_item_get_data(ExifItem *item, guint *data_len); | |
82 | gchar *exif_item_get_description(ExifItem *item); | |
83 | guint exif_item_get_format_id(ExifItem *item); | |
84 | const gchar *exif_item_get_format_name(ExifItem *item, gboolean brief); | |
85 | -gchar *exif_item_get_data_as_text(ExifItem *item); | |
86 | +gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif); | |
87 | gint exif_item_get_integer(ExifItem *item, gint *value); | |
88 | ExifRational *exif_item_get_rational(ExifItem *item, gint *sign, guint n); | |
89 | ||
90 | diff --git a/src/exiv2.cc b/src/exiv2.cc | |
91 | index 33b779e7..dc62e8e0 100644 | |
92 | --- a/src/exiv2.cc | |
93 | +++ b/src/exiv2.cc | |
94 | @@ -778,13 +778,13 @@ const char *exif_item_get_format_name(ExifItem *item, gboolean UNUSED(brief)) | |
95 | } | |
96 | ||
97 | ||
98 | -gchar *exif_item_get_data_as_text(ExifItem *item) | |
99 | +gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif) | |
100 | { | |
101 | try { | |
102 | if (!item) return nullptr; | |
103 | auto metadatum = reinterpret_cast<Exiv2::Metadatum *>(item); | |
104 | #if EXIV2_TEST_VERSION(0,17,0) | |
105 | - return utf8_validate_or_convert(metadatum->print().c_str()); | |
106 | + return utf8_validate_or_convert(metadatum->print(&exif->exifData()).c_str()); | |
107 | #else | |
108 | std::stringstream str; | |
109 | Exiv2::Exifdatum *exifdatum; | |
110 | From b04f7cd0546976dc4f7ea440648ac0eedd8df3ce Mon Sep 17 00:00:00 2001 | |
111 | From: Colin Clark <colin.clark@cclark.uk> | |
112 | Date: Wed, 21 Jun 2023 14:24:41 +0100 | |
113 | Subject: [PATCH] Remove exiv2 0.28.0 restriction | |
114 | ||
115 | https://github.com/BestImageViewer/geeqie/pull/1119 | |
116 | ||
117 | The bug was fixed in the above commit. | |
118 | --- | |
119 | meson.build | 12 ++---------- | |
120 | 1 file changed, 2 insertions(+), 10 deletions(-) | |
121 | ||
122 | diff --git a/meson.build b/meson.build | |
123 | index a4cab49c..412399fe 100644 | |
124 | --- a/meson.build | |
125 | +++ b/meson.build | |
126 | @@ -280,15 +280,7 @@ else | |
127 | endif | |
128 | ||
129 | exiv2_dep = [] | |
130 | -# See https://github.com/BestImageViewer/geeqie/issues/1090 | |
131 | -# for the reason for 0.28.0 exclusion | |
132 | -req_version = ['>=0.11', '!=0.28.0'] | |
133 | - | |
134 | -req_version_str = '' | |
135 | -foreach req_version_str_ : req_version | |
136 | - req_version_str += req_version_str_ | |
137 | -endforeach | |
138 | - | |
139 | +req_version = '>=0.11' | |
140 | option = get_option('exiv2') | |
141 | if not option.disabled() | |
142 | exiv2_dep = dependency('exiv2', version : req_version, required : get_option('exiv2')) | |
143 | @@ -296,7 +288,7 @@ if not option.disabled() | |
144 | conf_data.set('HAVE_EXIV2', 1) | |
145 | summary({'exiv2' : ['image metadata processed by exiv2:', true]}, section : 'Configuration', bool_yn : true) | |
146 | else | |
147 | - summary({'exiv2' : ['exiv2 ' + req_version_str + ' not found - image data not processed by exiv2:', false]}, section : 'Configuration', bool_yn : true) | |
148 | + summary({'exiv2' : ['exiv2 ' + req_version + ' not found - image data not processed by exiv2:', false]}, section : 'Configuration', bool_yn : true) | |
149 | endif | |
150 | else | |
151 | summary({'exiv2' : ['disabled - image data processed by exiv2:', false]}, section : 'Configuration', bool_yn : true) |