| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
svn path=/tags/R3_0/; revision=21090
|
|
|
|
|
|
|
|
|
| |
2003-04-29 Jeremy Katz <katzj@redhat.com>
* providers/imap/camel-imap-folder.c (parse_fetch_response):
body_len needs to be a size_t instead of int
svn path=/trunk/; revision=21027
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-03-06 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-utils.c (imap_next_word):
s/g_strncasecmp/strncasecmp/g
* camel-iconv.c: Updated to be an exact copy of e-iconv (except
names changed). We don't use this yet, but we may in the future.
* camel-url.c (camel_url_new_with_base): Here too.
* camel-sasl-kerberos4.c (krb4_challenge): Use camel_strdown()
here instead of g_strdown() since the latter has been deprecated.
* providers/imap/camel-imap-utils.c (imap_parse_body): Use
camel_strdown() since g_ascii_strdown() does not do what we
thought.
* providers/imap/camel-imap-store.c:
s/strstrcase/camel_strstrcase/g
* providers/imap/camel-imap-folder.c (do_append):
s/strstrcase/camel_strstrcase/
(handle_copyuid): Same.
* string-utils.c (camel_strdown): New function because the
g_ascii_strdown interface sucks.
(camel_strstrcase): Renamed from strstrcase.
svn path=/trunk/; revision=20213
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-02-04 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-utils.c (imap_parse_body): Use
g_ascii_strdown() instead of g_strdown, since g_strdown is
deprecated.
(imap_parse_body): Same.
* providers/imap/camel-imap-folder.c (decode_internaldate): Use
strncasecmp() here too.
(parse_fetch_response): And here.
(camel_imap_folder_selected): Here too.
* providers/imap/camel-imap-utils.c (imap_namespace_decode): Use
strncasecmp() instead of g_strncasecmp() because the latter is
deprecated.
* providers/imap/camel-imap-store.c (imap_get_capability): Again here.
(hash_folder_name): Here too.
(compare_folder_name): And here.
(get_folder_online): Again.
(get_folder_offline): And again.
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
Same as below again.
* providers/imap/camel-imap-command.c (camel_imap_response_free):
Same as below.
* providers/smtp/camel-smtp-transport.c (smtp_data): Use
strcasecmp() because g_strcasecmp() is deprecated.
* camel-url.c (camel_url_new_with_base): Use g_ascii_strdown()
instead of g_strdown, since g_strdown is deprecated.
2003-01-28 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-gssapi.c (gssapi_challenge): Pass in some default
flags to gss_init_sec_context() (these default flags are defined
as a MUST in rfc1964).
svn path=/trunk/; revision=19748
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-12-17 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-utils.c: Replace calls to
g_string_sprintfa() with g_string_append_printf() since the former
seems to have been deprecated.
* providers/imap/camel-imap-search.c: Same.
* providers/imap/camel-imap-folder.c: Here too.
* providers/local/camel-mbox-summary.c: And here.
* providers/local/camel-local-summary.c: Replace
g_string_sprintf() with g_string_printf().
* camel-data-cache.c (data_cache_expire): Replace
g_string_sprintf() with g_string_printf().
* camel-url.c: Replace calls to g_string_sprintfa() with
g_string_append_printf() since the former seems to have been
deprecated.
* camel-service.c: Same.
* camel-mime-utils.c: Here too.
svn path=/trunk/; revision=19154
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-11-11 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_message_simple): Use
g_strerror when setting an exception string (we need it to be in
UTF-8).
* providers/pop3/camel-pop3-store.c (pop3_try_authenticate): Use
g_strerror when setting an exception string (we need it to be in
UTF-8).
* providers/pop3/camel-pop3-folder.c (pop3_refresh_info): Use
g_strerror when setting an exception string (we need it to be in
UTF-8).
(pop3_get_message): Same.
svn path=/trunk/; revision=18690
|
|
|
|
| |
svn path=/trunk/; revision=18315
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-10-02 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (get_matching): Set *set to
NULL if we dont get any matches.
(imap_sync_online): If we get no matches, skip any work, also
reorder some code to make it easier to skip. See #31031.
* providers/imap/camel-imap-store.c
(imap_check_folder_still_extant): Default to "TRUE", if the list
command failed, it probably means a server problem, assume the
worst. This makes imap_refresh_info not clear the exception and
crash. Fixes crash of #31000.
2002-10-01 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_refresh_info): Make
sure we pass the exception to imap_folder_selected(), otherwise
failures can be lost. See bug #31000.
2002-10-01 Not Zed <NotZed@Ximian.com>
* camel-folder.c (thaw): Add an assertion that the frozen count>0.
(freeze): Same for >= 0.
* camel-vee-folder.c (camel_vee_folder_remove_folder): Use the
unmatched freeze_count when thawing folders removed from
unmatched, rather than the folder's freeze_count. Might be
related to #27391.
svn path=/trunk/; revision=18314
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-10-01 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (decode_internaldate): Use
strtol when decoding the timezone (since it can be negative) and
don't forget to increment inptr to the start of the time (ie,
don't leave inptr pointing to the year when decoding the
hour:min:sec).
svn path=/trunk/; revision=18283
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-30 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Remove
debug content_info_dump, could cause a crash, and not really
needed anymore.
* camel-folder-summary.c (camel_content_info_dump): Check ci->type
!= NULL before dereferencing it. Should fix crash #31331.
svn path=/trunk/; revision=18259
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-27 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (decode_internaldate): New
function to decode the INTERNALDATE response from an IMAP server
so we don't have to use my broken-date-parser routines.
2002-09-27 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c (connect_to_server):
NULL-check the streams before unreffing them in the case of a
failure during ssl negotiations.
* camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_enable_ssl): Check
SSL_ResetHandshake() for errors. Also force a handshake after
we've reset the handshake state on the socket.
svn path=/trunk/; revision=18252
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-27 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): Use
the summary's last uid as the one to fetch from, ignoring the
cache. Use strotul instead of atoi as well.
* providers/imap/camel-imap-store.c (get_folder_counts): If we
have the folder open, and the unread count has changed, refresh
it. Should fix #30399 enough. Also in non-check-all mode, if we
have the folder open, use it anyway.
svn path=/trunk/; revision=18242
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-23 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (add_message_from_data):
Decode the INTERNALDATE if we've got one.
(imap_update_summary): Instead of requesting a list of specific
headers, request HEADER.FIELDS.NOT (RECEIVED) to reduce bandwidth
usage even more.
(parse_fetch_response): Change slightly to allow HEADER.FIELDS or
HEADER.FIELDS.NOT so that we can make changes in
imap_update_summary and not need to keep changing this function to
match. Also parse an INTERNALDATE response.
svn path=/trunk/; revision=18178
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-19 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (parse_fetch_response): Don't
increment the response pointer when deciding what type of header
response we got, this screws up the string that we strdup into the
part_spec string later. Also, instead of using the entire blob of
HEADER.FIELDS that we get in the response, shorten it to just
HEADER.FIELDS to use as the part_spec key.
svn path=/trunk/; revision=18111
|
|
|
|
|
|
|
|
|
| |
2002-09-18 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (CAMEL_MESSAGE_INFO_HEADERS):
Include MIME-VERSION and CONTENT-TYPE.
svn path=/trunk/; revision=18108
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-17 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (parse_fetch_response):
Handle when the response is from a HEADER.FIELDS (if so, we don't
want to cache the result).
(imap_update_summary): Request specific headers when building the
CamelMessageInfo's rather than fetching the full headers.
svn path=/trunk/; revision=18102
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-part.c (process_header): If header_msgid_decode fails
for the content-id field, just grab whatever is between the <>'s
(yes, this means that the content-id is invalid - but what can ya
do?). Addresses bug #21027.
svn path=/trunk/; revision=18071
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-10 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c
(camel_imap_folder_fetch_data): Clear the exception even if we
failed to get the message (part) from the imap-message-cache if we
are online and able to try fetching it from the IMAP server.
svn path=/trunk/; revision=18035
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-09 Jeffrey Stedfast <fejj@ximian.com>
Fixes bug #4224
* providers/imap/camel-imap-folder.c
(camel_imap_folder_fetch_data): Pass ex into
camel_imap_message_cache_get().
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_get): Now takes an exception and sets it
on fail.
(camel_imap_message_cache_copy): Updated to properly handle
cache_get error conditions.
svn path=/trunk/; revision=18027
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-09-04 Not Zed <NotZed@Ximian.com>
* tests/folder/test4.c (main): clear nonfatal stuff.
* tests/folder/test6.c (main): check inbox and 'another folder'
because some servers do different things w/ inbox.
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_get): Dont try to open the directory
instead of an empty "" uid.
* providers/imap/camel-imap-folder.c (imap_get_message): we dont
want to g_return_if_fail, we need to set an exception and always
handle the case.
(get_message_simple): Set an exception if we get a construct
failure.
(imap_refresh_info): if we're refreshing inbox, force a reselect.
this is required for at least cryus. CHECK doesnt work either :(
* tests/lib/folders.c (test_folder_basic): for non-local stores,
the folder will have an extra ref for selection, take this into
account when checking ref leaks.
(test_folder_message_ops): Dont try to delete folder with messages
in it, it works generally with imap. also, change params so we
can test different mailbox types.
(test_folder_message_ops): disconnect remote services before
finishing off. doesn't need to stricly but makes ref count
checking more accurate.
(test_folder_message_ops): removed explicit remote sync, imap does
it itself now ...
* providers/imap/camel-imap-store.c:
(camel_imap_store_finalize): call service_disconnect, so it isn't
called later in the finalise chain, to properly cleanup on exit.
svn path=/trunk/; revision=17962
|
|
|
|
| |
svn path=/trunk/; revision=17868
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-08-26 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c:
* providers/imap/camel-imap-folder.c:
* providers/imap/camel-imap-command.c: Lock the
CamelService->priv->connect_lock instead of using our own
command_lock. This fixes bug #28177.
svn path=/trunk/; revision=17861
|
|
|
|
|
|
|
|
|
| |
2002-08-20 Jeffrey Stedfast <fejj@ximian.com>
* camel-session.c: Set CAMEL_URL_NEED_PATH for the vFolder
provider.
svn path=/trunk/; revision=17817
|
|
|
|
|
|
|
|
|
|
|
| |
2002-08-02 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (get_temp_uid): New function,
generate a UID that has better chances of being unique.
(imap_append_offline): Use it here.
(imap_transfer_offline): And here.
svn path=/trunk/; revision=17757
|
|
|
|
|
|
|
|
|
| |
2002-08-09 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (imap_rename): When renaming our
cache, add the "/folders" to the path.
svn path=/trunk/; revision=17752
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-08-08 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_init): Set
some default permanent_flags. This is the other cause of bug
#28038.
(imap_refresh_info): After calling camel_imap_command() with a
NULL format value (this is a shortcut to change the current_folder
by SELECTing it), call camel_imap_folder_selected(). This may have
been why permanent_flags never got set on the folder even after
going online in bug #28038.
(imap_update_summary): Same here. Also NULL-guard
camel_imap_response_free().
svn path=/trunk/; revision=17743
|
|
|
|
|
|
|
|
|
|
| |
2002-08-08 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_init): Set
some default permanent_flags. This is the other cause of bug
#28038.
svn path=/trunk/; revision=17741
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-08-07 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_encode_param): Oops - outbuf pointed
to alloca'd memory but we were g_free'ing it after using
it. Instead use g_malloc for this outbuf buffer since it may be
kinda large. Also don't depend on a single byte to nul-terminate
the outbuf buffer so as to be safe with charsets such as UCS2 and
UCS4, instead keep a pointer to the end of the buffer.
svn path=/trunk/; revision=17737
|
|
|
|
|
|
|
|
|
| |
2002-08-07 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (parse_fetch_response): Only
add the stream to the gdatalist if it is non-NULL.
svn path=/trunk/; revision=17735
|
|
|
|
|
|
|
|
|
|
| |
2002-07-31 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (parse_fetch_response):
Disable my fix to not cache headers as it means that each time we
load the message, we've got to re-fecth the headers.
svn path=/trunk/; revision=17665
|
|
|
|
|
|
|
|
|
|
| |
2002-07-30 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (imap_transfer_offline): Use
the same command-counter mojo that the append code uses in case
the use tries to copy the same message to the folder repeatedly.
svn path=/trunk/; revision=17641
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-07-25 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-summary.h
(camel_imap_summary_add_offline_uncached): Prototype.
* providers/imap/camel-imap-summary.c
(camel_imap_summary_add_offline_uncached): New function to add an
uncached message to the summary while offline.
* providers/imap/camel-imap-store.c (imap_connect_online): Only
refresh the folders if the disco diary is empty (ie, we're not
resyncing.)
* providers/imap/camel-imap-folder.c (imap_transfer_offline): Emit
an event for the source if deleting its originals. Also, if we
can't load the message, still process it, using the new imap
summary function.
svn path=/trunk/; revision=17596
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-07-24 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (imap_expunge_uids_resyncing): It
would help to mark the UIDs as deleted before we try to expunge them
(in the case when no other UIDs were marked deleted this didn't happen.)
Also fix an FMR.
(imap_expunge_uids_offline): Trigger a folder_changed event with our
own changeinfo because camel_imap_response_free won't be able to do that
for us.
svn path=/trunk/; revision=17589
|
|
|
|
|
|
|
|
|
|
| |
2002-07-24 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_expunge_uids_online):
Sync before doing an expunge if we dont have uidplus. See #25766.
(imap_expunge_uids_resyncing): Same here.
svn path=/trunk/; revision=17562
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-07-16 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (imap_sync_online): Clean
up some improper usage of CamelExceptions (looking at
camel_exception_is_set when ex = NULL).
* providers/imap/camel-imap-store.c (get_folder_online): Here too.
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_new): Nothing sets the exception so
don't bother to check it at the end of this function. Prevents
a warning about checking a NULL exception's value.
svn path=/trunk/; revision=17482
|
|
|
|
|
|
|
|
|
| |
2002-07-15 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (imap_get_message): If we're
not online and the message isn't in our cache, give up.
svn path=/trunk/; revision=17475
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-07-15 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (imap_rescan): >= is not appropriate
here because the sequences are 1-based; so seq = summary_len is valid.
Hopefully addresses 15646, because this caused the last message in a folder
to be reloaded, replacing its CamelMessageInfo, and the tree view was using
the old CamelMessageInfo.
svn path=/trunk/; revision=17460
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-07-13 Not Zed <NotZed@Ximian.com>
* camel-folder-summary.c
(camel_folder_summary_info_new_from_message): Only assign a uid if
indexing is enabled. This stops us always assigning a uid in the
imap folder and disco folder?
* providers/imap/camel-imap-folder.c (imap_update_summary): Also
check the uid is set at all, another bit of a fix for #15667.
2002-07-09 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): Check
for existing messages of the same uid before doing anything. If
it exists, do nothing (perhaps it should merge?). A dirty hack for
#15667.
svn path=/trunk/; revision=17450
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-07-12 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): Handle
multipart/encrypted parts too.
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_parser): Handle
multipart/encrypted types too.
svn path=/trunk/; revision=17434
|
|
|
|
|
|
|
|
|
|
|
| |
2002-07-11 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (parse_fetch_response): If we
are fetching HEADERs, don't cache the stream - instead just create
a mem-stream and return that. This reduces a significant amount of
overhead due to disk i/o.
svn path=/trunk/; revision=17424
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-06-19 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_refresh_info): Make
sure we hold the command_lock before accessing current_folder.
(imap_append_online): Same.
(imap_transfer_online): Same.
* providers/imap/camel-imap-store.c (delete_folder): We need to
hold the command_lock before we can set the current_folder to
NULL.
(rename_folder): Same.
(get_folder_info_online): We need to make sure we hold the
command_lock in order to use current_folder.
(everywhere): Same.
svn path=/trunk/; revision=17233
|
|
|
|
|
|
|
|
|
|
| |
2002-06-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_sync_online): Unlock
the command_lock after each UID STORE command so that other
(probably more important) threads can send their requests.
svn path=/trunk/; revision=17188
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-06-02 Not Zed <NotZed@Ximian.com>
* camel-sasl.c (camel_sasl_new):
(camel_sasl_finalize): setup/free the mech string.
* camel-sasl.h: Added 'mech' mechanism string.
2002-06-01 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_getv): Implement. Only
the object_description arg.
(camel_imap_folder_get_type): Init parent_class holder.
* providers/local/camel-local-folder.c (local_getv): Implement,
object_description arg.
* camel-folder.c (folder_getv): Implement, add a bunch of args you
can get -> camel_folder_get_unread_count etc will be going RSN i
hope.
(camel_folder_finalize): Free cached description string.
* camel-object.c (cobject_getv): Implement
CAMEL_OBJECT_ARG_DESCRIPTION, just return the classname of the
object.
(camel_object_getv):
(camel_object_get):
(camel_object_setv):
(camel_object_set): Take object = void *, to simplify usage.
(camel_object_setv): Removed unecessary locals.
(camel_object_getv): Same.
(camel_object_free): New method, free an arg, upto implementations
whether args are static/const or not.
(cobject_free): Implement a dummy do nothing free.
2002-05-31 Not Zed <NotZed@Ximian.com>
* camel-vee-folder.c (camel_vee_folder_get_location): new function
to get the real location (folder) (and uid) of a vfolder object.
Using the folderinfo, since we already have it, maybe it should
use the uid.
svn path=/trunk/; revision=17073
|
|
|
|
|
|
|
|
|
|
| |
2002-05-31 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): When the part
is a multipart/signed, make sure to free the part_spec before
returning (the other types already did this properly).
svn path=/trunk/; revision=17066
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-05-31 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_get): Free the path buffer when we're
done with it.
* providers/imap/camel-imap-folder.c (imap_update_summary): Free
the final tagged response buffer.
svn path=/trunk/; revision=17065
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-05-31 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_rescan): Revert my fix
from the other day since camel_imap_command_response() doesn't
guarentee that resp will be set to NULL on error.
* providers/imap/camel-imap-command.c
(camel_imap_command_response): Use a different variable to get the
return of imap_parse_untagged so that we don't lose the pointer to
the original malloc'd respbuf buffer.
svn path=/trunk/; revision=17061
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-05-30 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_rescan): Free the
response before checking for errors. I'm not sure this'll actually
fix the memory leak here, but it might? Certainly can't hurt.
* camel-block-file.c (camel_block_file_finalise): Destroy the
blocks hash table.
svn path=/trunk/; revision=17053
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-05-24 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (content_info_get_part_spec):
Helps if we allocate enough space here. Also, start smoking the
same purple flavoured IMAP crack when counting parts (parts don't
count if their parent part is a message/* part with a parent
part). Fixes bug #25260.
svn path=/trunk/; revision=17014
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-05-15 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-utils.c
(imap_parse_namespace_response): New function to parse a NAMESPACE
response properly.
(imap_namespaces_destroy): New function to destroy the returned
structure from the above function.
svn path=/trunk/; revision=16927
|
|
|
|
|
|
|
|
|
|
| |
2002-05-15 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): If the
part_spec is an empty string for a leaft part, use "1" since we
don't actually want to get the raw message headers too.
svn path=/trunk/; revision=16923
|
|
|
|
| |
svn path=/trunk/; revision=16795
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-05-14 Jeffrey Stedfast <fejj@ximian.com>
Fixes bug #24136.
* providers/imap/camel-imap-folder.c (content_info_get_part_spec):
New function to take a CamelMessageContentInfo and generate a
part-specification string.
(get_content): Stop passing around part_spec strings and use
content_info_get_part_spec instead.
* camel-folder-summary.c (camel_content_info_dump): Made this into
a public debugging function.
* providers/imap/camel-imap-utils.c (imap_parse_body): Make sure
to set the parent of any message/rfc822 subparts.
svn path=/trunk/; revision=16793
|
|
|
|
|
|
|
|
|
| |
2002-05-13 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Previous
fix reverted.
svn path=/trunk/; revision=16790
|
|
|
|
|
|
|
|
|
|
|
| |
2002-05-13 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Previous
fix reverted.
(get_content): Handle the case where a multipart's parent is a
message/rfc822 part. Fixes bug #24136.
svn path=/trunk/; revision=16789
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
| |
2002-05-10 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Fetch the
BODYSTRUCTURE rather than BODY since BODY seems to be lacking some
of the data we need. This fixes bug #24131.
svn path=/trunk/; revision=16762
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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-05-06 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (do_append): Call
camel_mime_message_encode_8bit_parts() which fixes bug #10885.
svn path=/trunk/; revision=16698
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-04-11 Not Zed <NotZed@Ximian.com>
* providers/local/camel-spool-summary.c (spool_summary_sync_full):
If the last message(s) were deleted, and we had any messages
output, account for the lost \n of the following From line by
adding an extra \n. fix for #8214.
2002-04-10 Not Zed <NotZed@Ximian.com>
* camel-mime-part-utils.c (convert_buffer): If we get a 0 length
input, return a 0 lenght output as valid - fixes bugs with some
iconv impl and its simpler anyway.
svn path=/trunk/; revision=16438
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-04-11 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c: Set the UID_SET_LIMIT value
to 4096. I ran into an issue tonight where apparently the IMAP
server changed the UIDVALIDITY and so Evo needed to re-fetch all
headers and it was trying to send a uid set of some 25k (yes, I
have a very large INBOX). Anyways, it was set to unlimited
before. Courier IMAPd can safely handle up to ~16k per token, but
UW IMAPd can only handle 8k per command-line, so I set it to 4k
just to be safe.
svn path=/trunk/; revision=16436
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-04-02 Not Zed <NotZed@Ximian.com>
* providers/local/camel-local-folder.c
(camel_local_folder_construct): Temporarily disable indexing.
2002-03-28 Not Zed <NotZed@Ximian.com>
* camel-partition-table.c (camel_key_table_lookup): Change range
checking assert to a warning.
* providers/pop3/camel-pop3-folder.c (pop3_finalize): Make sure we
flush out all outstanding commands before finalising, stops being
finalised while outsanding requests are processed by the store
finalise.
(pop3_get_message): Instead of pre-fetching all messages, just
pre-fetch a maxiumum number at any one time, stops us running out
of cache fd's.
* providers/nntp/camel-nntp-folder.c (nntp_folder_init/finalise):
Setup priv data + locks, & free.
* providers/imap/camel-imap-folder.c (imap_rescan): Batch all
message_chagned events into a single folder_changed event
(otherwise updates can be >>> expensive, like >5 hours for 80K
messages changing!). Alternately it could use folder
freeze/unfreeze perhaps.
2002-03-27 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-store.c (imap_keepalive): Pass an
exception to called code so it behaves properly since it uses the
passed exception to check returns.
svn path=/trunk/; revision=16319
|
|
|
|
|
|
|
|
|
|
| |
2002-01-29 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): Added
more kludge to an existing Exchange IMAP 5.5 kludge to work around
it returning multiple messages with the same UIDs.
svn path=/trunk/; revision=15513
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-01-15 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): Sort
the needheaders UID array and fixed to respect the
UID_SET_LIMIT. This should now finish the fixification of bug
#2529. There's still the possible issue that a command-line (The
only command-line I can think of that can still be too long is a
SEARCH command, but this can't possibly be fixed until we rewrite
the imap code to use Zucchi's ImapEngine idea).
svn path=/trunk/; revision=15327
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-01-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_expunge_uids_online):
Updated to use the new imap_uid_array_to_set() interface.
(imap_expunge_uids_resyncing): Same.
(do_copy): Here too.
(imap_update_summary): Added a FIXME comment to rewrite allowing
for a uid-set limitation.
(get_matching): Copy some of the logic over from
imap_uid_adday_to_set() to limit the length of the uid-set string.
(imap_sync_online): Added a comment to explain what is going on
with get_matching() since the behavior has changed slightly.
* providers/imap/camel-imap-utils.c (imap_uid_array_to_set):
Modify the interface so that we can limit the size of the uid set
string returned.
svn path=/trunk/; revision=15318
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-01-14 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-search.c (imap_body_contains):
Rewritten to use a cache for body searches when online. Will need
some heavy testing but so far seems to be beneficial.
* providers/imap/camel-imap-folder.c (imap_search_by_expression,
search_by_uids): dont initialise search object here.
(camel_imap_folder_new): Setup search object here with pointer to
cache dir.
2001-12-01 Not Zed <NotZed@Ximian.com>
* camel-store-summary.[ch]: New class to store a store's folder
list in. Not yet completed.
svn path=/trunk/; revision=15314
|
|
|
|
|
|
|
|
|
|
| |
2002-01-11 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): Kludge
around a bug in Exchange 5.5 that reports 2 messages with the same
UID. Fixes bug #17694. Replaces the fix from yesterday.
svn path=/trunk/; revision=15298
|
|
|
|
|
|
|
|
|
| |
2002-01-10 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): If mi
is NULL, don't bother updating it. Should fix bug #17694.
svn path=/trunk/; revision=15290
|
|
|
|
|
|
|
|
|
|
|
| |
2002-01-10 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): Kludge
around Microsoft Exchange 5.5 (bug #5348) by forgetting our
currently selected folder and re-SELECTing it so that the Exchange
server has a chance to realise it has new messages.
svn path=/trunk/; revision=15284
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-12-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): Reverted my
previous changes here since it doesn't actually work afterall.
* providers/imap/camel-imap-wrapper.c (imap_wrapper_hydrate):
Update to do uudecoding when appropriate.
svn path=/trunk/; revision=15098
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-12-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): Try to use the
original boundary so luis will stop bugging me about "data
corruption". Also preserve other params in the multipart
content-type by dumping it to a string and setting it on the mime
part.
svn path=/trunk/; revision=15094
|
|
|
|
|
|
|
|
|
|
| |
2001-12-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): Try to use the
original boundary so luis will stop bugging me about "data
corruption".
svn path=/trunk/; revision=15093
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-11-29 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder-search.c (search_body_contains): Don't use regex
matching. Fixes bug #16227.
* camel-mime-message.c (best_encoding): Check the content-object's
mime type, not the mime part types. Should fix bug #15843.
2001-11-27 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (get_content): Return NULL if
construct_from_stream fails.
(get_message): Same.
(get_message_simple): Here too.
(add_message_from_data): And here.
svn path=/trunk/; revision=14834
|
|
|
|
| |
svn path=/trunk/; revision=14736
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-11-06 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-command.c
(camel_imap_command_continuation): Now takes a command-length
argument so we can 1) avoid duping the command string yet again,
yay. 2) we now don't have to worry about embedded nul-chars
screwing us over (we still need to avoid allowing them into the
string but at least now it won't mess us up).
* providers/imap/camel-imap-folder.c (do_append): Instead of
appending a nul char to the end of the byte array and then passing
that off as if it were a string to
camel_imap_command_continuation, instead pass the byte-array
length since that function now takes a length argument. Yay. Also
encode any 8bit parts to avoid the possibility of sending embedded
nul chars to the imap server.
* providers/imap/camel-imap-store.c (try_auth): Updated to pass a
command-length argument to camel_imap_command_continuation().
svn path=/trunk/; revision=14637
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-30 <NotZed@Ximian.com>
* camel-folder-search.c (match_message): If we can't retrieve the
message, ignore it, it can't match.
* providers/imap/camel-imap-search.c
(camel_imap_search_class_init): Setup parent class pointer.
(imap_body_contains): If offline, just use the parent
body_contains method which will get the messages and search them
manually.
* providers/imap/camel-imap-folder.c (imap_search_by_expression,
imap_search_by_uids): Remove offline check.
svn path=/trunk/; revision=14442
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (get_message_simple,
imap_get_message): Set an X-Evolution-Source header on the
returned message so replies come from the right identity.
svn path=/trunk/; revision=14388
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-29 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c (subscribe_folder): Don't emit
a folder_subscribed signal if we are in the process of renaming
folders.
(unsubscribe_folder): Same here but for the unsubscribe signal.
(rename_folder): Unsubscribe from the folder being renamed and any
subfolders it may have before actually renaming. Once the folder
has been renamed, re-subscribe to it and it's subfolders with the
new name.
* camel-store.c (camel_folder_info_build): Sort the folder info's
before constructing the tree.
svn path=/trunk/; revision=14378
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-29 <NotZed@Ximian.com>
* camel-mime-utils.c: Turn off w() -> warnings.
* providers/imap/camel-imap-store.c (rename_folder): Also rename
the message cache.
(rename_folder): Fix subscribed folders table with rename(s).
* providers/imap/camel-imap-folder.c (imap_rename): Implement,
rename the cache dir pointer.
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_set_path): New method to set the path
used by a message cache.
svn path=/trunk/; revision=14327
|
|
|
|
| |
svn path=/trunk/; revision=14212
|
|
|
|
|
|
| |
(instead of version 2 or any later version).
svn path=/trunk/; revision=14190
|
|
|
|
|
|
|
|
|
|
| |
2001-10-26 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Check to
make sure that the dataset is non-NULL before using and/or
freeing.
svn path=/trunk/; revision=14181
|
|
|
|
|
|
|
|
|
|
| |
2001-10-18 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_sync_online): Fix my
Cyrus imapd workaround...instead of checking to see if info->flags
== FLAGGED, just check to see if it contains any IMAP flags.
svn path=/trunk/; revision=13770
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-09 <NotZed@Ximian.com>
* providers/local/camel-spool-folder.c (spool_search_by_uids):
Implement.
* providers/imap/camel-imap-search.c (imap_body_contains): If
searching a sub-set of the total message count, then use a UID
range to search only specific messages.
* camel-vee-folder.c (vee_folder_change_match): Removed.
(folder_changed_add_uid): Helper func for changed code.
(folder_changed_remove_uid): "
(folder_changed_change_uid): "
(folder_changed): Rewritten. Supports proper auto-updating of
changes, but not removals till a sync occurs.
(vee_search_by_uids): Implement.
(folder_changed): Changed to call an async threaded function to do
the actual folder updating.
* camel-folder-summary.c (camel_flag_list_copy): New func to copy
a whole list of flags.
(camel_tag_list_copy): New func to copy a whole list of flags.
* providers/imap/camel-imap-folder.c (imap_search_by_uids):
Implement.
* providers/local/camel-local-folder.c (local_search_by_uids):
Implement.
* camel-folder.c (camel_folder_search_by_uids): New function,
search a subset of uid's.
(search_by_uids): Default impl, return error.
svn path=/trunk/; revision=13532
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.h (struct _CamelFolder): replace the ever-growing
list of gbooleans with a single guint32 for flags.
* camel-folder.c: Update folder flag setting/checking.
* providers/pop3/camel-pop3-folder.c (camel_pop3_folder_init):
* providers/nntp/camel-nntp-folder.c (camel_nntp_folder_new):
* providers/local/camel-spool-folder.c (spool_init,
camel_spool_folder_new):
* providers/local/camel-maildir-folder.c (camel_maildir_folder_new):
* providers/local/camel-local-folder.c (local_init):
* providers/imap/camel-imap-folder.c (camel_imap_folder_init,
camel_imap_folder_new):
* camel-vtrash-folder.c (camel_vtrash_folder_init):
* camel-vee-folder.c (camel_vee_folder_init):
* camel-digest-folder.c (camel_digest_folder_init): update folder
flag setting.
svn path=/trunk/; revision=13509
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-03 <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Remove now unused 'recents' array/freeing func.
* camel-object.c (camel_object_trigger_event): Oops, always run
the prep function, even if we have no hooks listening. Causes
incoming imap recents to get ignored bythe camel-folder filter
inbox code.
svn path=/trunk/; revision=13398
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c
(camel_imap_folder_fetch_data): Grab the store's command_lock
before grabbing the folder's cache_lock to prevent deadlock if
another thread is processing an EXPUNGE response.
* providers/imap/camel-imap-folder.c
(imap_expunge_uids_resyncing): Fix a compiler warning that might
point out a real bug...
* providers/imap/camel-imap-folder.c (get_content): and one that
doesn't
svn path=/trunk/; revision=13209
|
|
|
|
|
|
|
|
|
| |
2001-09-24 <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): In the
'lose' case, free messages, not fetch_data twice!
svn path=/trunk/; revision=13101
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
* providers/imap/camel-imap-folder.c (imap_append_offline): Pass
an exception to the cache.
(imap_append_online): Same.
(imap_append_resyncing): Here too.
(imap_copy_offline): And here.
(handle_copyuid): Pass NULL as the exception here...
(parse_fetch_response): And finally here.
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_insert):
(insert_setup):
(camel_imap_message_cache_insert_stream):
(camel_imap_message_cache_insert_wrapper):
(camel_imap_message_cache_copy): Take an exception argument and
set it on error.
svn path=/trunk/; revision=12813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-09-06 <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (filter_proc): Thread
function to perform filtering.
(filter_free): Free the filter object.
(camel_imap_folder_changed): If we have threads enabled, then
queue up a request to perform filtering. For bug #4422.
* providers/imap/camel-imap-store.c (camel_imap_msg_new): Create a
new 'imap msg'.
(camel_imap_msg_queue): Queue an 'imap msg'.
(async_received): Handle receiving of imap msg in async thread.
(async_destroy): Handle destroying of imap msg.
(camel_imap_store_finalize): Destroy thread when done.
(camel_imap_store_init): Setup thread.
* providers/imap/camel-imap-store.h: Added an ethread to the
store, for async processing.
svn path=/trunk/; revision=12666
|
|
|
|
|
|
|
|
|
|
| |
2001-08-17 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_update_summary): Start
scanning new messages at maxuid + 1 rather than uidval + 1? Maybe
I'm missing the logic, but anyways...this might fix bug #5348.
svn path=/trunk/; revision=12170
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c (imap_keepalive): If we are
online and message flags have changed in the current folder, sync
the flags else do a NOOP. This fixes bug #4666. Also lock around
the NOOP command.
* providers/imap/camel-imap-folder.c (imap_sync_online): Don't
ever send "STORE FLAGS.SILENT ()" since Cyrus imapd doesn't like
this (and maybe others too?) so what we'll do instead is to send
"STORE -FLAGS.SILENT (\Seen \Answered \Deleted \Marked)" to clear
all the flags (since this is in essence what we want to do
anyway).
svn path=/trunk/; revision=12136
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-16 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_sync_online): Don't
ever send "STORE FLAGS.SILENT ()" since Cyrus imapd doesn't like
this (and maybe others too?) so what we'll do instead is to send
"STORE -FLAGS.SILENT (\Seen \Answered \Deleted \Marked)" to clear
all the flags (since this is in essence what we want to do
anyway).
svn path=/trunk/; revision=12131
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-store.c (camel_store_get_folder): We need to be ref'ing
the folder if/when we add it to the hash. This may fix bug #6089?
(camel_store_get_folder): Nevermind, reverted the fix.
(camel_store_get_folder): No, I wasn't on crack before after
all...if we don't ref here, then we're open to a race condition
later.
svn path=/trunk/; revision=11973
|
|
|
|
|
|
|
|
|
| |
tedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_rescan): Don't
g_strdup() the uid into the trigger_event call.
svn path=/trunk/; revision=11892
|
|
|
|
|
|
|
|
|
| |
2001-08-10 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (imap_rescan): Don't
g_strdup() the uid into the trigger_event call.
svn path=/trunk/; revision=11891
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_rescan): Fix off-by-one
error in cleaning up deleted messages at the end of the folder.
Fixes bug #5585 and maybe others.
svn path=/trunk/; revision=11712
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-06 Peter Williams <peterw@ximian.com>
Completely hide the namespace from everything external to the IMAP
code, which Dan W says is the way it should be.
* providers/imap/camel-imap-command.c
(imap_command_strdup_vprintf): Add a new %F argument, which is like
%S but will add the namespace (for folder names).
(camel_imap_command): Use %F here.
* providers/imap/camel-imap-utils.c (imap_parse_list_response):
Changed to strip out the namespec when returning *folder. In order
to do this we need to be passed the CamelImapStore.
(imap_concat): Move to here from camel-imap-store.c, un-static
(imap_namespace_concat): New function, adds the namespace to the
folder name, unless it's INBOX.
* providers/imap/camel-imap-utils.h: Prototypes.
* providers/imap/camel-imap-store.c (imap_connect_online): Extra
arg to imap_parse_list_response.
(imap_connect_offline): Here too.
(get_folder_status): Use %F.
(get_folder_online): Here too.
(delete_folder): Here too.
(create_folder): Here too, and arg to imap_parse_list_response.
(parse_list_response_as_folder_info): Arg to i_p_l_r.
(get_subscribed_folders_by_hand): Use %F.
(get_folders_online): Here too.
(get_folder_info_online): Instead of checking for NULL @name, check
for name = NULL or "", and set to "" instead of namespace. Pass ""
instead of namespace to camel_folder_info_build.
(subscribe_folder): Use %F.
(unsubscribe_folder): Here too.
* providers/imap/camel-imap-folder.c (imap_get_full_name): This
now just returns folder->full_name.
(do_append): Use %F
(do_copy): Here too.
svn path=/trunk/; revision=11705
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-01 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Slightly re-arranged filter/change notification logic. If we;re
filtering, freeze the folder till we're finished to smooth the ui
for new mail.
2001-07-31 Not Zed <NotZed@Ximian.com>
* camel-folder.c (camel_folder_init): Chagned mutexes to
e_mutexes, folder lock recursive. This fixes the imap filtering
bug, or at least some cases of it.
(camel_folder_finalize): Free mutexes.
* camel-private.h (CamelFolderPrivate): Changed mutexes to
e_mutexes.
2001-07-25 Not Zed <NotZed@Ximian.com>
* camel-folder.c (camel_folder_change_info_*): Change the
return if fail's into asserts.
(camel_folder_change_info_free): Don't let it accept a NULL
argument. This isn't g_lib so we dont have to.
svn path=/trunk/; revision=11537
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-command.c (camel_imap_command_start):
Send an IMAP command, but don't wait for responses.
(camel_imap_command_response): Read a single line of response from
the server.
(camel_imap_command, etc): Reimplement in terms of the new code.
* providers/imap/camel-imap-folder.c (imap_rescan): Use
camel_imap_command_start and camel_imap_command_response, and
call camel_operation_progress after each line read from the
server.
(imap_update_summary): Likewise, although with more fudging on the
precentages... Also, fix this so that if none of the new messages
are cached, it only does a single FETCH, and if some of them are
cached, it does two FETCHes (one to get the UIDs, FLAGS, and
SIZEs, and another to get the bodies of all of the messages that
aren't cached now that it knows the relevant UIDs). This should
speed up startup a bunch (especially if you have high bandwidth
but also high latency to the IMAP server).
svn path=/trunk/; revision=11430
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-24 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Change the break into a continue, we should process as many as we
can find.
* camel-folder.c (camel_folder_move_messages_to): If we have no
uid's to copy, exit here before going any further. Some code
internally [imap] assumes there are uids to copy otherwise it can
segfault.
(camel_folder_copy_messages_to): Same.
svn path=/trunk/; revision=11392
|
|
|
|
|
|
|
|
|
| |
2001-07-19 Peter Williams <peterw@ximian.com>
* Revert 7/11/2001 patch for IMAP INBOX filtering at NotZed's
request.
svn path=/trunk/; revision=11226
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
If the message info for an expunged message is NULL, then just
break out - maybe a message was expunged that we were never
notified even existed?
svn path=/trunk/; revision=11106
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-11 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Run the filter in its own thread to prevent locking issues.
(imap_filter_timeout): New function that does the filtering called
as a CamelSession timeout.
svn path=/trunk/; revision=11011
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_clear): Doh. Don't remove things from
the hash table while foreach'ing it. (And can't use foreach_remove
either because we have to remove them in a weird order). Fixes
#3618.
* providers/imap/camel-imap-folder.c (imap_get_message): If the
server returns OK from the FETCH BODY, but there's no parseable
BODY response, it's probably because there's an UN-parseable BODY
response, implying the message is badly formatted, MIMEwise. In
that case, fall back to fetching the message as a single part.
svn path=/trunk/; revision=10748
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_refresh_info): If the
folder is frozen, don't refresh, just record that we need to do it
later.
(imap_append_online): If the APPEND doesn't trigger an immediate
EXISTS response (because the folder isn't the selected folder, or
because the server doesn't do that until the next command), call
imap_refresh_info on the folder.
(imap_copy_online): Likewise. (Replacing the unconditional NOOP
that was there before, which absolutely killed filter performance
by forcing the IMAP provider to switch back and forth between
folders after every copy or move.)
(imap_thaw): If the folder needs a refresh, do it.
* camel-folder.c (camel_folder_is_frozen): New method
svn path=/trunk/; revision=10565
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected,
imap_append_offline, imap_append_online,
camel_imap_folder_changed): lock the cache around accesses
* providers/imap/camel-imap-store.c (get_folder_online): ref the
newly-created folder (as current_folder) before calling
camel_imap_folder_selected, in case that needs to do something
that causes another folder to become current...
svn path=/trunk/; revision=10509
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_rescan): Don't fetch
the UID and FLAGS of messages we don't know about yet, since
they'll just get discarded.
svn path=/trunk/; revision=10132
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-store.c (imap_connect_online,
imap_connect_offline): Create a CamelDiscoDiary.
(imap_disconnect_offline): And free it.
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
If RESYNCING, don't do any sort of checking that the remote folder
matches the summary, beyond making sure that the UIDVALIDITY is
correct.
(imap_rescan): Add a missing camel_folder_summary_info_free when
removing a UID from the summary.
(imap_expunge_uids_offline): Implement. Fairly simple.
(imap_expunge_uids_resyncing): Implement. If the store supports
UIDPLUS, we can just use imap_expunge_uids_online. If not, we need
to temporarily undelete any messages marked deleted on the server
that aren't supposed to get expunged.
(imap_append_offline): Implement, using cache and summary
operations, and triggering the folder_changed event by hand.
(imap_append_resyncing): Implement. Redo imap_append_online a bit
in the process to make them able to share more code.
(imap_copy_offline): Implement.
(imap_copy_online): Move parts of this out into a helper.
(imap_copy_resyncing): Implement. In most cases this is just like
imap_copy_online, but if you are copying a message that was itself
copied or appended into the folder, and the server doesn't do
UIDPLUS, it will be necessary to replace at least part of the copy
operation with one or more appends.
* providers/imap/camel-imap-command.c (imap_read_response): Don't
record the current folder in the response when in RESYNCING mode.
(This means that EXISTS and EXPUNGE responses won't be processed,
which is needed because the summary may not match the folder at
this point.)
(imap_read_response): On error, call
camel_imap_response_free_without_processing, not
camel_imap_response_free.
* providers/imap/camel-imap-utils.c (imap_uid_array_to_set): Make
this work better when operating on UIDs that aren't in the summary.
* providers/imap/camel-imap-summary.c
(camel_imap_summary_add_offline): New routine used by
imap_append_offline and imap_copy_offline to create new summary
entries.
svn path=/trunk/; revision=10041
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c: Add a "need_rescan" flag
saying if we want to rescan the entire folder for flag changes
next time it's selected.
(camel_imap_folder_init): Set need_rescan TRUE.
(camel_imap_folder_selected): If need_rescan is TRUE, call
imap_rescan.
(imap_refresh_info): Only do a full rescan if need_rescan is TRUE.
Otherwise just do a NOOP, making this a MUCH more lightweight
operation. Also, don't call imap_rescan directly if the folder
isn't selected, since that could end up causing the folder to be
scanned *twice* (imap_rescan -> camel_imap_command ->
camel_imap_folder_selected -> imap_rescan).
(imap_rescan): Set need_rescan FALSE.
(imap_sync_online): Don't NOOP if no changes were pushed: the
caller will call refresh_info if it wants to poll for changes.
Fixes evolution-mail doing lots of unnecessary extra work at
quit time.
svn path=/trunk/; revision=10010
|
|
|
|
|
|
|
|
|
|
| |
2001-05-09 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (imap_move_messages_to): Pass
appropriate parameters to CF_CLASS and add comment explaining why
my initial attempt at a solution didn't work.
svn path=/trunk/; revision=9742
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-disco-store.c (camel_disco_set_status): Set the
disconnected status.
(camel_disco_store_can_work_offline): Return whether or not a
given CamelDiscoStore can work offline or not.
* camel-disco-folder.c (camel_disco_folder_cache_message):
Explicitly tell a folder to cache a message. (Better than using
get_message, because for IMAP that doesn't guarantee you'll get
all the message parts.)
(camel_disco_folder_prepare_for_offline): Prepare a folder for
offline use by caching all messages meeting given search criteria
(and doing anything else the particular folder implementation
needs).
* camel-session.c (camel_session_set_online,
camel_session_is_online): A session-wide online/offline toggle.
(camel_session_init): Set online to TRUE.
* providers/imap/camel-imap-store.c (can_work_offline):
Implementation of CamelDiscoStore::can_work_offline. (Checks that
the store has been used online at least once.)
(imap_get_folder_online, imap_get_folder_offline): Deal with
request for "inbox" properly. ("Don't you mean... 'INBOX'?").
* providers/imap/camel-imap-folder.c (imap_cache_message):
Implementation of CamelDiscoFolder::cache_message.
* camel.h: Add camel-disco-store.h and camel-disco-folder.h
svn path=/trunk/; revision=9738
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-disco-store.c: new abstract class for disconnectable
remote stores
* camel-disco-folder.c: new abstract class for folders on
disconnectable stores.
* Makefile.am: Add camel-disco-folder.[ch] and
camel-disco-store.[ch].
* providers/imap/camel-imap-store.c: Make this a subclass of
CamelDiscoStore, and fix up the offline interfaces for the changes
since they were first written (particularly the fact that some
IMAP stores don't just use subscribed folders).
* providers/imap/camel-imap-folder.c: Make this a subclass of
CamelDiscoFolder, although most ops still fail in disconnected
mode.
* camel-store.c (camel_store_get_folder_info): Change gboolean,
gboolean, gboolean to guint32 in the prototype for this function.
* providers/local/camel-local-store.c (get_folder_info): Update
for prototype change.
svn path=/trunk/; revision=9659
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-command.c (camel_imap_command): Redo
command locking. Since command_lock is recursive, we can just get
a lock here, and release it either on error, or when the caller
frees the response data. (This simplifies a lot of stuff, and
fixes some problems with camel_imap_folder_changed being called
without the command_lock locked because of the 2001-03-22 change.)
(camel_imap_response_free):
(camel_imap_response_free_without_processing):
(camel_imap_response_extract):
(camel_imap_response_extract_continuation): These all take a
CamelImapStore now as well, to deal with locking.
* providers/imap/camel-imap-private.h: Add
CAMEL_IMAP_STORE_ASSERT_LOCKED, which defaults to a noop, but can
be made to call e_mutex_assert_locked.
* providers/imap/camel-imap-folder.c, camel-imap-search.c,
camel-imap-store.c: Simplify using new locking stuff. Add a few
CAMEL_IMAP_STORE_ASSERT_LOCKED checks.
svn path=/trunk/; revision=9639
|
|
|
|
| |
svn path=/trunk/; revision=9636
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
resync after disconnected operation more efficiently, but also
makes it possible to do appends and moves/copies more efficiently
now.
* providers/imap/camel-imap-folder.c (imap_append_message): If the
server supports UIDPLUS, grab the APPENDUID response and cache the
message into the folder's message cache.
(imap_copy_messages_to): Likewise, for COPYUID, copy any message
parts we have cached between the source and destination folder
caches.
(imap_get_message): If the entire message is already in the cache,
just return that rather than building it from parts.
(imap_update_summary): Fetch just the "UID FLAGS RFC822.SIZE" of
the new messages first, then only fetch the headers for messages
where we don't already have the headers cached.
* providers/imap/camel-imap-message-cache.c: Add gtk-doc comments.
(cache_put): Fix refcounting stuff here.
(camel_imap_message_cache_insert_stream,
camel_imap_message_cache_insert_wrapper): New.
(camel_imap_message_cache_get): Fix a bug here so the memory
caching actually works.
(camel_imap_message_cache_copy): New routine, used by
imap_copy_messages_to.
* providers/imap/camel-imap-utils.c (imap_uid_set_to_array):
Inverse operation of imap_uid_array_to_set. Used to parse COPYUID
response.
svn path=/trunk/; revision=9635
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-utils.c (imap_uid_array_to_set):
New-and-improved version of get_uid_set() from
camel-imap-folder.c. Looks at the summary as it goes so that if
you ask for messages 5, 6, 8, and 9, and there is no message 7,
then you get "5:9" instead of "5:6,8:9"
* providers/imap/camel-imap-folder.c (imap_copy_messages_to): Use
imap_uid_array_to_set() rather than get_uid_set().
(get_uid_set): Gone
svn path=/trunk/; revision=9632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-04-16 Jeffrey Stedfast <fejj@ximian.com>
* Makefile.am: Remove the EXTRA_GNOME_CFLAGS include.
* camel-store.c (camel_mkdir_hier): Convenience function that it
seems a number of camel-store implementations used gal for.
* providers/nntp/camel-nntp-store.c (ensure_news_dir_exists): Lets
not depend on gal for just e_mkdir_hier() - use camel_mkdir_hier()
instead.
* providers/nntp/camel-imap-store.c: Lets not depend on gal for
just e_mkdir_hier() - use camel_mkdir_hier() instead.
* camel-session.c (camel_session_get_storage_path): Don't depend
on e_mkdir_heir() anymore, use the CamelStore version.
* camel-folder-search.h: Removed gal dependency, why was this even
there in the first place?
* providers/imap/camel-imap-folder.c: Don't need gal/util/e-util.h
here, so remove it.
* string-utils.c (strstrcase): New function, well more like old
function brought back to life so we don't have to depend on gal.
* providers/imap/camel-imap-store.c (imap_store_setup_online): Use
strstrcase rather than e_strstrcase so we don't depend on gal.
(get_unread_online): Same here.
* providers/smtp/camel-smtp-transport.c (smtp_helo): Use
strstrcase.
svn path=/trunk/; revision=9383
|
|
|
|
|
|
|
|
| |
server_flags field as well, and don't overwrite any flags set by
camel_folder_summary_info_new_from_message. Might help with some
of the flag problems...
svn path=/trunk/; revision=9149
|
|
|
|
|
|
|
| |
messages all-at-once, since they don't support the [#.MIME]
syntax.
svn path=/trunk/; revision=9145
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_sync): If we don't
change any flags or expunge, send a NOOP to give the server a
chance to send EXISTS, etc, messages.
svn path=/trunk/; revision=9142
|
|
|
|
| |
svn path=/trunk/; revision=9024
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_get_full_name): Rewrite
to use imap_store->namespace, not service->url->path
svn path=/trunk/; revision=8966
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-command.c (imap_read_response): Don't
look at untagged responses other than "* BYE"...
(camel_imap_response_free): ...do it here instead...
(camel_imap_response_free_without_processing): ...but not here.
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
Remove the "EXISTS" line from the response so
camel_imap_response_free won't try to process it.
(camel_imap_folder_selected): If we get an EXISTS response mixed
in with the FETCH responses, record the new EXISTS value.
Use camel_imap_response_free_without_processing so that an EXISTS
response won't cause a loop.
(imap_rescan): Use camel_imap_response_free_without_processing.
(imap_update_summary): Use
camel_imap_response_free_without_processing. If an EXISTS response
shows up, call imap_update_summary again to get the new messages.
(imap_protocol_get_summary_specifier): Use BODY.PEEK[0], not
RFC822.HEADER for prev IMAP4rev1, since the FETCH parser won't
deal with RFC822.HEADER responses.
* providers/imap/camel-imap-store.c (get_folder_info): Fix an
uninitialized variable
svn path=/trunk/; revision=8905
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-store.c
(camel_imap_store_check_online): Function to check if the store is
online and set an exception if not. Currently controlled by an
environment variable, but eventually there will be both a global
(session-level) setting and a per-store setting.
(construct): Set up storage_path and base_url here rather than at
connect-time.
(imap_auth_loop): Split out from imap_connect.
(imap_setup_online): Split out from imap_connect. Do the
post-authentication connection setup, and cache the results to
disk.
(imap_setup_offline): Set up a CamelImapStore with information
saved from a previous imap_setup_online.
(imap_connect): If online, do connect_to_server(),
imap_auth_loop(), and imap_setup_online(). Otherwise, do
imap_setup_offline().
(get_folder, get_folder_info): Add offline support.
(create_folder, subscribe_folder, unsubscribe_folder): Disable
these when offline (for now).
* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
Remove the sync'ing-with-server stuff... it's done by
camel_imap_folder_selected now, which only gets called if the
store is online.
(camel_imap_folder_selected): add the code removed from
camel_imap_folder_new. Besides simplifying the folder_new and
summary_new code, this also means now that we'll DTRT if a
folder's UIDVALIDITY changes while we're connected. Also, when
that happens, clear the message cache explicitly.
(imap_refresh_info, imap_sync): These are no-ops when offline.
(imap_expunge, imap_append_message, imap_copy_message_to,
imap_search_by_expression): These don't yet work offline.
(imap_get_message, camel_imap_folder_fetch_data): Return an error
when trying to fetch a non-cached body part when we're offline.
* providers/imap/camel-imap-summary.c (camel_imap_summary_new):
Rewrite to not check the validity here. (We'll do it from
camel_imap_folder_selected instead.)
* providers/imap/camel-imap-command.c (camel_imap_command): Call
camel_imap_folder_selected even when the selection is all we're
doing, to match the changes in camel-imap-folder.c.
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_clear): New function to clear out a
message cache.
svn path=/trunk/; revision=8851
|
|
|
|
| |
svn path=/trunk/; revision=8744
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
caching of message parts, but NOT any actual disconnected support.
(But it should speed up IMAP use.)
* providers/imap/camel-imap-message-cache.c: New class for caching
message data to disk, and removing it when it's no longer
relevant. Will eventually also support merging message parts
together to save on files. Or maybe using a db instead of files?
* providers/imap/camel-imap-private.h: Add a cache_lock to
CamelImapFolderPrivate. This lock must be recursive, so make both
locks EMutexes rather than GMutex.
* providers/imap/camel-imap-folder.c (parse_fetch_response): "The
only FETCH response parser you need!" Replaces the various
almost-correct bits of code formerly scattered throughout this
file with a single fully-correct function that can handle any
FETCH response at any time, so we don't get confused by seeing a
flags update when we were only expecting a message body, etc.
(camel_imap_folder_fetch_data): FETCH a message body part either
from the cache or the server
(camel_imap_folder_changed): Remove expunged messages from the
message cache.
(camel_imap_folder_new): Change to take a directory instead of a
summary file name. Create a CamelImapMessageCache for the folder.
(imap_finalize): Unref the message cache.
(camel_imap_folder_selected, imap_rescan, get_content,
get_message, imap_get_message, imap_update_summary): Redone a
bunch to use parse_fetch_data, CamelImapMessageCache, etc.
* providers/imap/camel-imap-store.c (get_folder): Pass directory
name to camel_imap_folder_new, not summary filename. Use
e_path_to_physical to generate a path with /subfolders/ inserted
between directory components.
* providers/imap/camel-imap-wrapper.c (camel_imap_wrapper_new):
Call camel_imap_folder_fetch_data (with cache_only TRUE) and if
the data is cached, return an online datawrapper rather than an
offline one.
(write_to_stream): Use camel_imap_folder_fetch_data (with
cache_only FALSE) here too
* providers/imap/camel-imap-utils.c (imap_skip_list): Renamed from
skip_list and made non-static.
svn path=/trunk/; revision=8743
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_sync): Group messages
into sets with the same flags and use the IMAP message set
notation rather than doing a separate STORE FLAGS for each one.
This cuts the network traffic down to just a handful of commands
per sync rather than one per changed message. Removed the progress
notification stuff since it's no longer meaningful and should
hopefully be unnecessary.
(imap_copy_message_to): move the former sync_message function
into here, since it's no longer shared with imap_sync.
svn path=/trunk/; revision=8396
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-02-23 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_sync): Add some
internal progress reporting.
(imap_rescan): Do some progress reporting.
* camel-mime-part.c (init_header_name_table): Add the message-id
to the formatted table, so we dont try and wrap it, and break it.
svn path=/trunk/; revision=8350
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-summary.h (CAMEL_IMAP_SERVER_FLAGS):
#define this as the set of all IMAP system flags
* providers/imap/camel-imap-folder.c (sync_message): after syncing
flags, set server_flags to (flags & CAMEL_IMAP_SERVER_FLAGS)
rather than just "flags", since any other flags won't have been
synced. Prevents the CAMEL_MESSAGE_ATTACHMENTS flag from getting
lost.
svn path=/trunk/; revision=8344
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (fetch_medium): Fixes for
IMAP4-pre-rev1 from Torsten Schulz.
svn path=/trunk/; revision=8318
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (fetch_medium): IMAP4
(pre-rev1) doesn't allow BODY.PEEK[], so use RFC822.PEEK instead
in that case.
svn path=/trunk/; revision=8244
|
|
|
|
|
|
|
|
|
| |
2001-01-22 Christopher James Lahey <clahey@helixcode.com>
* component/e-summary-url.c: Change the callbacks in this file to
match the callback function types. Fixes warnings.
svn path=/trunk/; revision=7723
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_update_summary): Oops.
Somewhere in one of the reorgs, the code to add new messages to
the CamelFolderChangeInfo structure got removed. Fix that.
svn path=/trunk/; revision=7627
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-types.h: typedef CamelMessageInfo and
CamelMessageContentInfo here
* camel-folder-summary.h: Add a "size" field to
CamelMessageContentInfo.
* camel-folder-summary.c (camel_folder_summary_content_info_new,
camel_folder_summary_content_info_free): Renamed and made
non-static for providers that construct their own content info.
(content_info_load, content_info_save): load/save size
* camel-data-wrapper.c (camel_data_wrapper_is_offline): New
function to return if a data wrapper's contents are "offline". (So
that, for example, we don't make thumbnails of images that haven't
been loaded off the IMAP server yet.) Defaults to FALSE.
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
Fix a bug in re-selecting a folder when messages have been
expunged from it by another client in the meantime.
(imap_get_message): Rewrite. If the message is larger than a
certain size, just create a skeleton message containing
CamelImapWrappers that will read parts as needed. This way, large
attachments only need to be downloaded if the user looks at them,
and multipart/alternative alternatives that aren't used will never
be downloaded at all.
(imap_update_summary): Rewrite this a bunch too to make the
parsing more robust.
* providers/imap/camel-imap-summary.c
(CAMEL_IMAP_SUMMARY_VERSION): bump.
(camel_imap_summary_new): Set build_content to TRUE.
(content_info_load, content_info_save): Only save/load the content
for messages that have it. (The content info gets created as a
side effect of imap_get_message.)
* providers/imap/camel-imap-utils.c (imap_parse_body): New routine
(and helpers) to parse an IMAP 'body' FETCH response and fill in a
CamelMessageContentInfo from it.
* providers/imap/Makefile.am (libcamelimap_la_SOURCES,
libcamelimap_la_HEADERS): add camel-imap-wrapper.
svn path=/trunk/; revision=7557
|
|
|
|
|
|
|
|
|
| |
2001-01-15 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Lock around the
imap_rescan, which needs it.
svn path=/trunk/; revision=7513
|
|
|
|
|
|
|
|
|
|
|
| |
before copying so that they end up correct in the remote folder.
And poke the destination folder after doing the copy so it notices
the new message right away.
(imap_move_message_to): Call imap_copy_message_to for most of the
work rather than duplicating the code (since it's much more
complicated now).
svn path=/trunk/; revision=7419
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
Fix a bug in previous commit: don't check for deleted messages if
there are no known messages in the folder (because it would end up
sending "FETCH 0 ...").
svn path=/trunk/; revision=7412
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
New function to check for added/deleted messages when re-selecting
a folder.
(imap_refresh_info, imap_rescan, imap_update_summary): Various
locking tweaks that turn out to be irrelevant since command_lock
is recursive, but whatever.
* providers/imap/camel-imap-command.c (camel_imap_command): When
selecting a new folder, call camel_imap_folder_selected on it.
svn path=/trunk/; revision=7410
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_rescan): Fix two
problems in figuring out server-expunged messages.
svn path=/trunk/; revision=7251
|
|
|
|
|
|
|
|
|
|
| |
2001-01-03 Christopher James Lahey <clahey@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
Initialize the exists variable so that we don't do random things
if the imap server misbehaves.
svn path=/trunk/; revision=7235
|
|
|
|
| |
svn path=/trunk/; revision=7217
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-stream.[ch]: Remove. To be replaced.
* providers/imap/Makefile.am (libcamelimapinclude_HEADERS): Remove
camel-imap-stream.h
* providers/imap/camel-imap-utils.c (imap_parse_flag_list): Take a
char ** instead of char *, to return the position at the end of
parsing like the string parsing functions.
(imap_parse_string_generic): New function to parse a string,
nstring, or astring.
(imap_parse_nstring, imap_parse_astring): Now macros
(imap_parse_string): Added
* providers/imap/camel-imap-folder.h: Remove the "exists" field
from CamelImapFolder.
* providers/imap/camel-imap-folder.c: Remove unused include of
camel-imap-stream.h.
(camel_imap_folder_init): Remove no-longer-relevant summary
initialization.
(camel_imap_folder_new): Update for imap_parse_flag_list change,
exists removal, and imap_rescan.
(imap_rescan): New function that does most of the work of the old
imap_refresh_info, but taking "exists" as an argument instead of
getting it from the folder. Also calls camel_imap_folder_changed
to do the summary updating and signalling, rather than duplicating
that code.
(imap_refresh_info): Just call imap_rescan (using the size of the
folder summary as "exists").
(imap_update_summary): Update for imap_parse_flag_list change
(camel_imap_folder_changed): Update for "exists" change.
svn path=/trunk/; revision=7216
|
|
|
|
| |
svn path=/trunk/; revision=7156
|
|
|
|
| |
svn path=/trunk/; revision=7155
|
|
|
|
| |
svn path=/trunk/; revision=7151
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-12-24 Not Zed <NotZed@HelixCode.com>
* providers/imap/camel-imap-search.c (imap_body_contains): Lock
the command channel while searching.
(imap_body_contains): If performing a whole uid search, then add
references to our own summary items, dont look it up in the
folder. This way they can't vanish unexpectedly.
* providers/imap/camel-imap-folder.h (CamelImapFolder): Added a
private field.
* providers/imap/camel-imap-private.h: Added lock for imap
searches.
* Merge from camel-mt-branch.
* providers/imap/camel-imap-folder.c (imap_update_summary): Merge
fix, use the folder->summary.
(imap_get_message_flags, imap_set_message_flags,
imap_get_message_user_flag, imap_set_message_user_flag): Removed
again.
(camel_imap_folder_init): Setup private data/lock.
(imap_finalize): Free private data/search lock.
(imap_search_free): Lock the search_lock.
(imap_search_by_expression): Lock the search lock when using the
search object. Also copy/ref hte summary, rather than getting it
directly.
(imap_refresh_info): Free any info lookups. Use folder->summary
not imap_folder->summary. And lock around commands.
svn path=/trunk/; revision=7150
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-search.c: New CamelFolderSearch
subclass that just reimplements body_contains (using the IMAP
SEARCH command). All other kinds of searching are done against the
local summary.
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
Use a CamelImapSearch to do searching.
* providers/imap/camel-imap-utils.c (imap_translate_sexp, etc): No
longer needed.
* camel-folder-search.h: Add missing CAMEL_FOLDER_SEARCH_TYPE
#define
svn path=/trunk/; revision=7119
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_refresh_info): Oops.
Don't do "FETCH 1:0" when the folder is empty.
(imap_protocol_get_summary_specifier): Request RFC822.SIZE too.
(imap_update_summary): Parse RFC822.SIZE and add it to the
summary.
svn path=/trunk/; revision=7088
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-summary.c: Add "guint32 server_flags"
to CamelImapMessageInfo to keep track of the last known message
flag state on the server.
(message_info_save, message_info_load): Save/load the
server_flags.
* providers/imap/camel-imap-folder.c: Make this use
CamelFolderChangeInfo and emit folder_changed notifications as it
gets them rather than only on refresh_info.
(imap_refresh_info): Notice flags that get cleared on the server
as well as flags that get set.
(imap_update_summary): Remove a comment that never actually
applied to the committed code.
svn path=/trunk/; revision=7086
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-command.c (camel_imap_command): Change
the semantics of fmt: Now %S (capital S) means an IMAP "string",
(which can be sent as either a quoted string or a literal). If
the server supports LITERAL+, these will be sent as extended
literals (which don't require any special escaping). Otherwise
they'll be sent as quoted strings (and it now properly deals with
" or \ in the string).
(imap_command_strdup_vprintf): Utility routine that does the real
work for the functionality mentioned above.
* providers/imap/camel-imap-utils.c (imap_quote_string): Turns a
string into a proper IMAP "quoted string".
* providers/imap/camel-imap-store.c:
* providers/imap/camel-imap-folder.c: Use %S instead of "%s" where
appropriate.
svn path=/trunk/; revision=7070
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-12-12 Christopher James Lahey <clahey@helixcode.com>
* camel-folder-summary.c, camel-folder-summary.h: Added #ifndef
NO_WARNINGS around a #warning. Added (void) to the prototype and
declaration of camel_message_info_new.
* camel-mime-message.h: Added an include for
camel-mime-filter-bestenc.h. Added a prototype for
camel_mime_message_set_best_encoding. Reformatted prototypes to
line up.
* camel-mime-parser.c: Added #if d(!)0 around the states string
lookup table since it's only used in debugging output.
* camel-seekable-substream.c (stream_flush): Added a cast.
* providers/imap/camel-imap-auth.c: Added #include <netinet/in.h>.
* providers/imap/camel-imap-folder.c (imap_refresh_info): Made uid
and flags const to fix warnings here.
* providers/imap/camel-imap-store.c (get_folder_info): Made p
const to fix warnings here.
svn path=/trunk/; revision=6954
|
|
|
|
|
|
|
|
|
|
|
| |
2000-12-06 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_refresh_info): We want
to bitwise-or the server and cached flags here so that we keep the
flags that we have set locally and set any additional flags that a
parallel connection may have set.
svn path=/trunk/; revision=6834
|
|
|
|
| |
svn path=/trunk/; revision=6801
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_get_message): use
BODY.PEEK[] rather than RFC822, so the message doesn't get marked
as \Seen.
svn path=/trunk/; revision=6800
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_set_message_flags): Fix
the check for "flags aren't actually changing".
* providers/local/camel-local-folder.c (local_set_message_flags,
local_set_message_user_flag, local_set_message_user_tag): Don't
emit message_changed unless the flags actually changed.
* providers/nntp/camel-nntp-folder.c
(nntp_folder_set_message_flags): Don't emit message_changed unless
the flags actually changed. Fix the check for marked as seen.
svn path=/trunk/; revision=6797
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-11-30 Not Zed <NotZed@HelixCode.com>
* providers/local/camel-mbox-folder.c (mbox_get_message): Remove
assertion that content is there, when it no longer can be.
* camel-folder-summary.h: Removed pos/bodypos/endpos from
camelmeessagecontentinfo.
(CamelMessageFlags): Added an attachments flag.
* providers/local/camel-local-summary.h: Added load virtual
function.
* tests/lib/folders.c (test_message_info): Accessors.
(test_folder_message): "
* camel-folder-thread.c (get_root_subject): Fix accessors.
(dump_tree_rec): "
* camel-folder-search.c (camel_folder_search_execute_expression):
Accessors for messageinfo.
(search_match_all): "
(search_header_contains): "
(search_header_contains): "
(search_body_contains): "
(camel_folder_search_execute_expression): Use mepool_strdup.
* providers/local/camel-mbox-summary.c (summary_update): Accessors
for messageinfo.
(mbox_summary_sync_full): "
* providers/local/camel-mh-summary.c (remove_summary): Accessors
for messageinfo.
(mh_summary_check): "
(mh_summary_sync_message): "
(mh_summary_sync): "
* providers/local/camel-mh-folder.c (mh_append_message): Use
accessor for uid.
* providers/local/camel-local-summary.c
(local_summary_decode_x_evolution): Use accessor to uid.
(local_summary_encode_x_evolution): Likewise.
(message_info_new): And here.
(camel_local_summary_load): Call virtual load function.
(local_summary_load): Default load function, load summary.
(camel_local_summary_load): Check file exists before trying to
load.
(camel_local_summary_construct): Turn off building content info!
(CAMEL_LOCAL_SUMMARY_VERSION): Bump, since we dont build content
info anymore.
(camel_local_summary_load): After a successful load/check, do a
save too so we dont have to go through it again randomly.
* providers/nntp/camel-nntp-utils.c (get_XOVER_headers): Use
accessors for messageinfo.
* providers/nntp/camel-nntp-folder.c (nntp_folder_get_uids): Use
accessors for uid.
* providers/imap/camel-imap-folder.c (imap_refresh_info): Use
accessor for uid.
(imap_sync): Likewise.
(imap_get_uids): Likewise.
(imap_update_summary): And here.
* providers/vee/camel-vee-folder.c (vfolder_remove_match): Use
accessor for uid.
(vfolder_add_match): Handle estrv stuff.
(vfolder_change_match): Accessor for uid.
(get_real_message): "
(vee_get_uids): "
(vee_folder_build): " + estrv.
(vee_folder_build_folder): "
* providers/local/camel-maildir-folder.c (maildir_append_message):
Use acccessors for uid's.
(maildir_get_message): Here too.
* providers/local/camel-maildir-summary.c
(camel_maildir_summary_init): Setup the string count for us.
(message_info_new): Access the string array directly.
(message_info_free): No need to free string if using array.
(camel_maildir_summary_info_to_name): Use accessor to get to uid.
(remove_summary): And here.
(maildir_summary_check): Likewise.
(maildir_summary_sync): And here.
(maildir_summary_load): Load up a cache of uid->filename mappings
before loading the actual summary file. This saves us having to
waste the diskspace storing the filenames in the summary itself,
and also helps us sync the summary better on load.
(message_info_load): If we have the load_map setup, and the uid
exists, then set the filename cache from it, and update the flags
from the name, incase our summary mismatches it.
* camel-folder-summary.c (camel_folder_summary_init): Setup string
count for compressed info record. An optional compile mode which
stores all strings for a given messageinfo into a packed array,
which should save 36-50 bytes/record.
(camel_folder_summary_info_new): Init the string array.
(message_info_new): Set the string array items, as required.
(message_info_load): And here too.
(message_info_save): Use accessors to get to strings.
(message_info_free): Free strings as one.
(camel_message_info_dup_to): Handle packed array case.
(camel_folder_summary_add): Use accessors. And pack the strv
before storing it.
(summary_assign_uid): New function to assign a unique uid to a
message, if it doesn't have one.
(camel_folder_summary_add): Call assign_uid instead of doing it
ourselves.
(camel_folder_summary_info_new_from_parser): "
(camel_folder_summary_info_new_from_message): "
(camel_folder_summary_encode_string): constify.
(camel_folder_summary_encode_token): "
(summary_build_content_info_message): Fix accessors to messageinfo.
(CAMEL_FOLDER_SUMMARY_VERSION): Bumped, for removal of
contentinfo->pos data.
(camel_folder_summary_info_new_from_parser): Calculate the size
based on the parser position, not the removed contentinfo stuff.
(camel_folder_summary_info_new_from_message): Remove size stuff.
(camel_folder_summary_offset_content): Removed, no longer means anything.
(content_info_new):
(content_info_load):
(content_info_save):
(summary_build_content_info): Remove stuff for contentinfo->pos*.
(summary_build_content_info): Take a msginfo argument, set
attachments flag if we find any attachments.
(summary_build_content_info_message): set attachments flag if we
find any attachments.
(camel_folder_summary_info_new_from_parser): Always scan the
content info, even if we dont save it.
(camel_folder_summary_info_new_from_message): And here too.
(summary_build_content_info): Only create the contentinfo stuff if
we have it turned on, otherwise just parse and discard.
(summary_build_content_info_message): Likewise.
svn path=/trunk/; revision=6731
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_get_full_name): Deal
correctly with namespace == ""
svn path=/trunk/; revision=6322
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
folder names rather than constantly prepending it and stripping it
off. Also some subscription fixes.
* camel-store.c (camel_folder_info_build): Fix for the case where
@top isn't in @folders.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Add
a "short_name" argument rather than figuring it out ourselves.
(imap_get_full_name): Implementation of CamelFolder::get_full_name
that strips off namespace so the user doesn't have to see it.
(imap_append_message, imap_copy_message_to, imap_move_message_to):
Use folder->full_name rather than calling
camel_imap_store_get_folder_path.
* providers/imap/camel-imap-utils.c (imap_parse_list_response):
Update this: make @flags a bitmask and @sep a char rather than a
string. Make all of the out arguments optional. Handle literals in
the server response.
* providers/imap/camel-imap-store.c (imap_connect): Do a better
job of getting the correct dir_sep for the namespace we're using.
Construct a base_url here that will be used by get_folder_info.
(camel_imap_store_folder_path): Removed
(imap_folder_exists): Add an argument to return the short name of
the folder (parsed out of the LIST response). Update for
imap_parse_list_response change.
(get_folder): Update for the various other changes.
(get_folder_info): Update for the various other changes. Be more
consistent about the returned layout: put everything underneath
the "namespace" directory, including INBOX, even if it doesn't
belong there. Don't destroy the list of subscribed folders until
we've actually gotten the new list.
(folder_subscribed, subscribe_folder, unsubscribe_folder): Use
folder_name directly rather than camel_imap_store_folder_Path.
* providers/imap/camel-imap-command.c (camel_imap_command): Update
for folder name changes.
svn path=/trunk/; revision=6256
|
|
|
|
| |
svn path=/trunk/; revision=6143
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_refresh_info): Emit
message_changed and folder_changed as appropriate.
svn path=/trunk/; revision=6064
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c (camel_folder_refresh_info): Update comment here
so refresh_info isn't just for reconnects any more. Make the
default implementation a no-op rather than an error.
* providers/nntp/camel-nntp-folder.c: Move refresh_info impl into
camel_nntp_folder_new, since it would have leaked memory and not
done anything useful if it was called later.
* providers/mbox/camel-mbox-folder.c: Remove no-longer-necessary
refresh_info impl.
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Update imap_folder->exists, but don't actually load the new
messages. This is a temporary workaround to deal with the IMAP
provider stealing the message list focus at annoying times.
(imap_copy_message_to, imap_move_message_to): Emit a
folder_changed by hand, for now.
svn path=/trunk/; revision=6046
|
|
|
|
|
|
|
| |
folder selection again, since it depends on the uidvalidity
having been set.
svn path=/trunk/; revision=5976
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_refresh_info): Remove
cached info at the end of the summary when the folder shrinks
between sessions. Also remove an untrue comment.
* providers/imap/camel-imap-store.c (get_folder): Fix up
summary_file to not include the namespace twice.
svn path=/trunk/; revision=5974
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-summary.c: Simple subclass of
CamelFolderSummary that also keeps a UIDVALIDITY value (and
doesn't, for the moment, build content info).
* providers/imap/camel-imap-folder.c:
(various): Use a CamelImapSummary to store/fetch summary info.
(camel_imap_folder_new): Take a path to a file to use for the
summary. Set the folder's permanent_flags correctly according to
the server response. Read in the summary (checking the
UIDVALIDITY) and update it if it's out of date.
(imap_refresh_info): Just fetch UIDs and flags. If the UIDs all
match, update the flags as needed and be done with it. Otherwise,
delete messages that have been expunged from the server and fetch
full summary info for any new messages.
(imap_sync): Save the summary to disk.
(imap_update_summary): Renamed from imap_get_summary_internal. Can
now be told to get summary for only a subset of messages. Use
camel-mime-utils functions rather than rolling our own header
parsing.
(imap_get_message_info_internal): Merged into imap_update_summary.
(imap_set_message_flags): Don't marked the message FOLDER_FLAGGED
if we're not actually changing the value of any of the flags.
(camel_imap_folder_changed): Deal with EXISTS rather than RECENT.
* providers/imap/camel-imap-store.c (imap_connect): Call
camel_session_get_storage_path and save the value.
(get_folder): Create a local directory to store summary
information and pass a summary file name to camel_imap_folder_new.
Don't call camel_folder_refresh_info from here any more since
camel_imap_folder_new does it again.
* providers/imap/camel-imap-command.c (camel_imap_command): Add a
special case to this to make it possible to get the repsonses from
a SELECT and still have store->current_folder be updated
correctly.
(imap_read_response): parse EXISTS rather than RECENT
* camel-session.c (camel_session_get_storage_path): Use
e_mkdir_hier.
* camel-folder-summary.c (camel_folder_summary_remove_index): New
function.
* camel-mime-utils.c (header_raw_append_parse): fix this.
(camel-mime-parser.c doesn't use this code because of the MEMPOOL
optimization, so nothing was ever actually calling it before.)
svn path=/trunk/; revision=5891
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-10-11 Not Zed <NotZed@HelixCode.com>
* camel-mime-part.h (struct _CamelMimePart): Removed
temp_message_buffer, and content_input_stream fields which seem to
have come from nowhere, and are unused.
* camel-mime-utils.c: Added a note about touching this file.
Nobody is to touch it without asking me first. That goes for you
too Jeff.
(header_decode_text): In what way is this broken?
2000-10-10 Not Zed <NotZed@HelixCode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary_internal):
Fix camel_summary_* function rename
(imap_get_message_info_internal): Likewise.
* camel-mime-parser.c (camel_mime_parser_finalise): Fixed a spelling mistake.
* camel-folder-summary.c (camel_summary_format_address): Uh, why
do we encode and then decode here ... sigh. This is not the way
to fix this.
(camel_folder_summary_format_address): Renamed to a proper name,
this was only supposed to be a private function.
(camel_folder_summary_format_string): Likewise. Oh i see why it
was made public, code reuse by cut & paste. Joy.
svn path=/trunk/; revision=5881
|
|
|
|
|
|
|
|
|
|
| |
2000-10-11 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_move_message_to): Quote
the mailbox name as it may contain spaces.
(imap_copy_message_to): Same.
svn path=/trunk/; revision=5853
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-command.c: New file containing
camel_imap_command and friends. Major camel_imap_command rewrite
to remove duplicated code, make the parsing of literals be
more safe/correct, deal with RECENT/EXPUNGE responses more
consistently, and make it possible to implement the AUTHENTICATE
command.
* providers/imap/camel-imap-utils.c (imap_parse_nstring): New
function, to parse an IMAP "nstring".
* providers/imap/camel-imap-store.c: Move command stuff to
camel-imap-command.c. Update for camel_imap_command changes.
* providers/imap/camel-imap-folder.c: Update for
camel_imap_command changes.
(imap_append_message): CRLF filter the message before sending it.
* providers/imap/Makefile.am: Add camel-imap-command.[ch], remove
camel-imap-stream.[ch] for now.
svn path=/trunk/; revision=5693
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.[ch]: Remove
camel_folder_{get,free}_subfolder_info, as we want to be able to
scan the whole subfolder tree without having to open any folders,
so this needs to be in CamelStore. Remove can_hold_folders and
can_hold_messages flags; things that don't hold messages are no
longer considered CamelFolders.
* camel-folder-summary.[ch]: Remove CamelFolderInfo stuff.
* camel-store.[ch]: Add camel_store_{get,free}_folder_info, as
well as camel_store_free_folder_info_full and ..._nop for default
implementations, and camel_folder_info_free and
camel_folder_info_build as convenience functions. Turn
CamelFolderInfo into a tree structure and also add an "url"
member.
* providers/*/camel-*-folder.c: Remove subfolder_info and can_hold
stuff.
* providers/*/camel-*-store.c: Add folder_info stuff.
* providers/imap/camel-imap-folder.c (imap_summary_free): Free the
summary elements with camel_message_info_free, not
camel_folder_info_free. Oops.
* providers/imap/camel-imap-utils.c: const poison
svn path=/trunk/; revision=5663
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-09-28 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): When
getting a literal string response, don't include the \r\n after
the closing } (as in: "... {798}\r\n...")
* providers/imap/camel-imap-stream.c (stream_read): Same.
svn path=/trunk/; revision=5621
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-store.c (camel_imap_command_extended):
Return untagged data in a GPtrArray rather than a string, since it
saves processing time and is much easier to deal with for several
commands. Update for camel_imap_folder_changed change.
(camel_imap_fetch_command): Update for camel_imap_folder_changed
change.
(imap_connect, imap_folder_exists): Update for
camel_imap_command_extended change.
* providers/imap/camel-imap-folder.c
(imap_get_message_count_internal,
imap_get_subfolder_info_internal, imap_search_by_expression):
Update for camel_imap_command_extended change.
(imap_get_summary_internal, imap_get_message_info_internal): Use
camel_imap_fetch_command here now to get around the
camel_imap_command_extended change.
(camel_imap_folder_changed): turn expunged into a GArray of ints
rather than a GPtrArray of strings representing ints.
svn path=/trunk/; revision=5608
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-09-22 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c
(imap_get_message_count_internal): Again...wrap the folder names
in quotes
* providers/imap/camel-imap-store.c (imap_folder_exists): Wrap the
mailbox name in the LIST command in quotes just in case the folder
has spaces in the name.
(imap_create): Again, wrap folder name in quotes.
(check_current_folder): Same...
* providers/imap/camel-imap-utils.c (imap_parse_list_response):
Update to unquote mailbox if it's quoted (allows us to get folders
with spaces in the name).
svn path=/trunk/; revision=5556
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c
(imap_get_subfolder_info_internal): The root folder's name is "",
not the namespace.
(camel_imap_folder_new): constify folder_name.
* providers/imap/camel-imap-store.c (get_folder): Create the
folder with folder_name, not folder_path.
(camel_imap_command_preliminary): Don't free cmdid here.
svn path=/trunk/; revision=5552
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-utils.c (imap_create_flag_list): New
function to convert Camel flags to an IMAP flag_list.
(imap_parse_flag_list): Contrariwise.
* providers/imap/camel-imap-store.c (camel_imap_command_*): Make
the @ret arg actually optional, as (mostly) documented.
(various): Don't pass "&result" to camel_imap_command_* if we're
just going to immediately free it. Don't record status if we're
not going to look at it.
* providers/imap/camel-imap-folder.c: Likewise.
(imap_summary_free): Use camel_folder_info_free.
(imap_sync): Use imap_create_flag_list. Clear
CAMEL_MESSAGE_FOLDER_FLAGGED after syncing so we don't keep
re-syncing.
(imap_append_message): Use imap_create_flag_list. Don't leak the
memstream if the append fails.
(imap_move_message_to): Use camel_folder_delete_message rather
than doing it by hand.
(imap_get_summary_internal, imap_get_message_info_internal): Use
imap_parse_flag_list and header_raw_clear.
(camel_imap_folder_changed): Use camel_message_info_free.
svn path=/trunk/; revision=5544
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-store.c (get_folder_name): INBOX is
case-insensitive.
(get_root_folder_name): Make the root folder "" rather than "/".
(get_folder): Update for root folder name change.
(camel_imap_store_get_toplevel_dir): Removed. (Unused, unneeded.)
(camel_imap_store_folder_path): New function to turn a Camel
folder name into the corresponding namespaced IMAP path.
(imap_folder_exists): Make this take a store and a path rather
than a folder.
(imap_create): Likewise
(get_folder): Update for camel_imap_store_folder_path and other
changes.
(check_current_folder): Likewise.
* providers/imap/camel-imap-folder.c: Change a bunch of CamelStore
variables to CamelImapStore (and add a few more) to prevent excess
gratuitous casting. Use camel_imap_store_folder_path where
appropriate.
(camel_imap_folder_new): Update for root folder name change.
svn path=/trunk/; revision=5541
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c
(imap_get_subfolder_info_internal): Fix the case where INBOX
isn't returned in the folder listing.
svn path=/trunk/; revision=5505
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: (init): Removed
(camel_folder_init, camel_folder_construct): New object init
function and public object constructor to replace the old init
method in a more Gtk-like fashion.
(get_parent_folder, camel_folder_get_parent_folder): Removed. No
CamelFolder subclass was ever setting the parent_folder member, no
code has ever needed to look at it, and fixing it would actually
be pretty hard.
(get_subfolder_info, camel_folder_get_subfolder_info): Renamed
from ..._names. Deals in CamelFolderInfo now.
(free_subfolder_info, camel_folder_free_subfolder_info): Likewise.
(get_subfolder, camel_folder_get_subfolder): Removed.
CamelFolderInfo contains the subfolder's full name, so this is
unnecessary now, and removing it lets us get rid of the
CamelFolder separator member, which is needed for the default
implementation of this function, but not otherwise needed for most
providers.
Also, lots of code style fixes.
* providers/*: Update CamelFolder subclasses for changes, although
none of them fill in the message counts in the CamelFolderInfo
yet.
svn path=/trunk/; revision=5503
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* configure.in: Added check for gnome-app-lib. Removed
directories that have been moved to gal.
From addressbook/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/Makefile.am, contact-editor/Makefile.am,
ename/Makefile.am, gui/component/Makefile.am,
gui/widgets/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* backend/ebook/e-card.c, backend/pas/pas-backend-file.c,
contact-editor/e-contact-editor-address.c,
contact-editor/e-contact-editor-categories.c,
contact-editor/e-contact-editor-categories.h,
contact-editor/e-contact-editor-fullname.c,
contact-editor/e-contact-editor.c,
contact-editor/e-contact-save-as.c, ename/e-address-western.c,
ename/test-ename-western-gtk.c,
gui/component/addressbook-factory.c, gui/component/addressbook.c,
gui/component/e-cardlist-model.h, gui/component/e-ldap-storage.c,
gui/component/select-names/e-select-names-bonobo.c,
gui/component/select-names/e-select-names-manager.c,
gui/component/select-names/e-select-names-model.c,
gui/component/select-names/e-select-names-table-model.c,
gui/component/select-names/e-select-names-table-model.h,
gui/component/select-names/e-select-names-text-model.h,
gui/component/select-names/e-select-names.c,
gui/component/select-names/e-select-names.h,
gui/search/e-addressbook-search-dialog.c,
gui/widgets/e-addressbook-model.h,
gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-label.c,
gui/widgets/e-minicard-view-widget.c,
gui/widgets/e-minicard-view-widget.h,
gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h,
gui/widgets/e-minicard-widget.h, gui/widgets/e-minicard.c,
gui/widgets/test-minicard-label.c, gui/widgets/test-reflow.c,
printing/e-contact-print.c: Fixed the #include lines to deal
properly with gal.
From calendar/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* gui/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* gui/calendar-model.h, gui/e-calendar-table.c, gui/e-day-view.c,
gui/e-week-view-event-item.c, gui/e-week-view.c,
gui/event-editor.c, gui/gncal-todo.c, gui/gnome-cal.c, gui/main.c,
gui/print.c, gui/dialogs/task-editor.c: Fixed the #include lines
to deal properly with gal.
* gui/check-filled.xpm: New file since we can't include it from
e-table anymore.
From camel/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* camel-folder-search.c, camel-folder-search.h,
camel-remote-store.c, providers/imap/camel-imap-folder.c,
providers/imap/camel-imap-store.c: Fixed the #include lines to
deal properly with gal.
From composer/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-msg-composer-address-dialog.c, e-msg-composer-address-entry.c,
e-msg-composer-attachment.c, e-msg-composer-hdrs.c,
e-msg-composer.c: Fixed the #include lines to deal properly with
gal.
From e-util/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Removed all the files moved to gal.
* e-dialog-widgets.c: Fixed the #include lines to deal properly
with gal.
* e-gui-utils.c, e-gui-utils.h: Removed all of the functionality
that was moved to gal.
* e-canvas-utils.c, e-canvas-utils.h, e-canvas-vbox.c,
e-canvas-vbox.h, e-canvas.c, e-canvas.h, e-cursors.c, e-cursors.h,
e-font.c, e-font.h, e-popup-menu.c, e-popup-menu.h, e-printable.c,
e-printable.h, e-unicode.c, e-unicode.h, e-util.c, e-util.h,
e-xml-utils.c, e-xml-utils.h: Moved to gal.
From filter/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* filter-editor.c, filter-filter.c, filter-folder.c,
filter-input.c, filter-message-search.c, filter-option.c,
filter-rule.c, score-editor.c, vfolder-editor.c, vfolder-rule.c:
Fixed the #include lines to deal properly with gal.
From mail/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* component-factory.c, folder-browser-factory.c, folder-browser.c,
mail-callbacks.c, mail-config-gui.c, mail-display.c,
mail-display.h, main.c, message-list.c, message-list.h: Fixed the
#include lines to deal properly with gal.
From po/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* POTFILES.in: Removed files that have been moved to gal.
From shell/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-component-registry.c, e-corba-storage-registry.c,
e-corba-storage.c, e-folder-type-registry.c, e-folder.c,
e-local-folder.c, e-local-storage.c,
e-shell-folder-creation-dialog.c,
e-shell-folder-selection-dialog.c, e-shell-folder-title-bar.c,
e-shell-view.c, e-shell.c, e-shortcuts-view.c, e-shortcuts.c,
e-storage-set-view.c, e-storage-set-view.h, e-storage-set.c,
e-storage.c, evolution-local-storage.c, evolution-session.c,
evolution-shell-client.c, evolution-shell-component-client.c,
evolution-shell-component.c, evolution-shell-view.c,
evolution-storage-listener.c, evolution-storage.c, main.c: Fixed
the #include lines to deal properly with gal.
From widgets/meeting-time-sel/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-meeting-time-sel-list-item.c, e-meeting-time-sel.c,
e-meeting-time-sel.h: Fixed the #include lines to deal properly
with gal.
If you've read this far, you deserve a prize. The first email in my
mailbox with the subject "What a commit message!" (and your physical
mailing address somewhere in the message) will receive a free Helix
Code T-shirt mailed to anywhere within the continental United States.
I cannot be held responsible for problems with email systems anywhere.
This is supposed to be for fun, so please don't make a fuss if
something goes wrong and your mail doesn't reach me. Find my email
elsewhere in this message, and if it's been more than a few days,
you're probably too late.
From widgets/misc/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-calendar-item.c, e-calendar.c, e-calendar.h, e-title-bar.c:
Fixed the #include lines to deal properly with gal.
* e-scroll-frame.c, e-scroll-frame.h: Moved to gal.
From widgets/shortcut-bar/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-icon-bar.c, e-icon-bar.h, e-shortcut-bar.c,
e-shortcut-model.c, test-shortcut-bar.c: Fixed the #include lines
to deal properly with gal.
From widgets/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Removed directories that have been moved to gal.
* e-paned/.cvsignore, e-paned/Makefile.am, e-paned/e-hpaned.c,
e-paned/e-hpaned.h, e-paned/e-paned.c, e-paned/e-paned.h,
e-paned/e-vpaned.c, e-paned/e-vpaned.h: Moved to gal.
* e-reflow/.cvsignore, e-reflow/Makefile.am,
e-reflow/e-reflow-sorted.c, e-reflow/e-reflow-sorted.h,
e-reflow/e-reflow.c, e-reflow/e-reflow.h: Moved to gal.
* e-table/.cvsignore, e-table/ChangeLog, e-table/LICENSE,
e-table/Makefile.am, e-table/ROADMAP.e-table, e-table/TODO,
e-table/add-col.xpm, e-table/arrow-down.xpm, e-table/arrow-up.xpm,
e-table/check-empty.xpm, e-table/check-filled.xpm,
e-table/clip.png, e-table/e-cell-checkbox.c,
e-table/e-cell-checkbox.h, e-table/e-cell-string.c,
e-table/e-cell-text.c, e-table/e-cell-text.h,
e-table/e-cell-toggle.c, e-table/e-cell-toggle.h,
e-table/e-cell-tree.c, e-table/e-cell-tree.h, e-table/e-cell.c,
e-table/e-cell.h, e-table/e-table-click-to-add.c,
e-table/e-table-click-to-add.h, e-table/e-table-col-dnd.h,
e-table/e-table-col.c, e-table/e-table-col.h,
e-table/e-table-column-model.h, e-table/e-table-column.c,
e-table/e-table-config.c, e-table/e-table-config.glade,
e-table/e-table-config.glade.h, e-table/e-table-config.h,
e-table/e-table-defines.h, e-table/e-table-example-1.c,
e-table/e-table-example-2.c,
e-table/e-table-field-chooser-dialog.c,
e-table/e-table-field-chooser-dialog.h,
e-table/e-table-field-chooser-item.c,
e-table/e-table-field-chooser-item.h,
e-table/e-table-field-chooser.c,
e-table/e-table-field-chooser.glade,
e-table/e-table-field-chooser.glade.h,
e-table/e-table-field-chooser.h,
e-table/e-table-group-container.c,
e-table/e-table-group-container.h, e-table/e-table-group-leaf.c,
e-table/e-table-group-leaf.h, e-table/e-table-group.c,
e-table/e-table-group.glade, e-table/e-table-group.glade.h,
e-table/e-table-group.h, e-table/e-table-header-item.c,
e-table/e-table-header-item.h, e-table/e-table-header.c,
e-table/e-table-header.h, e-table/e-table-item.c,
e-table/e-table-item.h, e-table/e-table-model.c,
e-table/e-table-model.h, e-table/e-table-one.c,
e-table/e-table-one.h, e-table/e-table-scrolled.c,
e-table/e-table-scrolled.h, e-table/e-table-selection-model.c,
e-table/e-table-selection-model.h, e-table/e-table-simple.c,
e-table/e-table-simple.h, e-table/e-table-size-test.c,
e-table/e-table-sort-info.c, e-table/e-table-sort-info.h,
e-table/e-table-sorted-variable.c,
e-table/e-table-sorted-variable.h, e-table/e-table-sorted.c,
e-table/e-table-sorted.h, e-table/e-table-sorter.c,
e-table/e-table-sorter.h, e-table/e-table-subset-variable.c,
e-table/e-table-subset-variable.h, e-table/e-table-subset.c,
e-table/e-table-subset.h, e-table/e-table-text-model.c,
e-table/e-table-text-model.h, e-table/e-table-tooltip.h,
e-table/e-table-tree.h, e-table/e-table.c, e-table/e-table.h,
e-table/e-tree-example-1.c, e-table/e-tree-example-2.c,
e-table/e-tree-model.c, e-table/e-tree-model.h,
e-table/e-tree-simple.c, e-table/e-tree-simple.h,
e-table/image1.png, e-table/image2.png, e-table/image3.png,
e-table/remove-col.xpm, e-table/sample.table,
e-table/table-test.c, e-table/table-test.h, e-table/test-check.c,
e-table/test-cols.c, e-table/test-table.c: Moved to gal.
* e-text/.cvsignore, e-text/Makefile.am, e-text/e-entry-test.c,
e-text/e-entry.c, e-text/e-entry.h,
e-text/e-text-event-processor-emacs-like.c,
e-text/e-text-event-processor-emacs-like.h,
e-text/e-text-event-processor-types.h,
e-text/e-text-event-processor.c, e-text/e-text-event-processor.h,
e-text/e-text-model.c, e-text/e-text-model.h,
e-text/e-text-test.c, e-text/e-text.c, e-text/e-text.h: Moved to
gal.
i.e.,
...
changed evolution to work with gal.
svn path=/trunk/; revision=5490
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-09-14 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (get_folder): Don't use
dir_sep as top-level directory, use "/".
* providers/imap/camel-imap-folder.c (imap_expunge): Get rid of
unused variable.
svn path=/trunk/; revision=5437
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_expunge): Don't look at
the response of the command. camel_imap_command_extended()
processes EXPUNGE responses itself, so if we do it here too we
remove twice as many summary items as we should.
svn path=/trunk/; revision=5432
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-09-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_folder_exists): Rewrote
to take a third argument (gboolean *selectable) so that we can
find out if the folder is selectable or not as we look to see if
it exists. Also, don't use EXAMINE because that will not work on
non-selectable folders, so use LIST instead.
(get_folder): Check to see if the folder exists even vefore
calling imap_create as this will save time. If the folder does
exist, find out if it's selectable. Moved the call to refresh_info
here.
* providers/imap/camel-imap-folder.c (imap_get_uids): Check for a
NULL summary.
(camel_imap_folder_new): Don't call refresh_info here - call it in
get_folder() because we don't know if this folder even exists on
the server yet! And even if it does, we don't know if it can hold
messages or not yet.
svn path=/trunk/; revision=5412
|
|
|
|
| |
svn path=/trunk/; revision=5202
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-31 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (camel_imap_command_extended):
Don't save any exceptions caused by camel_imap_folder_changed
(camel_imap_fetch_command): Same.
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Using a new way of calculating the first recent message that seems
more accurate. Also added code to make sure we don't accidently
add a duplicate summary.
svn path=/trunk/; revision=5135
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-30 Jeffrey Stedfast <fejj@helixcode.com>
* camel-remote-store.c (remote_send_string): Don't wrap printed
strings in quotes, makes things messy
* providers/imap/camel-imap-folder.c (imap_get_message): Updated
to use the camel_imap_fetch_command
* providers/imap/camel-imap-stream.c (stream_read): Updated to use
camel_imap_fetch_command
* providers/imap/camel-imap-store.c (camel_imap_command_extended):
No longer handles FETCH requests so no longer needs to be
concerned with checking to make sure that server responses are
valid (they have to be).
(camel_imap_fetch_command): New convenience function that handles
all FETCH requests
svn path=/trunk/; revision=5122
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-30 Jeffrey Stedfast <fejj@helixcode.com>
* camel-remote-store.c: Prevent exceptions from being overwritten
* providers/imap/camel-imap-folder.c (imap_expunge): Beautified
(imap_get_subfolder_names_internal): Removed old code as the
replacement code has now been tested and proven to work
svn path=/trunk/; revision=5107
|
|
|
|
|
|
| |
Prepare for the ability to cancel operations (much better exception handling). Clean up IMAP like nobody's business
svn path=/trunk/; revision=5103
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-29 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (camel_imap_command_extended):
Updated to check for EXPUNGE notifications
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Updated to account for messages which have been expunged (now
takes a new arg, a GPtrArray of message id's that have been
expunged)
(imap_expunge): Updated (we may want to just use the code in
folder_changed now instead of doing our own summary
expunging...but that can be fixed later)
(imap_append_message): Updated.
(imap_copy_message_to): Updated.
(imap_move_message_to): Updated.
svn path=/trunk/; revision=5098
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-28 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Fixed the
hack around quoted string responses - should now handle them
according to the specifications in the RFC
* providers/imap/camel-imap-stream.c (stream_read): Updated to
match the code currently used in camel-imap-folder.c
svn path=/trunk/; revision=5092
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-25 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c
(imap_get_subfolder_names_internal): If the url path is "/" and
the folder path is "/", just LIST "" "*" (this should fix some
cyrus imapd problems). Also, INBOX is case insensitive so use
g_strcasecmp
svn path=/trunk/; revision=5038
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-25 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c
(imap_get_subfolder_names_internal): If the url path is "/" and
the folder path is "/", just LIST "" "*" (this should fix some
cyrus imapd problems)
svn path=/trunk/; revision=5036
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c
(imap_protocol_get_summary_specifier): use BODY.PEEK, not BODY, so
we don't set the message \Seen.
svn path=/trunk/; revision=4970
|
|
|
|
| |
svn path=/trunk/; revision=4862
|
|
|
|
| |
svn path=/trunk/; revision=4845
|
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c
(imap_get_subfolder_names_internal): do a strcasecmp rather than
just a strcmp when checking if a folder is "INBOX", since it is
a case-insensitive name.
svn path=/trunk/; revision=4801
|
|
|
|
|
|
| |
g_malloc'ed memory, not a static string.
svn path=/trunk/; revision=4792
|
|
|
|
|
|
|
|
| |
* providers/imap/camel-imap-folder.c (imap_get_summary_internal):
Don't assume the FETCH results will come back in the order they
were requested.
svn path=/trunk/; revision=4791
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-12 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c
(camel_imap_command_continuation): Now takes a char * parameter
rather than a stream
(camel_imap_command_continuation_with_stream): Same function as
above but takes a stream parameter instead
* providers/imap/camel-imap-folder.c (imap_append_message): Use
camel_imap_command_continuation_with_stream
svn path=/trunk/; revision=4786
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-11 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c
(camel_imap_command_continuation): Changed param order a bit and
fixed some logic
* providers/imap/camel-imap-folder.c (imap_append_message): Use
the new multi-transactional convenience functions
svn path=/trunk/; revision=4766
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-11 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c
(camel_imap_command_preliminary): New convenience function for
multi-transactional commands (opening request)
(camel_imap_command_continuation): New convenience function for
multi-transactional commands (followup data)
svn path=/trunk/; revision=4762
|
|
|
|
|
|
|
|
|
|
| |
2000-08-10 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
If we go over the max number of messages, don't keep requesting
new message summaries, just break.
svn path=/trunk/; revision=4705
|
|
|
|
| |
svn path=/trunk/; revision=4687
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-11 Not Zed <NotZed@HelixCode.com>
* camel-mime-parser.c (folder_scan_header): A better way to
compress leading whitespace. The code is probably invalid anyway,
I dont think it will work across buffer boundaries.
* providers/mbox/camel-mbox-folder.c (mbox_append_message): And
write out proper format From lines here too.
* providers/mbox/camel-mbox-summary.c
(camel_mbox_summary_build_from): New function to build a more
compatible mbox "From " line.
(camel_mbox_summary_sync): Write From lines in the proper format.
2000-08-10 Not Zed <NotZed@HelixCode.com>
* providers/mh/camel-mh-store.c (get_folder): Remove warnin g.
* providers/mbox/camel-mbox-store.c (xrename): Kill some warnings
with constification.
* providers/imap/camel-imap-folder.c (imap_append_message): Fixed
for append api change. Eek this routine seriously wastes memory.
* providers/mh/camel-mh-folder.c (mh_search_free): Impelemnt.
(mh_append_message): Fix for api change, and include user flags
and tags in new message.
* providers/vee/camel-vee-folder.c (vee_search_by_expression): Fix
for search api change.
* camel-folder.c (camel_folder_search_free): New function for
freeing search results.
(search_free): Changed my mind, implement a default that actually
does something. Free as to the old interface.
(camel_folder_append_message): Changed to accept a
camelmessageinfo rather than flags, which just doesn't have enough
info in it.
(copy_message_to): Change for append_message api change.
(move_message_to): Likewise.
* providers/mbox/camel-mbox-folder.c (mbox_search_free):
Implement.
(mbox_append_message): Fix for api change, and also copy user
flags/tags across to new summary.
* camel-folder-search.c (search_user_tag): A search expression
that returns the current use flag by name.
(camel_folder_search_free_result): New function to free the result
of a search.
* camel-folder-summary.c: Bump summary version.
(message_info_new):
(message_info_load):
(message_info_save):
(camel_message_info_dup_to):
(camel_message_info_free): Added support for arbitrary tag/value
pairs (CamelTag's).
(camel_tag_get):
(camel_tag_set):
(camel_tag_list_size):
(camel_tag_list_free): Operations for working with CamelTags.
svn path=/trunk/; revision=4683
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-07 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c
(imap_get_subfolder_names_internal): If we are trying to get a
subfolder listing of the root folder, always make sure INBOX is
there...
* providers/imap/camel-imap-utils.c (imap_parse_list_response):
Check for NIL as a directory separator.
svn path=/trunk/; revision=4582
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-03 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Only
call imap_get_summary_internal if the folder can hold messages
* providers/nntp/camel-nntp-provider.c (camel_provider_module_init):
Initialize the service_cache for the news/nntp providers
svn path=/trunk/; revision=4519
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-08-01 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-utils.c (imap_translate_sexp): New and
improved sexp parser. An honest try at using e-sexp is wrapped in
a #ifdef at the bottom of the file but is currently not used
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
We want to do a UID SEARCH so we get UIDs back instead of sequence
numbers
svn path=/trunk/; revision=4461
|
|
|
|
|
|
|
|
|
|
| |
2000-07-31 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message_info_internal):
Some IMAP servers don't wrap the UID in ()'s so don't depend on that
(imap_get_summary_internal): Same
svn path=/trunk/; revision=4443
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-31 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-utils.c (imap_translate_sexp): New
convenience function to translate a Camel sexp into the equivalent
IMAP sexp.
* providers/imap/camel-imap-store.c: More places now use
imap_next_word
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
Implemented initial version (this may or may not work quite right)
svn path=/trunk/; revision=4428
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-28 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_expunge): Make sure
the third word/token (whatever) is "EXPUNGE" and not something
else like "EXISTS" or "RECENT". When removing the message from
the summary also make sure to free that data to avoid leakage.
Also make sure to subtract 1 from the 'id' since IMAP starts
at 1 and our summary starts at 0 :-)
svn path=/trunk/; revision=4411
|
|
|
|
| |
svn path=/trunk/; revision=4410
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-28 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (camel_imap_status): Cleaned
up a bit, now uses imap_next_word()
(camel_imap_command_extended): Now uses imap_next_word(). When
checking for RECENT, allow the first digit of the recent-count
be between 0 and 9 inclusive instead of exclusive.
* providers/imap/camel-imap-folder.c (imap_expunge): Optimized.
No longer will it need to reload the summary as it now instead
removes the appropriate message summaries from the cache.
(camel_imap_folder_changed): If recent == 0 then return. If
recent < 0 then just emit the folder_changed signal, don't reload
summaries.
svn path=/trunk/; revision=4409
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-28 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c
(imap_get_message_count_internal): Get message count when STATUS
is not available.
(imap_init): folder->has_search_capability is required for IMAP so
should always be set to TRUE (is currently being set to FALSE as
I've not yet implemented SEARCH support).
(camel_imap_folder_changed): Seem to have fixed my optimization
hack
2000-07-28 Jon K Hellan <hellan@acm.org>
* providers/imap/camel-imap-store.h (CamelImapServerLevel): New
enum.
(CamelImapStore): Added server_level and has_status_capability
members.
* providers/imap/camel-imap-store.c (imap_connect): Detect
IMAP4REV1, IMAP4 and STATUS in capability response.
* providers/imap/camel-imap-folder.c
(imap_get_message_count_internal): Use STATUS only if server
supports it. TODO: Get message count when STATUS not supported.
(imap_get_message, imap_get_summary_internal,
imap_get_message_info_internal): Handle IMAP4 as well.
(imap_protocol_get_summary_specifier): New function: Make a data
item specifier for the header lines we need, appropriate to the
server level.
svn path=/trunk/; revision=4406
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-27 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Fixed my routine to only fetch new headers, my IDs were off by 1
on the high end, so when it would fetch the last newly arrived
message it would fail and end up fetching all of the summaries
because of the corruption.
svn path=/trunk/; revision=4404
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-27 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/Makefile.am: Added camel-imap-utils.[c,h]
* providers/imap/camel-imap-utils.[c,h]: Utilities for parsing
server responses for use in both camel-imap-store.c and
camel-imap-folder.c
* providers/imap/camel-imap-folder.c (imap_get_summary_internal):
Free all the pointers in the headers array.
(imap_get_subfolder_names_internal): Updated to use
imap_parse_list_response
(imap_parse_subfolder_list): Removed in favor of
imap_parse_list_response
* providers/imap/camel-imap-store.c (camel_imap_command_extended):
Free all the pointers in the data array.
(imap_connect): Updated to use imap_parse_list_response and fixed
a leak
(folder_is_selectable): Updated.
svn path=/trunk/; revision=4400
|
|
|
|
|
|
|
|
|
| |
2000-07-27 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message_info): Now uses
a hash table for looking up message info rather than a linear search :)
svn path=/trunk/; revision=4398
|
|
|
|
|
|
|
|
| |
2000-07-26 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c: Fixed a few compiler warnings
svn path=/trunk/; revision=4345
|
|
|
|
|
|
|
|
|
| |
2000-07-25 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_summary_free): Fixed the
real problem that Peter was running into.
svn path=/trunk/; revision=4321
|
|
|
|
| |
svn path=/trunk/; revision=4316
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-25 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
Optimized to try and get the new message headers without reloading
the entire summary from scratch.
(imap_get_summary_internal): Will now sync() before attempting to reload
the summary so that flags are set in the reloaded summary as well.
svn path=/trunk/; revision=4309
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-24 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (get_folder): Updated to give special
attention to the root folder.
* providers/imap/camel-imap-folder.c (imap_get_subfolder_names_internal):
Updated to handle the root folder
(imap_get_message_count_internal): return 0 if folder can't hold messages
(camel_imap_folder_new): Change so that root folder gets special attention
and always gets can_hold_messages set to FALSE
svn path=/trunk/; revision=4308
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* camel-folder.c: Remove exceptions from a number of methods that
work on what ought to be static data: get_parent_folder,
get_parent_store, get_message_count, get_unread_message_count,
get_permanent_flags, get_message_flags, set_message_flags,
get_message_user_flag, set_message_user_flag, get_uids,
get_summary, get_subfolder_names. Turn camel_folder_delete_message
into a macro. (Mostly a pull-up from the camel-async branch.)
* providers/{imap,mbox,nntp,pop3,vee}: Update for CamelFolder
changes
svn path=/trunk/; revision=4303
|
|
|
|
|
|
|
|
|
|
| |
2000-07-24 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message_info): Updated
to port easily to the new Camel API
(imap_init): Don't SELECT INBOX, we don't need to do that
svn path=/trunk/; revision=4302
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-24 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
Initialize the summary and subfolder listing.
(imap_summary_free): Now takes a GPtrArray arg rather than a
CamelImapFolder as it increases it's usefullness for free()'ing
temporary summaries.
(imap_get_message_count_internal): A new convenience function for
getting the actual message count on a server to be used by
imap_get_summary_internal)
(imap_get_message_count): Since the Camel API is on the move again,
the future version of this function will not be able to make a
call to the store, it must only access previously fetched data (thus
the creation of the _internal function)
(imap_get_subfolder_names_internal): Again, because the future version
of imap_get_subfolder_names will not take an exception, we must rename
this function which will be called by camel_imap_folder_new()
(imap_get_subfolder_names): We now return the previously collected
subfolder listing that the _internal function fetched previously
(imap_get_summary_internal): Again, same idea as the previous _internal
functions...
(imap_get_summary): Again... now returns a previously aquired summary
* providers/imap/camel-imap-store.c (imap_noop): This will hopefully
prevent the imap store from disconnecting.
(imap_connect): Modified to add a gtk timeout event that will call
imap_noop() every 10 minutes (we may want to change this time value)
(imap_disconnect): Modified to remove the NOOP timeout event from the
store.
(camel_imap_command_extended): Commented out the code that would try
and detect if the store was disconnected and then reconnect if it was
needed.
svn path=/trunk/; revision=4298
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-23 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_disconnect): Made it a
little more forgiving. Also set current_folder to NULL as there is
no selected folder after a disconnect.
(stream_is_alive): Detects whether or not a socket is "alive"
(camel_imap_command_extended): Use stream_is_alive() to aid in the
detection of a disconnected state.
svn path=/trunk/; revision=4288
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-22 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (get_folder): Clear CamelExceptions when
appropriate (eg when folder is marked as \NoSelect). Still needs some
cleanup and perhaps Dan will have a better way of doing this as this seems
like a messy way of handling this.
* providers/imap/camel-imap-folder.c (imap_get_uids): Took out some debug
statements as they are no longer needed.
svn path=/trunk/; revision=4275
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-21 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_subfolder_names): Updated to
not strip out subfolders that are marked as \NoSelect because this will be
correctly handled in store->get_folder from now on.
* providers/imap/camel-imap-store.c (folder_is_selectable): New convenience
function for use in get_folder().
(parse_list_response): Now takes a char **flags argument which is needed by
folder_is_selectable().
(imap_connect): Updated to reflect changes to parse_list_response().
svn path=/trunk/; revision=4274
|
|
|
|
|
|
|
|
|
|
| |
2000-07-20 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary):
(imap_get_message_info): Oops. Fix UID parser to allow 0 and 9 to be in
the range of valid UID chars.
svn path=/trunk/; revision=4233
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-19 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c: General cleanup working towards
getting Actions->Expunge working correctly.
* providers/imap/camel-imap-store.c (cammel_imap_command_extended): Added
code to look for "* %d RECENT" and to emit the folder_changed signal if
there are any recent messages. Note: this is a hack and needs to be rewritten
badly.
svn path=/trunk/; revision=4226
|
|
|
|
|
|
|
|
|
|
| |
2000-07-19 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): If the folder's
message count is not the same as the number of summaries, free the old
summary and create a new summary.
svn path=/trunk/; revision=4223
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-18 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_class_init): Added
in imap_[g,s]et_message_user_flag() methods
(imap_get_message_info): Rewrote to use the more efficient way of
downloading summary information and also added a UID comparison so that
if the UID requested doesn't match the UID received, it returns NULL.
FIXME: When the mailer gets NULL when it requested message info, it
seems that it displays a row for that message and when you try and select
the blank row, it segfaults.
* providers/imap/camel-imap-store.c (get_folder): Oops, this should not be
checking against "/", it should be checking against dir_sep.
* providers/imap/camel-imap-folder.c (imap_parse_subfolder_line): Updated
to trim out the leading namespace.
(imap_get_subfolder_names): Let the subfolder parser trim the namespace
off the folder name.
svn path=/trunk/; revision=4215
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-18 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_class_init): Added
in imap_[g,s]et_message_user_flag() methods
* providers/imap/camel-imap-store.c (get_folder): Oops, this should not be
checking against "/", it should be checking against dir_sep.
* providers/imap/camel-imap-folder.c (imap_parse_subfolder_line): Updated
to trim out the leading namespace.
(imap_get_subfolder_names): Let the subfolder parser trim the namespace
off the folder name.
svn path=/trunk/; revision=4214
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_disconnect): Send a "LOGOUT"
command.
* providers/imap/camel-imap-folder.c (imap_get_message): Hacks to get
IMAP code to work with CommunigatePro and MS Exchange (and any other
servers that send back a UID at the end of each FETCH inside of the main
body of the message part).
(imap_sync): Un-#if 0 the code that sets the flags on the IMAP server
for messages that have changed. Oops, don't mask with DELETED to find out
if the message has been answered ;-)
(imap_expunge): sync before expunging.
svn path=/trunk/; revision=4207
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Hacks to get
IMAP code to work with CommunigatePro and MS Exchange (and any other
servers that send back a UID at the end of each FETCH inside of the main
body of the message part).
(imap_sync): Un-#if 0 the code that sets the flags on the IMAP server
for messages that have changed. Oops, don't mask with DELETED to find out
if the message has been answered ;-)
svn path=/trunk/; revision=4202
|
|
|
|
| |
svn path=/trunk/; revision=4197
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Hacks to get
IMAP code to work with CommunigatePro and MS Exchange (and any other
servers that send back a UID at the end of each FETCH inside of the main
body of the message part).
(imap_sync): Un-#if 0 the code that sets the flags on the IMAP server
for messages that have changed
svn path=/trunk/; revision=4195
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_message): Hacks to get
IMAP code to work with CommunigatePro and MS Exchange (and any other
servers that send back a UID at the end of each FETCH inside of the main
body of the message part).
svn path=/trunk/; revision=4194
|
|
|
|
| |
svn path=/trunk/; revision=4184
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-16 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c: All SELECT calls now pass
a NULL folder argument to camel_imap_command_extended() since it's
not needed. Also s/camel_imap_command/camel_imap_command_extended as
I will probably be doing away with camel_imap_command() or at least
only using it for LOGIN and similar commands where the server won't
notify us of any recent messages.
svn path=/trunk/; revision=4183
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-16 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c: All SELECT calls now pass
a NULL folder argument to camel_imap_command_extended() since it's
not needed.
(imap_connect): Moved service_class->connect() to the point right
after a connection is established with the server rather than
waiting until the end of the function.
(camel_imap_command): Updated the documentation comment
(camel_imap_command_extended): Before sending a command, first
check to make sure we are connected; if we aren't, then reconnect.
Don't strncmp() command with "SELECT" as it's redundant.
* providers/imap/camel-imap-folder.c: All SELECT calls now pass
a NULL folder argument to camel_imap_command_extended() since it's
not needed.
svn path=/trunk/; revision=4182
|
|
|
|
|
|
|
|
|
| |
2000-07-15 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
One last fix to get rid of hard-coded "/" directory separators
svn path=/trunk/; revision=4175
|
|
|
|
| |
svn path=/trunk/; revision=4171
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-14 Jeffrey Stedfast <fejj@helixcode.com>
* string-utils.c (string_unquote): New convenience function
to unquote a string if it's encapsulated by "'s
* providers/imap/camel-imap-folder.c:
* providers/imap/camel-imap-store.c: Made the necessary changes
to stop using hard coded directory separators.
svn path=/trunk/; revision=4170
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c:
* providers/imap/camel-imap-store.c: If a SELECT fails, set
imap_store->current_folder to NULL so a SELECT is forced before
any message/folder operations are requested. Also, because some
users don't use a namespace, make sure that if the url->path is
"/" we don't use it when creating the folder_path.
(camel_imap_command[_extended]): Since we allow the passing of
a NULL folder which we can use to bypass a forced SELECT, no need
to check for the individual commands that don't require a folder
to be selected.
svn path=/trunk/; revision=4161
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c:
* providers/imap/camel-imap-store.c: Updated to use CAMEL_IMAP_OK,
CAMEL_IMAP_NO, CAMEL_IMAP_BAD, and CAMEL_IMAP_FAIL rather than the
ones copied from the POP3 provider.
svn path=/trunk/; revision=4155
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): Oops.
If the number of messages in the folder is 0, don't fetch
summaries 1 thru 0, just return an empty summary.
(imap_copy_message_to): Fixed to use message UID and also send
the source folder as an arg to camel_imap_command rather than NULL.
(imap_move_message_to): Same.
(imap_init): If SELECT is successful, we need to set the current
folder to the one selected, this was causing problems with move/copy
svn path=/trunk/; revision=4154
|
|
|
|
|
|
|
|
|
|
| |
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): Oops.
If the number of messages in the folder is 0, don't fetch
summaries 1 thru 0, just return an empty summary.
svn path=/trunk/; revision=4150
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): New
and improved approach to fetching an entire folder summary
that should be much much faster than the old way as it gets
the entire folder summary in 1 shot rather than requesting
message by message. As with the last update, this version
also only fetches the minimum number of header fields.
(imap_get_summary): Oops, forgot to free the temp
GPtrArray *headers
svn path=/trunk/; revision=4142
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_get_summary): New
and improved approach to fetching an entire folder summary
that should be much much faster than the old way as it gets
the entire folder summary in 1 shot rather than requesting
message by message. As with the last update, this version
also only fetches the minimum number of header fields.
svn path=/trunk/; revision=4141
|