notmuch/lib
Jani Nikula 473930bb6f lib: replace the header parser with gmime
The notmuch library includes a full blown message header parser. Yet
the same message headers are parsed by gmime during indexing. Switch
to gmime parsing completely.

These are the main changes:

* Gmime stops header parsing at the first invalid header, and presumes
  the message body starts from there. The current parser is quite
  liberal in accepting broken headers. The change means we will be
  much pickier about accepting invalid messages.

* The current parser converts tabs used in header folding to
  spaces. Gmime preserve the tabs. Due to a broken python library used
  in mailman, there are plenty of mailing lists that produce headers
  with tabs in header folding, and we'll see plenty of tabs. (This
  change has been mitigated in preparatory patches.)

* For pure header parsing, the current parser is likely faster than
  gmime, which parses the whole message rather than just the
  headers. Since we parse the message and its headers using gmime for
  indexing anyway, this avoids and extra header parsing round when
  adding new messages. In case of duplicate messages, we'll end up
  parsing the full message although just headers would be
  sufficient. All in all this should still speed up 'notmuch new'.

* Calls to notmuch_message_get_header() may be slightly slower than
  previously for headers that are not indexed in the database, due to
  parsing of the whole message. Within the notmuch code base, notmuch
  reply is the only such user.
2014-04-05 12:53:04 -03:00
..
database-private.h lib: add date range query support 2012-10-31 16:55:32 -03:00
database.cc lib: replace the header parser with gmime 2014-04-05 12:53:04 -03:00
directory.cc lib: Perform the same transformation to _notmuch_database_find_directory_id 2012-05-23 22:30:32 -03:00
filenames.c lib: fix NULL checks for filenames iterators 2012-09-01 23:03:11 -03:00
gen-version-script.sh lib/gen-version-script.h: add getline and getdelim to notmuch.sym if needed 2011-09-05 07:44:14 -03:00
index.cc lib: replace the header parser with gmime 2014-04-05 12:53:04 -03:00
libsha1.c util: detect byte order 2013-11-27 07:43:29 -04:00
libsha1.h fix sum moar typos [comments in source code] 2011-06-23 15:58:39 -07:00
Makefile fix sum moar typos [build scripts, Makefiles] 2011-06-23 15:44:59 -07:00
Makefile.local lib: Bump library version from 3.0.0 to 3.1.0 2013-12-07 10:31:19 +08:00
message-file.c lib: replace the header parser with gmime 2014-04-05 12:53:04 -03:00
message.cc lib: make folder: prefix literal 2014-03-11 19:51:22 -03:00
messages.c lib: Eliminate _notmuch_message_list_append 2013-02-18 20:20:38 -04:00
notmuch-private.h lib: replace the header parser with gmime 2014-04-05 12:53:04 -03:00
notmuch.h doc: notmuch_result_move_to_next -> notmuch_tags_move_to_next 2014-02-13 08:43:34 -04:00
parse-time-vrp.cc lib: add date range query support 2012-10-31 16:55:32 -03:00
parse-time-vrp.h lib: add date range query support 2012-10-31 16:55:32 -03:00
query.cc lib: make notmuch_threads_valid return FALSE when passed NULL 2014-01-24 20:20:54 -04:00
sha1.c Typsos 2009-11-18 03:21:36 -08:00
string-list.c Fixup string list author 2011-03-21 02:45:18 -04:00
tags.c lib: fix warnings when building with clang 2012-12-01 08:10:32 -04:00
thread.cc lib: fix clang compiler warning 2014-01-18 14:39:51 -04:00