2003-02-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-url-scanner.c (url_scanner_table_init): Mark chars with
the high-bit set as CTRL chars.
(camel_url_web_end): If the char before the start of the url is an
open-brace, watch out for the matching close-brace.
(camel_url_file_end): Same.
svn path=/trunk/; revision=19913
2003-02-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-smime-context.c (smime_get_password): Same as the gpg and
pkcs7 contexts.
* camel-sasl-popb4smtp.c (popb4smtp_challenge): Updated for
camel_session_get_password().
* camel-pkcs7-context.c (get_password): Same as the gpg code.
* camel-gpg-context.c (gpg_ctx_parse_status): Updated for
camel_session_get_password().
* providers/smtp/camel-smtp-transport.c (smtp_connect): No need to
set USER_CANCEL exception here as it is done by
camel_session_get_password(). Also updated for the new
get_password() API change.
* providers/imap/camel-imap-store.c (imap_auth_loop): Updated for
camel_session_get_password() changes. We don't need to play the
"bad passwd" game here too, do we? Bah, probably should but I
don't feel like it for now. Maybe when we rewrite the IMAP
provider.
* camel-session.c (camel_session_get_password): Now takes a
'reprompt' argument that will force user-input to be given even if
we have the passwd cached.
* providers/pop3/camel-pop3-store.c (pop3_connect): Instead of
uncaching the passwd after we receive a -ERR from the POP server,
set 'reprompt' to TRUE to force user-input for the next password
prompt (ie, make sure the front-end knows not to just return the
cached value). The front-end can then decide to fill-in the
user-input field with the last passwd that the user supplied.
(pop3_try_authenticate): Now takes a reprompt argument which we
pass into camel_session_get_password().
svn path=/trunk/; revision=19912
2003-02-04 Not Zed <NotZed@Ximian.com>
* camel-object.c (camel_object_bag_new): Init bag->owner to 0.
2003-01-31 Not Zed <NotZed@Ximian.com>
* camel-object.c (camel_object_bag_*): Changed to use a posix
semaphore instead of a condition variable + flag to reserve the
object bag because e_mutex_cond is broken.
svn path=/trunk/; revision=19754
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
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=19676
* providers/imap/Makefile.am (libcamelimapincludedir): Update to
the new $(BASE_VERSION)-versioned path.
* providers/smtp/Makefile.am (libcamelsmtpincludedir): Likewise.
* providers/sendmail/Makefile.am (libcamelsendmailincludedir):
Likewise.
* providers/pop3/Makefile.am (libcamelpop3includedir): Likewise.
* providers/nntp/Makefile.am (libcamelnntpincludedir): Likewise.
* providers/local/Makefile.am (libcamellocalincludedir): Likewise.
* camel-lock-client.c (camel_lock_helper_init): Use
CAMEL_LIBEXECDIR instead of CAMEL_SBINDIR to find
camel-lock-helper.
* Makefile.am: Install camel-lock-helper and camel-index-control
in $(libexec)/evolution/$(BASE_VERSION)/camel. Install
libcamel.la in $privlibdir.
(install-exec-hook): Update for the new location of
camel-lock-helper.
(libcamelincludedir): Version using $(BASE_VERSION).
(INCLUDES): Define CAMEL_LIBEXECDIR.
svn path=/trunk/; revision=19554
2003-01-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-filter-canon.c (complete): Set the backbuflen to 0 so
that calling us again won't re-flush the same data.
svn path=/trunk/; revision=19538
2003-01-17 Larry Ewing <lewing@ximian.com>
* camel-mime-filter-enriched.c (enriched_to_html): only grow the
buffer when we are out of space.
svn path=/trunk/; revision=19513
2003-01-14 Not Zed <NotZed@Ximian.com>
* camel-mime-parser.c (folder_scan_step): If we have no
content-type header, set it to text/plain explcitly, rather than
NULL, because some code doesn't handle NULL.
svn path=/trunk/; revision=19438
2003-01-13 Not Zed <NotZed@Ximian.com>
* camel-mime-filter-tohtml.c: fix header include order.
* camel-object.c (camel_object_bag_reserve): Add an assert to
check we're not trying to reserve the bag more than once in a
given thread.
(camel_object_bag_list): If we have reserved the bag, dont try and
cond wait. Fixes a deadlock.
svn path=/trunk/; revision=19424
2003-01-13 Not Zed <NotZed@Ximian.com>
* camel-mime-filter-tohtml.c (writeln): Read the characters as
utf8, rather than as 8 bit bytes. Remove the PRESERVE_8BIT as it
has no meaning. Also change the default logic slightly so that 8
bit or greater characters are properly converted to entities.
* camel-utf8.c (camel_utf8_getc_limit): new function, gets a utf8
char, bounded by an end pointer.
svn path=/trunk/; revision=19421
* camel-provider.h (CamelProvider): add a "translation_domain"
field. (NULL for all providers in the camel source tree itself).
* camel-session.c (register_provider): Translate provider strings
in the correct domain
svn path=/trunk/; revision=19265
2003-01-06 Not Zed <NotZed@Ximian.com>
* camel-store.c (store_sync): init local exception before doing
anything. fixes a crash.
svn path=/trunk/; revision=19238
2003-01-04 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (smtp_send_to): Instead of
checking recipients != NULL, check that camel_address_length
(recipients) != 0 since it is illegal for recipients to be NULL
(camel_transport_send_to already checks this).
svn path=/trunk/; revision=19235
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-12-17 Jeffrey Stedfast <fejj@ximian.com>
* 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=19153
2002-12-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser): Detect text/html
parts that were marked as text/plain and re-tag them as text/html
parts. Note: currently just checks if the first non-lwsp char is a
'<' - but we might need to be smarter about this? *sigh* Stupid
Windows mailers.
svn path=/trunk/; revision=19143
2002-12-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-filter-tohtml.c (camel_text_to_html): New convenience
function to replace calls to e_text_to_html() in the
mailer/composer etc.
svn path=/trunk/; revision=19128
2002-12-16 Jeffrey Stedfast <fejj@ximian.com>
* camel.h: #include some headers we had forgotten to add
previously, also added camel-mime-filter-enriched.h.
* camel-mime-filter-enriched.[c,h]: New stream filter to convert
text/enriched and text/richtext into HTML.
svn path=/trunk/; revision=19124
2002-12-15 Jeffrey Stedfast <fejj@ximian.com>
* camel-multipart-signed.c (camel_multipart_signed_verify): Don't
apply the CANON_STRIP filter here, since we are verifying whatever
raw data we received (all we want to do is convert o the canonical
CRLF format).
svn path=/trunk/; revision=19122
2002-12-09 Jeffrey Stedfast <fejj@ximian.com>
* camel-url-scanner.c (camel_url_addrspec_end): Fixed to not be
fooled in the case where the address is followed immediately by a
period.
(camel_url_web_end): Made more robust.
(camel_url_scanner_scan): Oops. We need to set the match->pattern
string pointer to the correct pattern before executing the
start/end methods (as some of them rely on this info).
svn path=/trunk/; revision=19077
2002-12-09 Jeffrey Stedfast <fejj@ximian.com>
* camel-url-scanner.c: New code to scan for patterns (used only
for url pattern matching atm, but we may find other uses for this
and thus rename it? I dunno). Uses ETrie.
svn path=/trunk/; revision=19075
2002-12-07 Not Zed <NotZed@Ximian.com>
* camel-data-cache.c (data_cache_init): Use a bag instead of a
hashtable to track the cache streams.
(data_cache_finalise): Same.
(free_busy): No longer needed.
(data_cache_expire): use bag instead of hashtable.
(stream_finalised): No longer required.
(camel_data_cache_add): objectbagise
(camel_data_cache_get): "
(camel_data_cache_remove): "
(data_cache_path): Set the now expired date before running expiry,
so it plays better with multiple threads. Still a couple of
harmless races.
2002-12-06 Not Zed <NotZed@Ximian.com>
* providers/local/camel-spool-store.c (scan_dir): folders ->
object bag.
(get_folder_info_mbox): folders -> object bag.
* providers/local/camel-mh-store.c (folder_info_new): folders ->
object bag.
* providers/local/camel-maildir-store.c (scan_dir): folders ->
object bag.
* providers/local/camel-local-store.c (rename_folder): folders ->
object bag.
* camel-private.h (CamelStorePrivate): Remove 'cache' lock,
handled by the objectbag.
* providers/imap/camel-imap-store.c (copy_folder): Removed.
(imap_store_refresh_folders): folders -> object bag.
(get_folder_counts): folders -> object bag.
* camel-vee-store.c (vee_get_folder): changes for folders
objectbag.
(vee_get_folder_info): Change to use folders objectbag. Also,
dont refresh the base folder if we're in FAST mode.
(build_info): Removed, no longer needed.
(vee_rename_folder): Fixed for folders objectbag.
* camel-store.c (camel_store_init): init the folders objectbag.
(camel_store_finalize): Destroy the folders object bag.
(folder_matches):
(folder_finalize): Removed, now handled implicitly by the
objectbag.
(camel_store_get_folder): object bag changes.
(camel_store_delete_folder): "
(get_subfolders): Removed, now handled without a callback.
(camel_store_rename_folder): Changed to use object bag of folders.
(trash_add_folder): Removed.
(init_trash): use folders object bag.
(copy_folder_cache):
(sync_folder): Removed, no longer needed. Weird arsed code anyway.
(store_sync): Use folder object bag instead of hashtable.
(camel_store_unsubscribe_folder): "
(camel_store_init): remove cache_lock init, no longer used.
(camel_store_finalize): Same for cleanup.
2002-12-05 Not Zed <NotZed@Ximian.com>
* camel-store.h (struct _CamelStore): change folders from a
hashtable into a CamelObjectBag.
* camel-object.c (camel_object_ref): Use type_lock instead of
class lock for ref counting.
(camel_object_unref): Use type_lock instead of class lock for
unref.
(camel_object_unref): If the object is 'bagged', then also look
hooks, and remove it from any bags.
(camel_object_bag_new):
(camel_object_bag_destroy):
(camel_object_bag_add):
(camel_object_bag_get):
(camel_object_bag_remove_unlocked):
(camel_object_bag_list):
(camel_object_bag_abort):
(camel_object_bag_remove): New functions to implement a utility
object which can manage a 'bag' of weakly ref'd children in an
atomic & threadsafe way.
svn path=/trunk/; revision=19056
2002-12-04 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store-summary.c
(camel_imap_store_summary_add_from_full): Properly handle the case
where the namespace is "". Fixes bug #34975
svn path=/trunk/; revision=19002
2002-12-03 Jeffrey Stedfast <fejj@ximian.com>
* broken-date-parser.c (get_tzone): Fixed to not get false
positives when the token is shorter than the actual timezone
string (but matches the first little bit of it).
(datetok): Modified to properly handle when the first char of a
token is a special char (such as a '-') that is also used as a
token delimiter.
svn path=/trunk/; revision=18996
2002-11-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (stream_read): Use the new
camel_operation_cancel_prfd() function to get the cancellation fd
so we can poll on it for cancellation stuff.
(stream_write): Same.
2002-11-22 Not Zed <NotZed@Ximian.com>
* camel-operation.c (camel_operation_cancel_prfd): Implement, gets
a nspr pr filedesc to poll/wait on
(struct _CamelOperation): include a pr filedesc.
svn path=/trunk/; revision=18894
2002-11-21 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-store-summary.c
(camel_imap_store_summary_namespace_find_path): If we have a
namespace of "", then always match any path.
(camel_imap_store_summary_namespace_find_full): Same, for full
names. Should address #33309 & friends.
svn path=/trunk/; revision=18884
2002-11-15 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c (imap_connect_online): If the
namespace is at/below INBOX, check for the INBOX explicitly (since
it obviously won't show up in a LSUB INBOX.*). If either INBOX is
not returned in the response or if the folder flags contain
\NoSelect, subscribe to INBOX and then try LSUB again.
svn path=/trunk/; revision=18824
2002-11-11 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-filter-tohtml.c (html_convert): Rewritten. Much much
much cleaner implementation now, though uses malloc/free more
often than I'd like.
svn path=/trunk/; revision=18691
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
2002-11-11 Jeffrey Stedfast <fejj@ximian.com>
* providers/local/camel-spool-summary.c (spool_summary_sync_full):
Use g_strerror when setting an exception string (we need it to be
in UTF-8).
(spool_summary_check): Here too.
* providers/local/camel-spool-store.c (construct): Use g_strerror
when setting an exception string (we need it to be in UTF-8).
(get_folder): Same.
(scan_dir): Here too.
* providers/local/camel-spool-folder.c (spool_lock): Use
g_strerror when setting an exception string (we need it to be in
UTF-8).
* providers/local/camel-mh-summary.c (mh_summary_check): Use
g_strerror when setting an exception string (we need it to be in
UTF-8).
* providers/local/camel-mh-store.c (delete_folder): Use g_strerror
when setting an exception string (we need it to be in UTF-8).
* providers/local/camel-mbox-summary.c (summary_update): Use
g_strerror when setting an exception string (we need it to be in
UTF-8).
(mbox_summary_sync_full): Here too.
(mbox_summary_sync_quick): Same.
(mbox_summary_sync): Also here.
(camel_mbox_summary_sync_mbox): Again here.
* providers/local/camel-mbox-folder.c (mbox_lock): Use g_strerror
when setting an exception string (we need it to be in UTF-8).
(mbox_append_message): Same.
(mbox_get_message): Here too.
* providers/local/camel-maildir-summary.c (maildir_summary_load):
Use g_strerror when setting an exception string (we need it to be
in UTF-8).
(maildir_summary_check): Same.
* providers/local/camel-maildir-store.c (get_folder): Use
g_strerror when setting an exception string (we need it to be in
UTF-8).
(delete_folder): Same.
(delete_folder): Here too.
* providers/local/camel-local-summary.c (local_summary_sync): Use
g_strerror when setting an exception string (we need it to be in
UTF-8).
* providers/local/camel-local-store.c (get_folder): Use g_strerror
when setting an exception string (we need it to be in UTF-8).
(create_folder): Same.
(xrename): Here too.
(rename_folder): And here.
(delete_folder): Also here.
* camel-provider.c (camel_provider_init): For debugging printfs,
we want to use normal strerror (we want locale charset, not
UTF-8).
* camel-movemail.c (camel_movemail): Use g_strerror when setting
an exception string (we need it to be in UTF-8).
(movemail_external): Same.
(camel_movemail_copy_file): Here too.
(camel_movemail_solaris): Also here.
* camel-mime-utils.c (rfc2047_decode_word): For debugging printfs,
we want to use normal strerror (we want locale charset, not
UTF-8).
(header_encode_param): Same.
* camel-mime-part-utils.c (convert_buffer): For debugging printfs,
we want to use normal strerror (we want locale charset, not
UTF-8).
* camel-lock-client.c (camel_lock_helper_init): Use g_strerror
when setting an exception string (we need it to be in UTF-8).
* camel-data-cache.c (camel_data_cache_remove): Use g_strerror
when setting an exception string (we need it to be in UTF-8).
* camel-tcp-stream-raw.c (flaky_tcp_write): For debugging printfs,
we want to use normal strerror (we want locale charset, not
UTF-8).
(flaky_tcp_read): Same.
* camel-gpg-context.c (gpg_ctx_op_step): For debugging printfs, we
want to use normal strerror (we want locale charset, not UTF-8).
* camel-service.c (camel_gethostbyname): Use g_strerror when
setting an exception string (we need it to be in UTF-8).
* camel-lock.c (camel_lock_dot): Use g_strerror when setting an
exception string (we need it to be in UTF-8).
(camel_lock_fcntl): Same.
svn path=/trunk/; revision=18689
2002-11-05 Not Zed <NotZed@Ximian.com>
* Makefile.am (camel_lock_helper_LDADD): Created temporary link
list, we need to link with something for gettext.
* camel.h: Remove gstring-util.h and hash-table-utils.h.
* camel-text-index.c:
(text_index_normalise): Changed for g_utf8_strdown api change.
* camel-search-private.c:
* camel-mime-utils.c:
* camel-mime-part-utils.c:
* camel-html-parser.c:
* camel-charset-map.c: Include glib/gunicode.h from glib instead
of gal.
* camel-filter-driver.c: Remove include of gtk/gtk.h, should never
have been there.
svn path=/trunk/; revision=18542
2002-11-01 Jeffrey Stedfast <fejj@ximian.com>
* camel-uid-cache.c (camel_uid_cache_new): Use g_path_get_dirname
since g_dirname has been deprecated.
svn path=/trunk/; revision=18497
2002-10-31 Jeffrey Stedfast <fejj@ximian.com>
* camel-gpg-context.c (camel_gpg_context_class_init): Set the
virtual method pointers to the import/export methods.
(camel_gpg_context_init): Set the key_protocol string.
(gpg_hash_to_id): Handle 2 more hash types.
(gpg_id_to_hash): Same.
(gpg_ctx_op_step): Slight fixes to support import/export.
(gpg_ctx_parse_status): Fix to hack around the fact that importing
keys doesn't write to stdout.
(gpg_import_keys): Implemented.
(gpg_export_keys): Implemented.
* camel-cipher-context.c (camel_cipher_context_class_init): Hook
up default virtual methods for import/export.
(camel_cipher_import_keys): Implemented.
(camel_cipher_export_keys): Implemented.
svn path=/trunk/; revision=18475