summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
1c63ec7)
Here's another instance where I "knew" gmime must have support for
some functionality, but not finding it, I rolled my own. Now that
I found g_mime_references_decode I'm glad to drop my ugly code.
* message. */
static void
parse_references (GPtrArray *array,
* message. */
static void
parse_references (GPtrArray *array,
- const char *end, *next;
+ GMimeReferences *refs, *r;
+ const char *message_id;
- while (*refs) {
- while (*refs && isspace (*refs))
- refs++;
- if (*refs == '<')
- refs++;
- end = refs;
- while (*end && !isspace (*end))
- end++;
- next = end;
- end--;
- if (end > refs && *end == '>')
- end--;
- if (end > refs) {
- g_ptr_array_add (array, g_strndup (refs, end - refs + 1));
- }
- refs = next;
+ refs = g_mime_references_decode (refs_str);
+
+ for (r = refs; r; r = r->next) {
+ message_id = g_mime_references_get_message_id (r);
+ g_ptr_array_add (array, g_strdup (message_id));
+
+ g_mime_references_free (refs);
}
/* Given a string representing the body of a message, generate terms
}
/* Given a string representing the body of a message, generate terms