]> git.pld-linux.org Git - packages/geeqie.git/blob - geeqie-exif-fix.patch
- updated to 2.1 with exif fixes from git (to allow exiv2 0.28)
[packages/geeqie.git] / geeqie-exif-fix.patch
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)
This page took 0.077618 seconds and 3 git commands to generate.