aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-filter-driver.c
Commit message (Collapse)AuthorAgeFilesLines
* A fix for broken mailers that send 2-digit years (ie "Wed, 28 Feb 01Jeffrey Stedfast2001-03-011-1/+1
| | | | | | | | | | | | | 2001-02-28 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_decode_date): A fix for broken mailers that send 2-digit years (ie "Wed, 28 Feb 01 04:59:41"). Fixes bug #1633. * camel-filter-driver.c (camel_filter_driver_filter_folder): Check to make sure message isn't NULL. svn path=/trunk/; revision=8431
* Remove the 'FIXME: remove because this isn't required...' comment forJeffrey Stedfast2001-02-231-17/+37
| | | | | | | | | | | | | | | | | | | 2001-02-22 Jeffrey Stedfast <fejj@ximian.com> * camel-folder.h: Remove the 'FIXME: remove because this isn't required...' comment for copy_message_to since we now need and cherish its existance in the filter-driver code ;-) * camel-filter-driver.c (camel_filter_driver_filter_message): Now takes a UID and CamelFolder arguments (which can be NULL) to allow for possible optimizations when copying messages between folders on the same store. (camel_filter_driver_filter_mbox): Updated (passes NULL for both since this case can't be optimized anyway). (camel_filter_driver_filter_folder): Updated to pass in the uid and folder of the message. svn path=/trunk/; revision=8346
* Thaw the defaultfolder. (camel_filter_driver_set_default_folder): Thaw theJeffrey Stedfast2001-02-171-3/+9
| | | | | | | | | | | 2001-02-16 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_finalise): Thaw the defaultfolder. (camel_filter_driver_set_default_folder): Thaw the defaultfolder we're about to replace, and freeze the new defaultfolder. svn path=/trunk/; revision=8259
* Changed the subject search to handle case sensitive when it is mixed case.Not Zed2001-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-01-25 Not Zed <NotZed@Ximian.com> * tests/folder/test3.c: Changed the subject search to handle case sensitive when it is mixed case. * Makefile.am (libcamel_la_SOURCES): Added camel-ssearch-private.c (noinst_HEADERS): Added camel-search-private.h * camel-folder-search.c (check_header): New function to do the work of the various header checks. (search_header_matches): (search_header_starts_with): (search_header_ends_with): (search_header_contains): Use check_header to do the work. (build_match_regex): Removed. * camel-search-private.c (header_soundex): New function to match words to phrases using soundex algorithm. * camel-filter-search.c (soundexcmp): Removed. (check_match): Moved to search-private.h 2001-01-24 Not Zed <NotZed@Ximian.com> * camel-search-private.c (camel_search_build_match_regex): Added extra flags, so the same function can be used for start/end/whole/partial matches. (camel_search_header_match): Convenience function to check a single header against all sorts of different matches. * providers/imap/camel-imap-search.c (imap_body_contains): Fix for e_sexp api changes. * camel-folder-search.c: Fix for e_sexp api changes. (search_header_contains): Free args/quit on unknown header. (search_header_matches): " (search_header_starts_with): " (search_header_ends_with): " (match_message): Add an exception argument. (search_body_contains): Free args/quit on fatal error. (message_body_contains): Removed (moved to camel-search-private.c), fixed callers. * camel-filter-search.c: Fix for e_sexp api changes. (build_match_regex, message_body_contains): Moved into camel-filter-private.c Fixed callers. (check_header): moved guts to camel-search-private, and changed to use regex's for everything. Just calls that with the right args. (check_header): GEts the header, decodes it, and checks for failure, and whatnot. (check_match): Removed. (header_soundex): Changed significantly. Now it soundexes each word in the header separately, and compares it to the first argument. * tests/folder/test9.c (main): Fix for api changes. (main): Added tests to see that invalid match and action rules are properly detected. * camel-filter-driver.c (camel_filter_driver_filter_mbox): Remove the 'finished message' bit. (camel_filter_driver_filter_message): Remove an accidentally checked in debug. (camel_filter_driver_filter_message): Fix for e-sexp api changes. svn path=/trunk/; revision=7796
* (camel_filter_driver_filter_message): Remove an accidentallyMichael Zucci2001-01-241-1/+0
| | | | | | checked in debug. svn path=/trunk/; revision=7762
* Remove the 'finished message' bit.Not Zed2001-01-241-2/+2
| | | | | | | | | 2001-01-24 Not Zed <NotZed@Ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_mbox): Remove the 'finished message' bit. svn path=/trunk/; revision=7761
* Perform error checking on parsing/execution.Not Zed2001-01-231-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-01-23 Not Zed <NotZed@Ximian.com> * camel-filter-search.c (camel_filter_search_match): Perform error checking on parsing/execution. * camel-folder-search.c (camel_folder_search_execute_expression): Perform error handling on search expression. (CamelFolderSearchPrivate): Add a camelexception for error returns. (camel_folder_search_execute_expression): Setup exception pointer. (search_match_all): Quit on error. * providers/imap/camel-imap-summary.c (message_info_load): Removed some debug 'warnings', as they should now be displayed at the toplevel loader, and just made the code match similar code elsewhere. * providers/local/camel-mbox-summary.c (message_info_load): Error handling. (message_info_save): more error handling. * camel-folder-summary.c (message_info_load): Add error handling and sanity checking. (camel_folder_summary_load): Add error checks. (perform_content_info_load): Error + sanity checks. (content_info_load): error + sanity checks. svn path=/trunk/; revision=7739
* avoid /0 by updating after we've done the sync. (close_folders): Setup theNot Zed2001-01-231-2/+5
| | | | | | | | | | 2001-01-23 Not Zed <NotZed@Ximian.com> * camel-filter-driver.c (close_folder): avoid /0 by updating after we've done the sync. (close_folders): Setup the first progress report to start it off. svn path=/trunk/; revision=7734
* When removing phantom nodes, check for the end node too.Not Zed2001-01-221-12/+12
| | | | | | | | | | | | 2001-01-22 Not Zed <NotZed@Ximian.com> * camel-folder-thread.c (camel_folder_thread_messages_new): When removing phantom nodes, check for the end node too. * camel-filter-driver.[ch]: Changed status vars to be CAMEL_FILTER_STATUS_ etc. svn path=/trunk/; revision=7700
* Added an exception to CamelFilterGetFolderFunc.Not Zed2001-01-211-15/+26
| | | | | | | | | | | | | | | | | | | | | | 2001-01-21 Not Zed <NotZed@Ximian.com> * camel-filter-driver.h: Added an exception to CamelFilterGetFolderFunc. * camel-filter-driver.c (camel_filter_driver_filter_message): Remove source parameter, as it is determined elsewhere now. (camel_filter_driver_filter_folder): Same here. (camel_filter_driver_filter_mbox): And here. (do_move): If we cannot open a folder, quit, rather than ignoring it. (do_copy): Here too. (open_folder): Pass an exception into get_folder callback. (camel_filter_driver_filter_folder): Report that we're syncing, when we are. (camel_filter_driver_filter_mbox): And here too. (close_folder): And here. svn path=/trunk/; revision=7671
* Set the deleted bit *before* copying to the default folder, this way ifJeffrey Stedfast2001-01-201-4/+4
| | | | | | | | | | | 2001-01-19 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_message): Set the deleted bit *before* copying to the default folder, this way if they are importing mail and have a rule to delete it, it doesn't get copied to the default folder un-deleted. svn path=/trunk/; revision=7651
* Add a percentage complete indicator to the status thing.Not Zed2001-01-191-13/+20
| | | | | | | | | | | | 2001-01-19 Not Zed <NotZed@Ximian.com> * camel-filter-driver.c (report_status): Add a percentage complete indicator to the status thing. (camel_filter_driver_filter_mbox): Add percentage complete to reporting. (camel_filter_driver_filter_folder): Same. svn path=/trunk/; revision=7635
* Index: ChangeLogMichael Zucci2001-01-171-0/+774
Index: ChangeLog =================================================================== RCS file: /cvs/gnome/evolution/camel/ChangeLog,v retrieving revision 1.684 diff -r1.684 ChangeLog 0a1,34 > 2001-01-17 Not Zed <NotZed@Ximian.com> > > * camel-folder.c (free_summary): Call > camel_folder_summary_array_free() to do the work. > (get_summary): Use camel_folder_summary_array() to get the array > atomically. These fixes allow folder/test8 to work again, and fix > a sort of race where the summary size can change while we were > making a copy of it. > > * camel-folder-summary.c (camel_folder_summary_array): Get the > summary array atomically, so it can't contain empty records. > (camel_folder_summary_array_free): And free it. > > * tests/lib/camel-test.c (die): If we are verbose & in threads, > then goto sleep so we can debug. > > * tests/folder/test8.c (worker): Add a missing pull() for > comnparing content. > > * camel-filter-search.c: Fix the symbol table, so match-all is an > immediate function, as it should be. > > * tests/folder/test9.c (main): New test, tests some filtering > things. > > * tests/message/test3.c (main): Dont use a boundary string with > spaces in it. Folding can corrupt it. Maybe the folding isn't > working entirely right, but anyway. > > * camel-session.c: Debug out the debug. > > * camel-filter-driver.c (camel_filter_driver_filter_folder): Plug > a messageinfo leak. > 1a36,94 > > * camel-filter-search.c (header_exists): Changed to support > multiple args (or'd together). > (header_contains): Cleaned up to match the search code. Why did > fejj change it? I'll never know. > (header_matches): > (header_starts_with): > (header_ends_with): Big cleanup of fejj's "i'm the cut & paste > king" code. Also properly handle or'ing of additional args to > match what the folder-search code should do. > (check_match): New function which does the annoying matching > stuff (for header matches). > (check_header): Similarly, handles or'ing of the matches together. > (header_contains): > (header_matches): > (header_starts_with): > (header_ends_with): Call check_header to do the actual work. > (header_soundex): And here too. > (match_all): Yeah like match-all isn't passed expression results, > its passed expression terms. Fix this so match-all works like it > should, by executing the contained expression. > (message_body_contains): Copied directly from > camel-folder-search.c, a more robust/faster/simpler body search > code. > (mime_part_matches): Removed entirely. > (handle_multipart): Removed entirely. > (build_match_regex): Copied from camel-folder-search. Builds a > set of simple strings into a regex pattern that matches any of > them (for faster & simpler matching). Expanded to accept regex > patterns itself, so it can merge them together. > (body_contains): Use build match/match message to match using a > built regex. > (body_regex): Likewise, this time we tell it we're building a > regex though. > (header_full_regex): Use build_match_regex to take the drudgery > out of it, and expand it to handle multiple regex's at once. > (get_full_header): slightly cleaner (well i dunno, the sprintf > stuff just got to me). > (header_regex): Cleaned up to use build_match_Regex too, and to > properly check types. > (filter_message_search): Just allocate 'fms' on the stack. > > * camel-filter-driver.c (camel_filter_driver_finalise): > (camel_filter_driver_init): > (camel_filter_driver_class_init): > (camel_filter_driver_get_type): Changed from gtk object to camel > object. > (camel_filter_driver_add_rule): New function to add a rule to be > processed in sexp form. > (camel_filter_driver_init): Init the rules list. > (camel_filter_driver_finalise): Clear the rules/rules list. > (camel_filter_driver_filter_message): Scan rules list directly > rather than creating on the fly. > > * Makefile.am (libcamelinclude_HEADERS): Added camel-filter-driver.h > (libcamel_la_SOURCES): Added camel-filter-driver.c, code taken > from filter-driver, which can drive, uh, filters based on sexp's. > (libcamelinclude_HEADERS): > (libcamel_la_SOURCES): Added camel-filter-search.[ch] svn path=/trunk/; revision=7560