| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-02-20 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-search.c (run_command): Redirect program's stdout
and stderr to /dev/null
* camel-filter-driver.c (pipe_to_system): Redirect the program's
stderr to /dev/null
(pipe_to_system): Write the pipe to a mem stream and use the mem
stream in the parser. Also, when setting an exception get the
errno from the parser so we can give more info about the error to
the user.
svn path=/trunk/; revision=19974
|
|
|
|
|
|
|
|
|
| |
2003-02-20 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (pipe_to_system): Redirect the program's
stderr to /dev/null
svn path=/trunk/; revision=19973
|
|
|
|
| |
svn path=/trunk/; revision=19957
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-02-19 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (pipe_message): New filter action that
pipes the message source to the user-program and reads back the
modified message and replaces driver->priv->message with the new
message object.
(do_copy): Check p->modified to make sure the message hasn't been
modified by the pipe-message action - if it has been modified,
default to the slower camel_folder_append_message() way of
copying.
(do_move): Same.
(pipe_to_system): Set p->modified to TRUE if the user-program gave
us back a message stream and we were able to parse it.
(camel_filter_driver_filter_message): If the message has been
modified, always use camel_folder_append_message() when appending
it to the default folder.
svn path=/trunk/; revision=19951
|
|
|
|
|
|
|
|
|
|
|
| |
2003-02-19 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (pipe_message): New filter action that
pipes the message source to the user-program and reads back the
modified message and replaces driver->priv->message with the new
message object.
svn path=/trunk/; revision=19950
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-11-05 Not Zed <NotZed@Ximian.com>
* Makefile.am (camel_lock_helper_LDADD): Created temporary link
list, we need to link with something for gettext.
* camel.h: Remove gstring-util.h and hash-table-utils.h.
* camel-text-index.c:
(text_index_normalise): Changed for g_utf8_strdown api change.
* camel-search-private.c:
* camel-mime-utils.c:
* camel-mime-part-utils.c:
* camel-html-parser.c:
* camel-charset-map.c: Include glib/gunicode.h from glib instead
of gal.
* camel-filter-driver.c: Remove include of gtk/gtk.h, should never
have been there.
svn path=/trunk/; revision=18542
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-10-18 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_folder):
Canonicalise the source_uri to not have a path. Fixes bug #32268.
2002-10-17 Jeffrey Stedfast <fejj@ximian.com>
Possible fix for bug #32270
* providers/pop3/camel-pop3-store.c (try_sasl): If we get an I/O
error, we should not be setting the CANT_AUTH exception but should
instead be setting the SYSTEM exception. Also check for EINTR
which signifies a USER_CANCEL exception.
(pop3_try_authenticate): If the auth mechanism isn't supported,
don't set the CANT_AUTH exception since then we will loop and try
again with the same data which will just cause an infinite loop.
(pop3_connect): Simplified a bit.
svn path=/trunk/; revision=18412
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-19 Not Zed <NotZed@Ximian.com>
* camel-filter-search.c (camel_filter_search_match): Take new
session arg. Update callers.
(symbols[]): changed get-source to header-source
(header_source): Chagned from get_source. Now a boolean, returns
true if source matches one of the arguments. Uses the provider
url comparison directly for accurate checking. Makes 'filter on
source' work.
* camel-filter-driver.c (camel_filter_driver_new): Take new arg,
session.
(camel_filter_driver_finalise): Free session.
svn path=/trunk/; revision=18112
|
|
|
|
|
|
|
|
|
| |
2002-07-29 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (unset_flag): New filter action to unset a
system flag. The exact opposite of set_flag.
svn path=/trunk/; revision=17625
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-07-25 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_shell): Renamed from
shell_exec(). Also, we now want to pass argc/argv on to the
CamelFilterDriverShellFunc.
(camel_filter_driver_set_shell_func): Renamed a bit.
* camel-filter-search.c (pipe_message): Renamed from shell_exec().
svn path=/trunk/; revision=17583
|
|
|
|
|
|
|
|
|
| |
2002-07-10 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (get_message_cb): Make sure message is
non-NULL before setting the source on it.
svn path=/trunk/; revision=17415
|
|
|
|
|
|
|
|
|
|
| |
2002-05-28 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_log): Use the
CamelMessageInfo rather than the CamelMimeMessage because the
message may not have been loaded (thus NULL).
svn path=/trunk/; revision=17025
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_append_message): Add a "char
**appended_uid" argument, for the caller to optionally pass in a
variable to receive the UID of the appended message (if the
provider knows it).
(camel_folder_transfer_messages_to): Likewise, add "GPtrArray
**transferred_uids"
(transfer_messages_to): Update default implementation to handle
transferred_uids.
* camel-disco-folder.c (disco_append_message,
disco_transfer_messages_to): Update for API changes.
* camel-disco-diary.c (camel_disco_diary_replay): Update the
diary's temporary uid->real uid map when replaying appends and
transfers.
* providers/imap/camel-imap-folder.c (imap_append_offline,
imap_append_online, imap_transfer_offline): Pass back the new
UIDs, when requested and available.
(imap_append_resyncing): Pass back the new UIDs when requested and
available. Remove the diary uidmap managing code since
CamelDiscoDiary can handle that itself now.
(imap_transfer_online, imap_transfer_resyncing): Update for new
APIs, but don't actually pass back the new UIDs yet. (It's tricky
since the COPYUID response may not be in the same order as the
input uids.)
* providers/local/camel-maildir-folder.c (maildir_append_message):
Pass back the new UID if requested.
* providers/local/camel-mbox-folder.c (mbox_append_message):
Likewise.
* providers/local/camel-mh-folder.c (mh_append_message): Likewise.
* providers/local/camel-spool-folder.c (spool_append_message):
Likewise.
* camel-digest-folder.c (digest_append_message,
digest_transfer_messages_to): Update for API changes.
* camel-filter-driver.c (camel_filter_driver_filter_message,
do_copy, do_move): Update for API changes.
* camel-vee-folder.c (vee_append_message,
vee_transfer_messages_to): Likewise.
* camel-vtrash-folder.c (vtrash_append_message,
vtrash_transfer_messages_to): Likewise.
svn path=/trunk/; revision=16765
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_transfer_messages_to): Replace
copy_messages_to and move_messages_to with a single function that
just takes a "delete_originals" flag. Also, use the vtrash
implementation if *either* folder is a vtrash.
(transfer_messages_to): Make this use camel_operation_progress
(previously move_messages_to did but copy_messages_to didn't), and
freeze/thaw the folder(s) if doing multiple messages.
* camel-vtrash-folder.c (vtrash_transfer_messages_to): Update for
move/copy merge. Move the "move messages into vtrash" code here
from mail-ops.c. Now all of the vtrash move/copy special casing is
in camel instead of half of it being here and half in mail/. (This
should also make it so that "Move to Trash" will work in filter
rules.)
* camel-vee-folder.c (vee_transfer_messages_to): Make this just
return an exception, since it will only be called when trying to
move/copy messages from one vfolder to another.
(vee_append_message): Add this too so we get a nicer error message
than the default "unimplemented" one in camel-folder.c.
* camel-digest-folder.c: Replace copy_messages_to and
move_messages_to with transfer_messages_to.
* camel-disco-folder.c: Likewise
* camel-disco-diary.c (camel_disco_diary_log,
camel_disco_diary_replay): replace MOVE/COPY with TRANSFER.
* providers/imap/camel-imap-folder.c (imap_transfer_offline,
imap_transfer_online, imap_transfer_resyncing): Update for
changes. (This ends up being a bit more complicated than it was
before for now, but later disconnected operation changes should
resimplify it.)
* camel-filter-driver.c (camel_filter_driver_filter_message,
do_copy, do_move): Use transfer_messages_to instead of copy.
svn path=/trunk/; revision=16744
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-04-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_folder): Get
rid of an unused variable.
* providers/smtp/camel-smtp-transport.c (smtp_helo): Use
camel_gethostbyaddr since gethostbyaddr is not reentrant.
* camel-http-stream.c (http_connect): Updated after the rename of
camel_get_host_byname.
* camel-service.c (camel_gethostbyname): Renamed.
(camel_gethostbyaddr): New cancellable/reentrant version of
gethostbyaddr.
svn path=/trunk/; revision=16484
|
|
|
|
|
|
|
|
|
|
|
| |
2002-03-28 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_copy): We now have to check to make
sure that p->message is non-NULL because we only load the message
when we have to.
(do_move): Same here.
svn path=/trunk/; revision=16280
|
|
|
|
|
|
|
|
|
|
|
| |
2002-03-27 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_folder):
Construct the source_url the right way. The previous way was
generating urls like pop://fejj@ximian.com;keep_on_server/inbox
which is wrong.
svn path=/trunk/; revision=16260
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-03-25 Not Zed <NotZed@Ximian.com>
* camel-text-index.c (text_index_add_name): When we add a new
name, up all of the cache limits, because we're probably going to
be adding more.
(text_index_sync): Drop the cache limits back down again, we dont
need them when looking words up.
** MERGE camel_index branch.
* camel-text-index.[ch]: Added files i forgot to add (eep nearly
lost all this work!)
* camel-block-file.c (sync_nolock): Fix an infinite loop in syncing.
svn path=/trunk/; revision=16242
|
|
|
|
|
|
|
|
|
| |
2002-01-28 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_remove_rule_by_name):
Use while (node->next) instead of while (node)
svn path=/trunk/; revision=15502
|
|
|
|
|
|
|
|
|
|
|
| |
2002-01-24 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_beep): Call the beep callback
function.
(camel_filter_driver_set_system_beep_func): New function to set
the beep callback.
svn path=/trunk/; revision=15459
|
|
|
|
|
|
|
|
|
| |
2002-01-22 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_remove_rule_by_name):
New function to remove a filter rule by name.
svn path=/trunk/; revision=15425
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-01-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_beep): As a temporary solution, just
printf ("\a"); to make a beep :-)
* providers/imap/camel-imap-command.c
(imap_command_strdup_vprintf): Encode the mailbox to UTF-7 here.
* providers/imap/camel-imap-utils.c (imap_parse_list_response):
Decode the mailbox name as we parse the list response.
(imap_mailbox_decode): It's only an illegal mailbox name if it
didn't switch back to US-ASCII mode.
svn path=/trunk/; revision=15421
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-01-09 Jeffrey Stedfast <fejj@ximian.com>
* providers/local/camel-mbox-folder.c (camel_mbox_folder_new): If
the mbox file is a symlink, follow the symlink and get the One
True Path so that we can rewrite the mbox later without worrying
about clobbering the symlink.
2002-01-08 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-search.c (TODO): There are a few sexp callbacks
that could be modified to use fms->info rather than using a
message object (like date and possibly mlist stuff) but *only* if
the date exists on the CamelMessageInfo object (since it may be
blank except for message flags).
(camel_filter_search_get_message): New internal convenience
function to make sure that the FilterMessageSearch has loaded the
message (and to load the message if this isn't the case).
(check_header): Call camel_filter_search_get_message().
(header_exists): Same.
(header_regex): Here too.
(header_full_regex): And here.
(body_contains): Again here.
(body_regex): Here too.
(get_sent_date): Here also.
(get_received_date): Same.
(get_source): Here if we need to.
(camel_filter_search_match): Now takes a callback function/data
pair for on-demand message loading so that we don't necessarily
have to load the message if the defined filter rules don't require
it.
* camel-filter-driver.c (camel_filter_driver_filter_folder): Don't
bother fetching the message here, let
camel_filter_driver_filter_message() worry about this.
(get_message_cb): New utility callback to fetch a message.
(camel_filter_driver_filter_message): Only fetch the message if we
absolutely need it to get a CamelMessageInfo. Instead of passing a
message object to camel_filter_search_match(), pass get_message_cb
and some user_data so that the matching code can fetch the message
on demand.
svn path=/trunk/; revision=15276
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-01-07 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder.c (filter_filter): Flush the only-once actions.
* camel-filter-driver.c (camel_filter_driver_filter_message):
Don't increment a filtered_count here any longer.
(camel_filter_driver_reset_filtered_count): Removed.
(camel_filter_driver_get_filtered_count): Removed.
(do_beep): New action.
(play_sound): New action to play a sound
(do_only_once): Another new action.
(camel_filter_driver_finalise): Free the only_once hash if the
driver has not been "flushed".
(camel_filter_driver_flush): Flush all of the only-once actions.
svn path=/trunk/; revision=15262
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-12-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c
(camel_filter_driver_reset_filtered_count): Reset the
filtered_count to zero.
(camel_filter_driver_get_filtered_count): Return the private
filtered_count value.
(camel_filter_driver_filter_message): Increment the
filtered_count.
(camel_filter_driver_set_shell_exec_func): New function to set the
shell-exec func.
(shell_exec): New ESExp filter action callback.
svn path=/trunk/; revision=15087
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-31 <NotZed@Ximian.com>
* providers/local/camel-spool-folder.c (spool_get_message): Same
as below.
* providers/local/camel-maildir-folder.c (maildir_get_message):
Same as below.
* providers/local/camel-mbox-folder.c (mbox_get_message): Set
USER_CANCEL if failed due to EINTR.
* camel-filter-driver.c (camel_filter_driver_filter_mbox): If
construct from parser fails due to user cancel, set USER_CANCEL on
exception.
* camel-mime-part.c (construct_from_parser): Return error if the
parser had an io error.
* camel-mime-message.c (construct_from_parser): Check error on
parser/return error.
* camel-mime-parser.c (folder_scan_init): Init error number.
(camel_mime_parser_errno): New function, return errno of any io
failures.
(folder_read): Set errno if a failure occured.
(folder_seek): Same.
(folder_scan_init_with_fd): Setup errno depeding on ok/failure.
(folder_scan_init_with_stream): Same.
svn path=/trunk/; revision=14559
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-30 <NotZed@Ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_mbox): Make
sure we unref the mimeparse when we're done (successfully). This
was leaking an fd every get-mail! :(
* camel-lock-client.c (camel_lock_helper_init): Close all fd's
above 2.
svn path=/trunk/; revision=14468
|
|
|
|
| |
svn path=/trunk/; revision=14217
|
|
|
|
|
|
|
|
|
| |
2001-10-17 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_copy): Add an optimization for when
destination folder is the same as the source folder.
svn path=/trunk/; revision=13735
|
|
|
|
|
|
|
|
|
|
| |
2001-10-17 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message): Set
the DELETED flag on directly on the info if the source folder
doesn't have summary capability.
svn path=/trunk/; revision=13729
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_flag): Only perform the operation on
the folder if the folder has summary capability, else just poke
the info directly. Fixes the "Filters don't work" bug.
(do_score): Same.
(do_colour): And here too.
svn path=/trunk/; revision=13697
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-09-26 <NotZed@Ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message): If
we get a search error, just abort, dont try and fall back and copy
to inbox.
(camel_filter_driver_filter_message): Make sure we ALWAYS use
exceptions for important things - like moving messages to inbox!
(camel_filter_driver_filter_message): If we have the source
folder, use camel_folder_set_message_flags rather then poking the
info directly, which skips changed events. This means filtering
immediate doesn't lose changed events.
(do_flag): Same here.
(do_colour): Same thing but using set_tag.
(do_score): Same again.
(camel_filter_driver_filter_folder): Use ~0 as the 'set' arg to
set_flags, just saves typing.
(open_folder): We cache folders that we couldn't open as well as
those ones we could. Use magic token FOLDER_INVALID =
(void *)~0 as the marker.
(close_folder): Handle FOLDER_INVALID case properly.
svn path=/trunk/; revision=13169
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-09-18 <NotZed@Ximian.com>
* providers/local/camel-maildir-folder.c
(camel_maildir_folder_new): If filter inbox is set on the store,
and we're opening inbox '', then enable filtering on new messages.
* providers/local/camel-local-folder.c
(camel_local_folder_construct): After loading the summary, check
it, and only abort if that fails. Also maintain the changes
count.
* providers/local/camel-local-summary.c
(camel_local_summary_load): Remove summary_check code from here.
(camel_local_summary_check): Sync index/summary here, if we were
successful.
* providers/local/camel-spool-folder.c
(camel_spool_folder_new): If we have filter-new-messages-on-inbox
set and we just opened inbox, turn on filtering on this folder.
(camel_spool_folder_construct): Keep track of changes for the
folder, so that filter-new-messages works right (?)
* providers/local/camel-spool-store.c (get_folder): Pass 'INBOX'
as the folder name, not the path.
* camel-folder-search.c (search_not): Modified patch from
<peterw@ximian.com> since the summary is messageinfo's, not
strings.
** Ok so the problem with the stuff below is that maildir/spool
'summary_load' throws away all events, including recents, joy eh?
* providers/local/camel-maildir-summary.c (maildir_summary_check):
Add new messages to the recent changeinfo.
* providers/local/camel-spool-summary.c: Mark 'new' message as
recent, for later processing if required (i.e. 'filter new
messages').
* camel-store.c (construct): new function, cascade up construct
method and check for 'filter' param, and set accordingly for any
one that might want it.
* providers/imap/camel-imap-store.c (construct): map the
param_filter_inbox flag to the store->flags as
CAMEL_STORE_FILTER_INBOX.
* camel-store.h (CAMEL_STORE_FILTER_INBOX): new flag to tell it to
filter inbox.
* providers/imap/camel-imap-folder.h: Removed do_filtering flag
from CamelImapFolder.
* providers/imap/camel-imap-folder.c (imap_update_summary): Remove
the 'recents' parameter, use the 'changes' parameter instead to
convey this info.
(camel_imap_folder_changed): Changed for update_summary api
change. Now always just emit the changed event if we have any
changes to report, filtering code removed, handled upstream.
(filter_proc):
(filter_free): Removed old filtering code.
(camel_imap_folder_new): Set the filter_recent flag on the folder
if we're the inbox and filtering of inbox is enabled.
* camel-folder.c (folder_changed): If we have 'recent' messages,
and are set to filter recents, then freeze the folder and launch a
thread to do the processing (or similar if threading not enabled).
(thaw): Make sure we emit the changed signal outside of owning the
lock and if things have changed. Also, no longer bother
downgrading folder_changed events to message_changed events.
* camel-folder.h (struct _CamelFolder): Added filter_recent flag
-> signifies all recent messages in folder should be filtered.
* camel-session.c: (camel_session_thread_msg_new,
camel_session_thread_msg_free, camel_session_thread_queue,
camel_session_thread_wait): code to handle async operations as
part of camel processing.
(camel_session_finalise): free thread_lock, destroy thread, active
hash, etc.
(camel_session_init): init thread, active hash, etc.
(camel_session_class_init): Init virtual functions.
(session_thread_msg_new, session_thread_msg_free,
session_thread_destroy, session_thread_received,
session_thread_queue, session_thread_wait): default implementation
of session threads stuff.
2001-09-17 <NotZed@Ximian.com>
* camel-folder.c (camel_folder_change_info_recent_uid): New
function to add a 'recent' uid to the change info.
(camel_folder_change_info_clear): Clear recent list.
(camel_folder_change_info_free): Free recent list.
(camel_folder_change_info_new): Setup recent list.
* camel-folder.h: Added a uid_recent item to the folder_changed
event data.
* providers/local/camel-maildir-store.c (scan_dir): Free new in
the right block.
* providers/local/camel-local-provider.c: Add local config entries
to filter on new messages in spool and maildir provider.
* camel-vee-folder.c (vee_folder_construct): Remove the assertion
which stops ? in names from being allowed.
svn path=/trunk/; revision=12956
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-09-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_folder): Don't
reuse the exception if it has already been set.
(camel_filter_driver_filter_message): Same here. Also use the new
return value from camel_filter_search_match().
* camel-filter-search.c (camel_filter_search_match): Return an
integer (matched, no-match, or error).
svn path=/trunk/; revision=12819
|
|
|
|
|
|
|
|
|
| |
2001-09-12 Larry Ewing <lewing@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_mbox): free
the source url in the nonfailure case.
svn path=/trunk/; revision=12782
|
|
|
|
|
|
|
|
|
| |
2001-09-12 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_mbox): Unref
the message info.
svn path=/trunk/; revision=12776
|
|
|
|
|
|
|
|
|
|
| |
2001-08-09 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-utils.c (imap_parse_string_generic): A
quoted string cannot contain \n's so check for those as well.
(imap_atom_specials): Update this to fix bug #6553.
svn path=/trunk/; revision=11845
|
|
|
|
|
|
|
|
|
|
| |
2001-07-23 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_move): Slight fix for when source ==
destination (we don't want to do this action because on-demand
filtering would then delete the messages it supposedly "moved").
svn path=/trunk/; revision=11304
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-uid-cache.c (camel_uid_cache_new): We now use a structure
as the bucket data rather than just a cache level so set the save
state to TRUE.
(maybe_write_uid): We only save the uid if the cache levels are
the same *and* if the save state is TRUE.
(free_uid): Free the state value.
(camel_uid_cache_get_new_uids): New uids that get added to the
cache start with a save state of FALSE.
(camel_uid_cache_save_uid): Set the save state of the uid to
TRUE. What should we do if the uid isn't already in the cache?
Currently I make it add the uid, but maybe it shouldn't?
* providers/imap/camel-imap-folder.c (imap_filter_timeout): Update
to reflect CamelFilterDriver API changes.
* camel-filter-driver.c (camel_filter_driver_filter_folder): Take
a cache argument so we can tell the cache whether or not the uid
should be saved (meaning we have successfully filtered it).
svn path=/trunk/; revision=11084
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-12 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Okay, I've decided that that user is just on crack. We don't want
to allow filtering of deleted messages or we could get some
unexpected behavior.
(do_move): Oops. My last fix needs to be after the if-statement,
not inside it.
(do_copy): And here too.
svn path=/trunk/; revision=11068
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-12 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Okay, I've decided that that user is just on crack. We don't want
to allow filtering of deleted messages or we could get some
unexpected behavior.
svn path=/trunk/; revision=11048
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-12 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_move): Only set p->copied and
p->deleted if the messages are copied without an exception.
(do_copy): Same - but obviously we don't set the p->deleted here
at all.
(camel_filter_driver_filter_message): Since users complained that
they couldn't filter deleted messages for "safe keeping" (WTF?
safe keeping? why were they deleted in the first place then??), I
have taken out the code that optimized filtering by not allowing
deleted messages to be filtered. This fixes bug #4473.
Note: Users have a warped sense of logic.
svn path=/trunk/; revision=11047
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-11 Not Zed <NotZed@Ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_mbox): Create
the messageinfo itself, so we can properly set the size.
* camel-movemail.c (camel_movemail_solaris): Write out the from
line between each message.
2001-07-10 Not Zed <NotZed@Ximian.com>
* providers/local/camel-local-summary.c (local_summary_add): Copy
the size across from the source message info if supplied.
* camel-stream-null.c: Added a 'written' member which keeps track
of how much has been written to the stream.
* camel-movemail.c (camel_movemail): If we have BROKEN_SPOOL
defined, then use the solaris movemail to quote from lines that
sendmail didn't.
(camel_movemail_solaris): Compile this in if BROKEN_SPOOL defined.
svn path=/trunk/; revision=10989
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-session.c (camel_session_get_filter_driver): new method to
get an application-initialized filter driver.
* camel-filter-driver.c (camel_filter_driver_new): Remove the
get_folder function and data args from here...
(camel_filter_driver_set_folder_func): ...and add this function to
set/change them.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): If
this folder is INBOX and we're filtering INBOX, set a flag on the
folder for later.
(imap_update_summary): Add another argument (GPtrArray *recents),
and if it's non-NULL, add the uids of any \Recent new messages to
it.
(camel_imap_folder_changed): If doing filtering in this folder,
create a recents array and pass it to imap_update_summary. Then
get a filter driver and use it to filter the recent messages.
* providers/imap/camel-imap-summary.h:
* providers/imap/camel-imap-utils.c (imap_parse_flag_list): Add
support for the \Recent flag.
* providers/imap/camel-imap-provider.c (imap_conf_entries): enable
the "filter" option.
* camel-types.h: add CamelFilterDriver typedef here
svn path=/trunk/; revision=10681
|
|
|
|
|
|
|
|
|
|
|
| |
2001-06-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (open_folder): Since we want an error
opening a folder to result in the message being copied to Inbox
(assuming no other filters get a chance to `move` it), don't
record any exceptions that may occur in this function.
svn path=/trunk/; revision=10515
|
|
|
|
|
|
|
|
|
|
| |
2001-06-25 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-search.c (get_source): g_strdup() the message
source here or we will have problems later when we go to free the
result ;-)
svn path=/trunk/; revision=10498
|
|
|
|
|
|
| |
helixcode.com with ximian.com all over the place.
svn path=/trunk/; revision=10440
|
|
|
|
|
|
|
|
|
| |
2001-06-07 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_folder): Add a
separator between the service url and the folder name, if needed.
svn path=/trunk/; revision=10153
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-06-07 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_mbox): Added
an argument, so that the original source URI of the mbox can be
passed in. This is needed because this function is called
post-movemail, so we are never reading from the original mbox
anymore. Without the original mbox URI, the X-Evolution-Source
tag gets set incorrectly and filter-on-source will fail to work.
(camel_filter_driver_filter_message): Also take an extra arg
for the original source URI. It is the original URI, not the
source URI, that is used for filtering and for setting the
X-Evolution-Source tag.
2001-06-07 Jon Trowbridge <trow@ximian.com>
* mail-ops.c (fetch_mail_fetch): Pass the original source URI
to camel_filter_driver_filter_mbox.
(mail_send_message): Pass NULL as the orginal source URI
to camel_filter_driver_filter_message.
svn path=/trunk/; revision=10152
|
|
|
|
| |
svn path=/trunk/; revision=9431
|
|
|
|
|
|
|
|
| |
2001-04-05 Not Zed <NotZed@Ximian.com>
* merge from evolution-0-10-branch to evolution-0-10-merge-0
svn path=/trunk/; revision=9194
|
|
|
|
| |
svn path=/trunk/; revision=9099
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-29 Jon Trowbridge <trow@ximian.com>
* printing/e-contact-print.c: Added #include <libgnome/gnome-paper.h>
* printing/e-contact-print-envelope.c: Added #include <time.h>
and #include <libgnome/gnome-paper.h>
* gui/component/select-names/e-select-names-completion.c
(match_email): Better handle matching of "nameless" contacts.
* backend/ebook/e-destination.c (e_destination_get_string): Better
handle the case of a "nameless" contact.
2001-03-29 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message): Save
the source URL using camel_mime_message_set_source.
* camel-mime-message.c (camel_mime_message_set_source): Renamed
camel_mime_message_set_identity to this. Sets the X-Evolution-Source
header.
(camel_mime_message_get_source): Returns the X-Evolution-Source
header.
2001-03-29 Jon Trowbridge <trow@ximian.com>
* mail-callbacks.c: Added #include <time.h> to get things
to compile.
* mail-callbacks.c (mail_generate_reply): Look at the
X-Evolution-Source header, and try to find a corresponding
account. If this works, send the mail from this account.
If not, use the default account.
* mail-ops.c (send_queue_send): Strip out the X-Evolution-Source
header before sending.
* mail-config.c (mail_config_get_account_by_source_url): Added.
Look up accounts by source URL.
svn path=/trunk/; revision=9032
|
|
|
|
| |
svn path=/trunk/; revision=9024
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-store.c (init_trash): Use camel_vtrash_folder_new() to
create the vtrash folder now.
* camel-vtrash-folder.[c,h]: New subclass of CamelVeeFolder for
our vTrash folders.
* camel-folder.c (camel_folder_copy_messages_to): Don't watch for
vtrash folders anymore.
(camel_folder_move_messages_to): Same.
* camel-vee-folder.c (camel_vee_folder_class_init): Update.
(vee_move_messages_to): Rewrite to use the new move API.
* camel-filter-driver.c (do_copy): Updated to reflect
copy_message_to changes. Create a temporary uid array and use
that.
(do_move): Same.
(camel_filter_driver_filter_message): And again, here...
* providers/imap/camel-imap-folder.c (imap_copy_messages_to):
Update to the new API.
(imap_move_messages_to): Same.
(get_uid_set): New function to create a `set' string based on an
array of UIDs for use with imap_copy_messages_to.
* camel-folder.c (camel_folder_copy_messages_to): Replaces
camel_folder_copy_message_to
(camel_folder_move_message_to): Replaces
camel_folder_move_message_to.
svn path=/trunk/; revision=8960
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-25 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_copy): Don't use copy_to if the source
folder doesn't support summary info's.
(do_move): Same.
(camel_filter_driver_filter_message): And again here. I think
this will fix the problem of "colour" tags not staying with the
message when it's copied to a folder during the filter process.
svn path=/trunk/; revision=8925
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-23 Jon Trowbridge <trow@ximian.com>
* gui/widgets/e-minicard-widget.c (e_minicard_widget_set_card):
Added. Call me old-fashioned, but I just prefer to have a real
API rather than doing everything via gtk_object_get/set-type
calls.
(e_minicard_widget_set_arg): Changed to call
e_minicard_widget_set_card.
* backend/ebook/e-book-util.c: Small changes to get rid of
compiler warnings. (Casting out const, removed unused variables,
etc.) Removed some debugging messages.
* gui/component/addressbook-factory.c (main): Added call
to e_address_popup_factory_init.
* gui/component/e-address-popup.c: Added. A popup gadget that is
invoked (as a bonobo control) when an address is left-clicked in
the mailer. The addressbook is queries, and the address is either
displayed as a minicard (if it already exists) or in a "generic
format". A button is provided for editting/adding the contact.
Some of the semantics of this widget are a bit... non-standard,
because of bonobo issues. I can't really seem to replicate
popup-menu behavior because of how bonobo propogates events, etc.
so I've tried to produce something that I think is non-annoying.
YMMV.
2001-03-23 Jon Trowbridge <trow@ximian.com>
* mail-display.c (handle_embedded_address_object): #ifdef away
some code I don't quite want to delete yet.
(html_button_press_event): Remove some of Radek's placeholder
code, replace it with code to create my AddressPopup bonobo
control.
* mail-format.c: Remove some obsolete code that if #ifdef-ed out
a while ago.
* mail-ops.c (send_queue_send): Strip out the X-Evolution-Identity
header when sending.
2001-03-23 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Don't call camel_mime_message_set_identity. (The call is
commented out, left over from some earlier experimentation that I
want to be able to remember later...)
* camel-mime-message.c (camel_mime_message_set_identity): Added.
A function to set the X-Evolution-Identity header.
svn path=/trunk/; revision=8916
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Return -1 on fail.
(camel_filter_driver_filter_folder): Same.
(camel_filter_driver_filter_mbox): Same.
(camel_filter_driver_filter_folder): Return -1 if an exception was
set as well.
2001-03-19 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-openssl.c (camel_tcp_stream_openssl_finalize):
Free the expected host.
(camel_tcp_stream_openssl_new): Now takes a Service and an
expected_host. Set them.
svn path=/trunk/; revision=8871
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-18 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Document and modify to return a boolean value denoting whether or
not errors occured during processing.
(camel_filter_driver_filter_mbox): Same as above and also modified
to check return codes of filter_message rather than relying only
on whether or not the exception was set (as it's possible to pass
in NULL for the exception).
(camel_filter_driver_filter_folder): Same as above.
* camel-mime-utils.c (header_param_list_format_append): Quote the
param value if it contains whitespace as well.
svn path=/trunk/; revision=8808
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
checked in debug.
svn path=/trunk/; revision=7762
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 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
|