aboutsummaryrefslogtreecommitdiffstats
path: root/em-format/e-mail-parser.c
Commit message (Collapse)AuthorAgeFilesLines
* Make EAttachment a little more thread-safe.Matthew Barnes2013-05-241-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | EAttachment is now used from worker threads by EMailFormatterAttachment, so add some thread-safe accessor functions to eliminate potential races. Added thread-safe functions: e_attachment_dup_disposition() e_attachment_ref_file() e_attachment_ref_file_info() e_attachment_ref_icon() e_attachment_ref_mime_part() e_attachment_dup_description() e_attachment_dup_thumbnail_path() Renamed functions: e_attachment_get_mime_type() -> e_attachment_dup_mime_type() Removed non-thread-safe functions: e_attachment_get_file() e_attachment_get_file_info() e_attachment_get_icon() e_attachment_get_mime_part() e_attachment_get_description() e_attachment_get_thumbnail_path()
* Attachment-related cleanups.Matthew Barnes2013-05-241-9/+9
|
* Convert EMailPart to a GObject.Matthew Barnes2013-05-201-21/+17
| | | | | EMailPart is reference-counted, subclassed, and allows a custom finalize function. There's no excuse for it not to use GObject.
* Add e_mail_part_get_is_attachment().Matthew Barnes2013-05-201-2/+2
|
* Add e_mail_part_set_mime_type().Matthew Barnes2013-05-201-1/+1
|
* Add e_mail_part_get_mime_type().Matthew Barnes2013-05-201-2/+2
|
* Add e_mail_part_get_cid().Matthew Barnes2013-05-201-2/+2
|
* Add e_mail_part_get_id().Matthew Barnes2013-05-201-2/+2
|
* em-format cleanups.Matthew Barnes2013-05-201-8/+15
|
* G_PRIORITY_HIGH_IDLE is sufficient to beat GTK+ redraws.Matthew Barnes2013-02-091-2/+3
| | | | | | GTK+ uses (G_PRIORITY_HIGH_IDLE + 20) for redrawing operations, which is actually a slightly lower priority than G_PRIORITY_HIGH_IDLE. Therefore for our purpose, G_PRIORITY_HIGH_IDLE is sufficient.
* Add comments around g_idle_add() changesMilan Crha2013-02-091-0/+1
|
* Bug #683867 - Schedule actions with higher idle priorityMichel Dänzer2013-02-091-2/+3
|
* Revert "Bug #683867 - Schedule actions with higher idle priority"Matthew Barnes2013-02-081-3/+2
| | | | | | | | | This reverts commit 2b507716b257e6ef98dae8463180dbe718eb7b64. The commit contains not a single comment as to why these custom priority values are being used. The rationale needs to be documented in the code, either at each call point or preferrably at a centralized priority value definition.
* Bug #683867 - Schedule actions with higher idle priorityMichel Dänzer2013-02-081-2/+3
|
* Teach EMailExtensionRegistry to find extensions.Matthew Barnes2013-02-011-2/+1
| | | | Restore this commit with a proper bug fix to follow.
* Revert "Teach EMailExtensionRegistry to find extensions."Milan Crha2013-01-291-1/+2
| | | | | | | | | | This reverts commit bf30024dd7973006bf99d0ae509a7f0022368a41, because it breaks EMailFormatter/Parser extensions, like the prefer-plain. The thing is that the internal formatters/parsers (also extensions) should be always added first, and only after then can be added extended extensions, which are used before those internal. This constraint was not satisfied with the reverted commit, the order of extension registration was unpredictable, depended on GType.
* Consolidate base utility libraries into libeutil.Matthew Barnes2012-12-131-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Evolution consists of entirely too many small utility libraries, which increases linking and loading time, places a burden on higher layers of the application (e.g. modules) which has to remember to link to all the small in-tree utility libraries, and makes it difficult to generate API documentation for these utility libraries in one Gtk-Doc module. Merge the following utility libraries under the umbrella of libeutil, and enforce a single-include policy on libeutil so we can reorganize the files as desired without disrupting its pseudo-public API. libemail-utils/libemail-utils.la libevolution-utils/libevolution-utils.la filter/libfilter.la widgets/e-timezone-dialog/libetimezonedialog.la widgets/menus/libmenus.la widgets/misc/libemiscwidgets.la widgets/table/libetable.la widgets/text/libetext.la This also merges libedataserverui from the Evolution-Data-Server module, since Evolution is its only consumer nowadays, and I'd like to make some improvements to those APIs without concern for backward-compatibility. And finally, start a Gtk-Doc module for libeutil. It's going to be a project just getting all the symbols _listed_ much less _documented_. But the skeletal structure is in place and I'm off to a good start.
* Teach EMailExtensionRegistry to find extensions.Matthew Barnes2012-12-081-2/+1
| | | | | | | | | | | | | | | | | | | | | Now we have the following extension points in the GType hierarchy: E_TYPE_MAIL_FORMATTER_EXTENSION E_TYPE_MAIL_FORMATTER_PRINT_EXTENSION E_TYPE_MAIL_FORMATTER_QUOTE_EXTENSION E_TYPE_MAIL_PARSER_EXTENSION A registry just needs to be given one of these extension points, and it can use g_type_children() to find and load all registered extensions. This eliminates e-mail-format-extensions.[ch] as well as the dynamic loaders I added a few commits back. Dynamically loaded extensions are now easier to register, at the cost of internal extensions being a tad more cumbersome to register. Fair tradeoff, imo. This also makes e_mail_extension_registry_add_extension() a private function used only by e_mail_formatter_extension_registry_load() and e_mail_parser_extension_registry_load().
* e_mail_parser_base_init(): Register internal extension types.Matthew Barnes2012-12-081-1/+56
|
* EMailParserExtension: Collect EMailParts in a GQueue.Matthew Barnes2012-12-081-52/+53
| | | | | | | | | | | | | | | Collect EMailParts in a GQueue provided to the EMailParserExtension, and change the return type of parse() to gboolean to indicate whether the given CamelMimePart was handled (even if no parts were added to the output GQueue). This avoids the awkward corner case of a parser extension returning a linked list node with a NULL data member to indicate the CamelMimePart was handled but no EMailParts produced, and then having to watch out for that NULL data member corner case throughout the application. Also, remove the GCancellable parameter from e_mail_parser_error() and e_mail_parser_wrap_as_attachment() since neither function blocks.
* Make EMailPartList thread-safe.Matthew Barnes2012-12-081-27/+39
| | | | | | Exposing data members in the public struct is unwise, especially when EMailPartList is used from multiple threads. Instead keep the members private and provide a set of thread-safe functions to manipulate them.
* Further EMailParser cleanups.Matthew Barnes2012-12-051-96/+95
|
* mail_parser_run(): Eliminate a dead code branch.Matthew Barnes2012-12-051-24/+16
| | | | | There's no need to check whether the 'parsers' GQueue is NULL since we assert that it's non-NULL just a few lines above.
* Address couple issues found by a Coverity scanMilan Crha2012-11-301-1/+1
|
* Coding style and whitespace cleanup.Matthew Barnes2012-11-111-15/+27
|
* Replace deprecated GLib symbols (as of GLib 2.34.x)Milan Crha2012-11-061-8/+5
|
* Fix all 'may be used uninitialized' compiler warningsDan Vrátil2012-08-201-0/+2
|
* Coding style and whitespace cleanup.Matthew Barnes2012-08-201-4/+4
|
* Bug #680123 - Freeze on message/disposition-notification email parsingDan Vrátil2012-07-181-1/+1
|
* Add CamelDebug to e_mail_parser_parse_syncDan Vrátil2012-06-271-0/+17
|
* Coding style and whitespace cleanup.Matthew Barnes2012-06-251-10/+10
|
* Remove a leftover debug messageDan Vrátil2012-06-071-3/+0
|
* Mail formatter rewriteDan Vrátil2012-06-061-0/+693
All mail-parsing and formatting code has been moved to em-format. Parsing is handeled by EMailParser class, formatting by EMailFormatter. Both classes have registry which hold extensions - simple classes that do actual parsing and formatting. Each supported mime-type has it's own parser and formatter extension class.