1 |
pacho 13/10/02 19:23:58 |
2 |
|
3 |
Added: gmime-2.6.18-custom-headers.patch |
4 |
gmime-2.6.18-close-reference.patch |
5 |
gmime-2.6.18-code-cleanup.patch |
6 |
gmime-2.6.18-mutexes-earlier.patch |
7 |
Log: |
8 |
Apply upstream fixes, also solving problems with pan (#486776 by Duncan), drop old. |
9 |
|
10 |
(Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key A188FBD4) |
11 |
|
12 |
Revision Changes Path |
13 |
1.1 dev-libs/gmime/files/gmime-2.6.18-custom-headers.patch |
14 |
|
15 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/gmime/files/gmime-2.6.18-custom-headers.patch?rev=1.1&view=markup |
16 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/gmime/files/gmime-2.6.18-custom-headers.patch?rev=1.1&content-type=text/plain |
17 |
|
18 |
Index: gmime-2.6.18-custom-headers.patch |
19 |
=================================================================== |
20 |
From a248cc044c6ad55505939363aa858c930867a014 Mon Sep 17 00:00:00 2001 |
21 |
From: Jeffrey Stedfast <fejj@×××××.org> |
22 |
Date: Sun, 29 Sep 2013 17:23:30 +0000 |
23 |
Subject: Implemented custom header writer for References |
24 |
|
25 |
2013-09-29 Jeffrey Stedfast <fejj@×××××.org> |
26 |
|
27 |
* gmime/gmime-message.c (write_references): Custom writer for |
28 |
References headers so that individual msgid tokens do not get |
29 |
folded. Fixes bug #709031. |
30 |
--- |
31 |
diff --git a/ChangeLog b/ChangeLog |
32 |
index c0e414f..79587b8 100644 |
33 |
--- a/ChangeLog |
34 |
+++ b/ChangeLog |
35 |
@@ -1,3 +1,9 @@ |
36 |
+2013-09-29 Jeffrey Stedfast <fejj@×××××.org> |
37 |
+ |
38 |
+ * gmime/gmime-message.c (write_references): Custom writer for |
39 |
+ References headers so that individual msgid tokens do not get |
40 |
+ folded. Fixes bug #709031. |
41 |
+ |
42 |
2013-09-26 Jeffrey Stedfast <fejj@×××××.org> |
43 |
|
44 |
* gmime/gmime.c (g_mime_init): Initialize the mutexes |
45 |
diff --git a/gmime/gmime-message.c b/gmime/gmime-message.c |
46 |
index 1b92577..170116b 100644 |
47 |
--- a/gmime/gmime-message.c |
48 |
+++ b/gmime/gmime-message.c |
49 |
@@ -67,7 +67,8 @@ static char *message_get_headers (GMimeObject *object); |
50 |
static ssize_t message_write_to_stream (GMimeObject *object, GMimeStream *stream); |
51 |
static void message_encode (GMimeObject *object, GMimeEncodingConstraint constraint); |
52 |
|
53 |
-static ssize_t write_structured (GMimeStream *stream, const char *name, const char *value); |
54 |
+/*static ssize_t write_structured (GMimeStream *stream, const char *name, const char *value);*/ |
55 |
+static ssize_t write_references (GMimeStream *stream, const char *name, const char *value); |
56 |
static ssize_t write_addrspec (GMimeStream *stream, const char *name, const char *value); |
57 |
static ssize_t write_received (GMimeStream *stream, const char *name, const char *value); |
58 |
static ssize_t write_subject (GMimeStream *stream, const char *name, const char *value); |
59 |
@@ -233,7 +234,7 @@ g_mime_message_init (GMimeMessage *message, GMimeMessageClass *klass) |
60 |
g_mime_header_list_register_writer (headers, "Subject", write_subject); |
61 |
g_mime_header_list_register_writer (headers, "Received", write_received); |
62 |
g_mime_header_list_register_writer (headers, "Message-Id", write_msgid); |
63 |
- g_mime_header_list_register_writer (headers, "References", write_structured); |
64 |
+ g_mime_header_list_register_writer (headers, "References", write_references); |
65 |
} |
66 |
|
67 |
static void |
68 |
@@ -618,12 +619,54 @@ write_subject (GMimeStream *stream, const char *name, const char *value) |
69 |
static ssize_t |
70 |
write_msgid (GMimeStream *stream, const char *name, const char *value) |
71 |
{ |
72 |
- /* we don't want to wrap the Message-Id header - seems to |
73 |
+ /* Note: we don't want to wrap the Message-Id header - seems to |
74 |
break a lot of clients (and servers) */ |
75 |
return g_mime_stream_printf (stream, "%s: %s\n", name, value); |
76 |
} |
77 |
|
78 |
static ssize_t |
79 |
+write_references (GMimeStream *stream, const char *name, const char *value) |
80 |
+{ |
81 |
+ GMimeReferences *references, *reference; |
82 |
+ ssize_t nwritten; |
83 |
+ GString *folded; |
84 |
+ size_t len, n; |
85 |
+ |
86 |
+ /* Note: we don't want to break in the middle of msgid tokens as |
87 |
+ it seems to break a lot of clients (and servers) */ |
88 |
+ references = g_mime_references_decode (value); |
89 |
+ folded = g_string_new (name); |
90 |
+ g_string_append_len (folded, ": ", 2); |
91 |
+ len = folded->len; |
92 |
+ |
93 |
+ reference = references; |
94 |
+ while (reference != NULL) { |
95 |
+ n = strlen (reference->msgid); |
96 |
+ if (len > 1 && len + n + 1 >= GMIME_FOLD_LEN) { |
97 |
+ g_string_append_len (folded, "\n\t", 2); |
98 |
+ len = 1; |
99 |
+ } else { |
100 |
+ g_string_append_len (folded, " ", 1); |
101 |
+ len++; |
102 |
+ } |
103 |
+ |
104 |
+ g_string_append_len (folded, reference->msgid, n); |
105 |
+ len += n; |
106 |
+ |
107 |
+ reference = reference->next; |
108 |
+ } |
109 |
+ |
110 |
+ g_mime_references_clear (&references); |
111 |
+ |
112 |
+ g_string_append_len (folded, "\n", 1); |
113 |
+ nwritten = g_mime_stream_write (stream, folded->str, folded->len); |
114 |
+ g_string_free (folded, TRUE); |
115 |
+ |
116 |
+ return nwritten; |
117 |
+} |
118 |
+ |
119 |
+#if 0 |
120 |
+static ssize_t |
121 |
write_structured (GMimeStream *stream, const char *name, const char *value) |
122 |
{ |
123 |
char *folded; |
124 |
@@ -635,6 +678,7 @@ write_structured (GMimeStream *stream, const char *name, const char *value) |
125 |
|
126 |
return n; |
127 |
} |
128 |
+#endif |
129 |
|
130 |
static ssize_t |
131 |
write_addrspec (GMimeStream *stream, const char *name, const char *value) |
132 |
-- |
133 |
cgit v0.9.2 |
134 |
|
135 |
|
136 |
|
137 |
1.1 dev-libs/gmime/files/gmime-2.6.18-close-reference.patch |
138 |
|
139 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/gmime/files/gmime-2.6.18-close-reference.patch?rev=1.1&view=markup |
140 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/gmime/files/gmime-2.6.18-close-reference.patch?rev=1.1&content-type=text/plain |
141 |
|
142 |
Index: gmime-2.6.18-close-reference.patch |
143 |
=================================================================== |
144 |
From 1373f11f9b3ecdbfb58a70a742506f3f6d5c57d8 Mon Sep 17 00:00:00 2001 |
145 |
From: Jeffrey Stedfast <fejj@×××××.org> |
146 |
Date: Sun, 29 Sep 2013 17:34:25 +0000 |
147 |
Subject: Oops, eclose each reference msgid token between '<' and '>' |
148 |
|
149 |
--- |
150 |
diff --git a/gmime/gmime-message.c b/gmime/gmime-message.c |
151 |
index 170116b..b6243fd 100644 |
152 |
--- a/gmime/gmime-message.c |
153 |
+++ b/gmime/gmime-message.c |
154 |
@@ -642,16 +642,18 @@ write_references (GMimeStream *stream, const char *name, const char *value) |
155 |
reference = references; |
156 |
while (reference != NULL) { |
157 |
n = strlen (reference->msgid); |
158 |
- if (len > 1 && len + n + 1 >= GMIME_FOLD_LEN) { |
159 |
+ if (len > 1 && len + n + 3 >= GMIME_FOLD_LEN) { |
160 |
g_string_append_len (folded, "\n\t", 2); |
161 |
len = 1; |
162 |
} else { |
163 |
- g_string_append_len (folded, " ", 1); |
164 |
+ g_string_append_c (folded, ' '); |
165 |
len++; |
166 |
} |
167 |
|
168 |
+ g_string_append_c (folded, '<'); |
169 |
g_string_append_len (folded, reference->msgid, n); |
170 |
- len += n; |
171 |
+ g_string_append_c (folded, '>'); |
172 |
+ len += n + 2; |
173 |
|
174 |
reference = reference->next; |
175 |
} |
176 |
-- |
177 |
cgit v0.9.2 |
178 |
|
179 |
|
180 |
|
181 |
1.1 dev-libs/gmime/files/gmime-2.6.18-code-cleanup.patch |
182 |
|
183 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/gmime/files/gmime-2.6.18-code-cleanup.patch?rev=1.1&view=markup |
184 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/gmime/files/gmime-2.6.18-code-cleanup.patch?rev=1.1&content-type=text/plain |
185 |
|
186 |
Index: gmime-2.6.18-code-cleanup.patch |
187 |
=================================================================== |
188 |
From c9f92d53f591ae4e893fc81ccc49ea9d2f4f168c Mon Sep 17 00:00:00 2001 |
189 |
From: Jeffrey Stedfast <fejj@×××××.org> |
190 |
Date: Mon, 23 Sep 2013 13:46:06 +0000 |
191 |
Subject: Minor code/comment cleanup |
192 |
|
193 |
--- |
194 |
diff --git a/gmime/gmime-param.c b/gmime/gmime-param.c |
195 |
index 4dd98d5..667adf7 100644 |
196 |
--- a/gmime/gmime-param.c |
197 |
+++ b/gmime/gmime-param.c |
198 |
@@ -396,7 +396,7 @@ rfc2184_param_charset (const char **in, char **langp) |
199 |
if (langp) |
200 |
*langp = NULL; |
201 |
|
202 |
- while (*inptr != '\0' && *inptr != '\'') |
203 |
+ while (*inptr && *inptr != '\'') |
204 |
inptr++; |
205 |
|
206 |
if (*inptr != '\'') |
207 |
@@ -408,7 +408,7 @@ rfc2184_param_charset (const char **in, char **langp) |
208 |
charset[len] = '\0'; |
209 |
|
210 |
lang = ++inptr; |
211 |
- while (*inptr != '\0' && *inptr != '\'') |
212 |
+ while (*inptr && *inptr != '\'') |
213 |
inptr++; |
214 |
|
215 |
if (*inptr == '\'') { |
216 |
diff --git a/gmime/gmime-utils.c b/gmime/gmime-utils.c |
217 |
index ada8faf..41d5639 100644 |
218 |
--- a/gmime/gmime-utils.c |
219 |
+++ b/gmime/gmime-utils.c |
220 |
@@ -2743,7 +2743,7 @@ header_fold_tokens (const char *field, const char *value, size_t vlen, rfc2047_t |
221 |
g_string_insert_c (output, tab, '\n'); |
222 |
len = (lwsp - tab) + 1; |
223 |
} else if (lwsp != 0) { |
224 |
- /* break just before the last lwsp character i*/ |
225 |
+ /* break just before the last lwsp character */ |
226 |
g_string_insert_c (output, lwsp, '\n'); |
227 |
len = 1; |
228 |
} else if (len > 1) { |
229 |
@@ -2769,7 +2769,7 @@ header_fold_tokens (const char *field, const char *value, size_t vlen, rfc2047_t |
230 |
g_string_insert_c (output, tab, '\n'); |
231 |
len = (lwsp - tab) + 1; |
232 |
} else if (lwsp != 0) { |
233 |
- /* break just before the last lwsp character i*/ |
234 |
+ /* break just before the last lwsp character */ |
235 |
g_string_insert_c (output, lwsp, '\n'); |
236 |
len = 1; |
237 |
} else if (len > 1) { |
238 |
-- |
239 |
cgit v0.9.2 |
240 |
|
241 |
|
242 |
|
243 |
1.1 dev-libs/gmime/files/gmime-2.6.18-mutexes-earlier.patch |
244 |
|
245 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/gmime/files/gmime-2.6.18-mutexes-earlier.patch?rev=1.1&view=markup |
246 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/gmime/files/gmime-2.6.18-mutexes-earlier.patch?rev=1.1&content-type=text/plain |
247 |
|
248 |
Index: gmime-2.6.18-mutexes-earlier.patch |
249 |
=================================================================== |
250 |
From bb1c6094e04ce54de52289cd5ba7f9b73694ef1f Mon Sep 17 00:00:00 2001 |
251 |
From: Jeffrey Stedfast <fejj@×××××.org> |
252 |
Date: Thu, 26 Sep 2013 12:46:10 +0000 |
253 |
Subject: Initialize mutexes earlier in g_mime_init |
254 |
|
255 |
2013-09-26 Jeffrey Stedfast <fejj@×××××.org> |
256 |
|
257 |
* gmime/gmime.c (g_mime_init): Initialize the mutexes |
258 |
earlier. Fixes bug #708818. |
259 |
--- |
260 |
diff --git a/ChangeLog b/ChangeLog |
261 |
index 5071304..c0e414f 100644 |
262 |
--- a/ChangeLog |
263 |
+++ b/ChangeLog |
264 |
@@ -1,3 +1,8 @@ |
265 |
+2013-09-26 Jeffrey Stedfast <fejj@×××××.org> |
266 |
+ |
267 |
+ * gmime/gmime.c (g_mime_init): Initialize the mutexes |
268 |
+ earlier. Fixes bug #708818. |
269 |
+ |
270 |
2013-09-15 Jeffrey Stedfast <fejj@×××××.org> |
271 |
|
272 |
* README: Bumped version |
273 |
diff --git a/gmime/gmime.c b/gmime/gmime.c |
274 |
index 89326a4..80c80f5 100644 |
275 |
--- a/gmime/gmime.c |
276 |
+++ b/gmime/gmime.c |
277 |
@@ -132,6 +132,13 @@ g_mime_init (guint32 flags) |
278 |
g_type_init (); |
279 |
#endif |
280 |
|
281 |
+#ifdef G_THREADS_ENABLED |
282 |
+ g_mutex_init (&G_LOCK_NAME (iconv_cache)); |
283 |
+ g_mutex_init (&G_LOCK_NAME (iconv_utils)); |
284 |
+ g_mutex_init (&G_LOCK_NAME (charset)); |
285 |
+ g_mutex_init (&G_LOCK_NAME (msgid)); |
286 |
+#endif |
287 |
+ |
288 |
g_mime_charset_map_init (); |
289 |
g_mime_iconv_utils_init (); |
290 |
g_mime_iconv_init (); |
291 |
@@ -144,13 +151,6 @@ g_mime_init (guint32 flags) |
292 |
gmime_gpgme_error_quark = g_quark_from_static_string ("gmime-gpgme"); |
293 |
gmime_error_quark = g_quark_from_static_string ("gmime"); |
294 |
|
295 |
-#ifdef G_THREADS_ENABLED |
296 |
- g_mutex_init (&G_LOCK_NAME (iconv_cache)); |
297 |
- g_mutex_init (&G_LOCK_NAME (iconv_utils)); |
298 |
- g_mutex_init (&G_LOCK_NAME (charset)); |
299 |
- g_mutex_init (&G_LOCK_NAME (msgid)); |
300 |
-#endif |
301 |
- |
302 |
/* register our GObject types with the GType system */ |
303 |
g_mime_crypto_context_get_type (); |
304 |
g_mime_decrypt_result_get_type (); |
305 |
-- |
306 |
cgit v0.9.2 |