LGTM in principle, though I'd like to see a test of some of the malformed RFC 2047 that this lets us decode. Is there a summary somewhere of exactly what these workarounds enable?
This isn't directly related to this patch, but is there a reason we g_mime_init in so many different places? Both the CLI and notmuch_database_open I can understand because the CLI also uses GMime and should be sure it's initialized. Maaaybe notmuch_message_file_get_header because notmuch_message_file theoretically independent of the database, even though I don't think it's possible to call into it without first calling notmuch_database_open. But _notmuch_message_index_file? On Tue, 10 Sep 2013, Jani Nikula <j...@nikula.org> wrote: > As explained by Jeffrey Stedfast, the author of GMime, quoted in [1]: > >> Passing the GMIME_ENABLE_RFC2047_WORKAROUNDS flag to g_mime_init() >> *should* solve the decoding problem mentioned in the thread. This >> flag should be safe to pass into g_mime_init() without any bad side >> effects and my unit tests do test that code-path. > > The thread being referred to is [2]. > > [1] id:87bo56viyo....@nikula.org > [2] id:08cb1dcd-c5db-4e33-8b09-7730cb3d5...@gmail.com > --- > lib/database.cc | 2 +- > lib/index.cc | 2 +- > lib/message-file.c | 2 +- > notmuch.c | 2 +- > 4 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/lib/database.cc b/lib/database.cc > index 5cc0765..bb4f180 100644 > --- a/lib/database.cc > +++ b/lib/database.cc > @@ -655,7 +655,7 @@ notmuch_database_open (const char *path, > > /* Initialize gmime */ > if (! initialized) { > - g_mime_init (0); > + g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS); > initialized = 1; > } > > diff --git a/lib/index.cc b/lib/index.cc > index a2edd6d..78c18cf 100644 > --- a/lib/index.cc > +++ b/lib/index.cc > @@ -440,7 +440,7 @@ _notmuch_message_index_file (notmuch_message_t *message, > static bool mbox_warning = false; > > if (! initialized) { > - g_mime_init (0); > + g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS); > initialized = 1; > } > > diff --git a/lib/message-file.c b/lib/message-file.c > index 4d9af89..a2850c2 100644 > --- a/lib/message-file.c > +++ b/lib/message-file.c > @@ -228,7 +228,7 @@ notmuch_message_file_get_header (notmuch_message_file_t > *message, > is_received = (strcmp(header_desired,"received") == 0); > > if (! initialized) { > - g_mime_init (0); > + g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS); > initialized = 1; > } > > diff --git a/notmuch.c b/notmuch.c > index 78d29a8..7300c21 100644 > --- a/notmuch.c > +++ b/notmuch.c > @@ -264,7 +264,7 @@ main (int argc, char *argv[]) > > local = talloc_new (NULL); > > - g_mime_init (0); > + g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS); > #if !GLIB_CHECK_VERSION(2, 35, 1) > g_type_init (); > #endif > -- > 1.8.4.rc3 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch