aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/mh/camel-mh-folder.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@HelixCode.com>2000-10-18 14:11:54 +0800
committerMichael Zucci <zucchi@src.gnome.org>2000-10-18 14:11:54 +0800
commit229f78b929e0a9553b543f596a7643129d80b494 (patch)
tree8b33f2672a07f2431fae5bf2f686a52fb8b2e401 /camel/providers/mh/camel-mh-folder.c
parent345f04ccae499e039f1f6f3d21768a2d93ea1c83 (diff)
downloadgsoc2013-evolution-229f78b929e0a9553b543f596a7643129d80b494.tar
gsoc2013-evolution-229f78b929e0a9553b543f596a7643129d80b494.tar.gz
gsoc2013-evolution-229f78b929e0a9553b543f596a7643129d80b494.tar.bz2
gsoc2013-evolution-229f78b929e0a9553b543f596a7643129d80b494.tar.lz
gsoc2013-evolution-229f78b929e0a9553b543f596a7643129d80b494.tar.xz
gsoc2013-evolution-229f78b929e0a9553b543f596a7643129d80b494.tar.zst
gsoc2013-evolution-229f78b929e0a9553b543f596a7643129d80b494.zip
No, we must not encode the headers here. These interfaces ARE raw
2000-10-18 Not Zed <NotZed@HelixCode.com> * camel-mime-part.c (add_header): No, we must not encode the headers here. These interfaces ARE raw interfaces as they are defined in camel_medium. Also removed a bogus/meaningless FIXME. (set_header): Likewise here, we must not. (process_header): Removed another bogus comment. * camel-object.c (shared_is_of_type): Comment out the spitting of a big warning when we're trying to determine types from code. * providers/mbox/camel-mbox-summary.c (message_info_new_from_parser): Only call ibex funcitons if we have an index. * providers/mh/camel-mh-summary.c (camel_mh_summary_add): Only call ibex functions if we have an index. (remove_summary): Likewise. (camel_mh_summary_check): Likewise. * providers/nntp/camel-nntp-store.c (nntp_store_get_folder): get_folder -> flags argument. * providers/vee/camel-vee-store.c (vee_get_folder): create->flags. * providers/pop3/camel-pop3-store.c (get_folder): Changed create -> flags. * providers/imap/camel-imap-store.c (get_folder): Added flags argument. * providers/mh/camel-mh-folder.c (camel_mh_folder_new): Added flags argument, and fixed code appropriately. * providers/mh/camel-mh-store.c (get_folder): Added flags argument. * camel-folder-search.c (message_body_contains): Perform a regex match on the contents of messages. This wont quite work yet as message contents are encoded when written to a stream. (build_match_regex): Converts a number of strings into a regex matching pattern, escaping special chars. (match_message): match a single message from a folder, by uid. Slow. (search_body_contains): Changed to support matching where no index is supplied. Matches are performed by retrieving message contents, etc. () WTF? camel should not be including any widget headers. * providers/mbox/camel-mbox-folder.c (camel_mbox_folder_new): Added flags argument. (mbox_refresh_info): Changed into a NOP, the refresh info code moved into the new function. (camel_mbox_folder_new): If we have an index requested, build one, otherwise, remove an old one, or just dont do anything. * providers/mbox/camel-mbox-store.c (get_folder): Changed create to flags, changed code to suit. * camel-store.c (camel_store_get_folder): Changed create to flags. (get_folder_internal): And here. (get_folder): And here too. * camel-store.h (camel_store_get_folder): Change the create argument to be a flags argument. svn path=/trunk/; revision=5978
Diffstat (limited to 'camel/providers/mh/camel-mh-folder.c')
-rw-r--r--camel/providers/mh/camel-mh-folder.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/camel/providers/mh/camel-mh-folder.c b/camel/providers/mh/camel-mh-folder.c
index c8b0503e95..ccd9d717e9 100644
--- a/camel/providers/mh/camel-mh-folder.c
+++ b/camel/providers/mh/camel-mh-folder.c
@@ -158,7 +158,7 @@ CamelType camel_mh_folder_get_type(void)
}
CamelFolder *
-camel_mh_folder_new(CamelStore *parent_store, const char *full_name, CamelException *ex)
+camel_mh_folder_new(CamelStore *parent_store, const char *full_name, guint32 flags, CamelException *ex)
{
CamelFolder *folder;
CamelMhFolder *mh_folder;
@@ -185,11 +185,20 @@ camel_mh_folder_new(CamelStore *parent_store, const char *full_name, CamelExcept
/* if we have no index file, force it */
forceindex = stat(mh_folder->index_file_path, &st) == -1;
-
- mh_folder->index = ibex_open(mh_folder->index_file_path, O_CREAT | O_RDWR, 0600);
- if (mh_folder->index == NULL) {
- /* yes, this isn't fatal at all */
- g_warning("Could not open/create index file: %s: indexing not performed", strerror(errno));
+ /* check if we need to setup an index */
+ if (flags & CAMEL_STORE_FOLDER_BODY_INDEX) {
+ mh_folder->index = ibex_open(mh_folder->index_file_path, O_CREAT | O_RDWR, 0600);
+ if (mh_folder->index == NULL) {
+ /* yes, this isn't fatal at all */
+ g_warning("Could not open/create index file: %s: indexing not performed", strerror(errno));
+ forceindex = FALSE;
+ }
+ } else {
+ /* if we do have an index file, remove it */
+ if (forceindex == FALSE) {
+ unlink(mh_folder->index_file_path);
+ }
+ forceindex = FALSE;
}
/* no summary (disk or memory), and we're proverbially screwed */