aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/message-file.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <hohndel@infradead.org>2010-04-06 12:45:30 -0700
committerGravatar Carl Worth <cworth@cworth.org>2010-04-06 18:47:28 -0700
commita48f3687785b2c138b2c47848bd05512fc893a0b (patch)
tree73620a0e42fa4aff66c3db3fe180b34c92d71ad2 /lib/message-file.c
parent7d9851e293fad762cd959e9be819e48a26087cdc (diff)
fix notmuch_message_file_get_header
fix notmuch_message_file_get_header to always return the first instance of the header you are looking for Signed-off-by: Dirk Hohndel <hohndel@infradead.org>
Diffstat (limited to 'lib/message-file.c')
-rw-r--r--lib/message-file.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/message-file.c b/lib/message-file.c
index 3a1a681d..0c152a39 100644
--- a/lib/message-file.c
+++ b/lib/message-file.c
@@ -318,9 +318,15 @@ notmuch_message_file_get_header (notmuch_message_file_t *message,
match = (strcasecmp (header, header_desired) == 0);
decoded_value = g_mime_utils_header_decode_text (message->value.str);
-
- g_hash_table_insert (message->headers, header, decoded_value);
-
+ if (g_hash_table_lookup (message->headers, header) == NULL) {
+ /* Only insert if we don't have a value for this header, yet.
+ * This way we always return the FIRST instance of any header
+ * we search for
+ * FIXME: we should be returning ALL instances of a header
+ * or at least provide a way to iterate over them
+ */
+ g_hash_table_insert (message->headers, header, decoded_value);
+ }
if (match)
return decoded_value;
}