aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog59
-rw-r--r--camel/Makefile.am2
-rw-r--r--camel/camel-address.c6
-rw-r--r--camel/camel-address.h7
-rw-r--r--camel/camel-data-wrapper.c12
-rw-r--r--camel/camel-data-wrapper.h9
-rw-r--r--camel/camel-exception.h2
-rw-r--r--camel/camel-folder-pt-proxy.c4
-rw-r--r--camel/camel-folder-pt-proxy.h6
-rw-r--r--camel/camel-folder-search.c6
-rw-r--r--camel/camel-folder-search.h7
-rw-r--r--camel/camel-folder-summary.c19
-rw-r--r--camel/camel-folder-summary.h6
-rw-r--r--camel/camel-folder.c6
-rw-r--r--camel/camel-folder.h9
-rw-r--r--camel/camel-internet-address.h2
-rw-r--r--camel/camel-medium.c1
-rw-r--r--camel/camel-medium.h2
-rw-r--r--camel/camel-mime-filter-basic.h2
-rw-r--r--camel/camel-mime-filter-charset.h2
-rw-r--r--camel/camel-mime-filter-index.h5
-rw-r--r--camel/camel-mime-filter-save.h3
-rw-r--r--camel/camel-mime-filter.c6
-rw-r--r--camel/camel-mime-filter.h7
-rw-r--r--camel/camel-mime-message.h2
-rw-r--r--camel/camel-mime-parser.c6
-rw-r--r--camel/camel-mime-parser.h7
-rw-r--r--camel/camel-mime-part-utils.c5
-rw-r--r--camel/camel-mime-part-utils.h2
-rw-r--r--camel/camel-mime-part.c6
-rw-r--r--camel/camel-mime-part.h4
-rw-r--r--camel/camel-movemail.h2
-rw-r--r--camel/camel-multipart.h4
-rw-r--r--camel/camel-news-address.h3
-rw-r--r--camel/camel-object.c57
-rw-r--r--camel/camel-object.h65
-rw-r--r--camel/camel-op-queue.h2
-rw-r--r--camel/camel-provider.h2
-rw-r--r--camel/camel-seekable-stream.h4
-rw-r--r--camel/camel-seekable-substream.c1
-rw-r--r--camel/camel-seekable-substream.h4
-rw-r--r--camel/camel-service.c6
-rw-r--r--camel/camel-service.h11
-rw-r--r--camel/camel-session.c2
-rw-r--r--camel/camel-session.h9
-rw-r--r--camel/camel-store.h4
-rw-r--r--camel/camel-stream-buffer.c12
-rw-r--r--camel/camel-stream-buffer.h3
-rw-r--r--camel/camel-stream-filter.c13
-rw-r--r--camel/camel-stream-filter.h3
-rw-r--r--camel/camel-stream-fs.c14
-rw-r--r--camel/camel-stream-fs.h2
-rw-r--r--camel/camel-stream-mem.c16
-rw-r--r--camel/camel-stream-mem.h4
-rw-r--r--camel/camel-stream.c26
-rw-r--r--camel/camel-stream.h9
-rw-r--r--camel/camel-thread-proxy.h2
-rw-r--r--camel/camel-transport.h4
-rw-r--r--camel/camel-types.h12
-rw-r--r--camel/camel-url.h2
-rw-r--r--camel/camel.h1
-rw-r--r--camel/md5-utils.h2
-rw-r--r--camel/providers/mbox/camel-mbox-folder.c4
-rw-r--r--camel/providers/nntp/camel-nntp-folder.c2
-rw-r--r--camel/providers/nntp/camel-nntp-store.c5
-rw-r--r--camel/providers/pop3/camel-pop3-folder.c1
-rw-r--r--camel/providers/pop3/camel-pop3-store.c17
-rw-r--r--camel/providers/sendmail/camel-sendmail-transport.c3
-rw-r--r--camel/providers/smtp/camel-smtp-transport.c5
69 files changed, 320 insertions, 240 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index b8ce5fae1d..d66cb86975 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,62 @@
+2000-05-07 Dan Winship <danw@helixcode.com>
+
+ Make camel not leak like a sieve.
+
+ * camel-object.c: New subclass of GtkObject which is now the base
+ of the Camel object hierarchy. Currently the only difference
+ between CamelObject and GtkObject is that CamelObjects don't start
+ out floating.
+
+ * *.h: Move a bunch of typedefs to camel-types.h. Standardize on
+ using <camel/foo.h> in header files rather than <foo.h>, "foo.h",
+ or "camel/foo.h". Remove some unneeded includes.
+
+ * camel-address.c, camel-data-wrapper.c, camel-folder-search.c,
+ camel-folder-summary.c, camel-folder.c, camel-mime-filter.c,
+ camel-mime-parser.c, camel-service.c, camel-session.c,
+ camel-stream.c: These are now subclasses of CamelObject.
+
+ * camel-data-wrapper.c (set_output_stream):
+ * camel-medium.c (set_content_object):
+ * camel-seekable-substream.c
+ (init_with_seekable_stream_and_bounds):
+ * providers/mbox/camel-mbox-folder.c (mbox_get_message_by_uid):
+ remove gtk_object_sink calls.
+
+ * camel-stream-buffer.c (init_vbuf):
+ * camel-stream-filter.c (camel_stream_filter_new_with_stream):
+ ref the original stream.
+
+ * camel-folder-summary.c (camel_folder_summary_finalise): unref
+ the filters when finalizing.
+
+ * camel-mime-part-utils.c
+ (simple_data_wrapper_construct_from_parser,
+ camel_mime_part_construct_content_from_parser):
+ * camel-mime-part.c (camel_mime_part_set_content): Unref objects
+ that are created only to be handed off to other objects. If
+ they're going to be needed later, they will have been additionally
+ ref'ed by the object that needs them.
+
+ * providers/pop3/camel-pop3-folder.c (get_message_by_number):
+ unref the message stream after creating the data from it.
+
+ * camel-stream.c, camel-stream-buffer.c, camel-stream-filter.c,
+ camel-stream-fs.c, camel-stream-mem.c: Remove camel_stream_close,
+ since its semantics are dubious (what happens when you close a
+ stream other people still have references on?).
+
+ * providers/nntp/camel-nntp-store.c:
+ * providers/smtp/camel-smtp-transport.c:
+ * providers/pop3/camel-pop3-store.c:
+ replace camel_stream_close calls with gtk_object_unref.
+
+ * providers/mbox/camel-mbox-folder.c:
+ * providers/nntp/camel-nntp-folder.c:
+ * providers/sendmail/camel-sendmail-transport.c:
+ replace camel_stream_close with camel_stream_flush +
+ gtk_object_unref
+
2000-05-06 Dan Winship <danw@helixcode.com>
* providers/pop3/camel-pop3-store.c (query_auth_types): A machine
diff --git a/camel/Makefile.am b/camel/Makefile.am
index c3948235ed..c24113df45 100644
--- a/camel/Makefile.am
+++ b/camel/Makefile.am
@@ -45,6 +45,7 @@ libcamel_la_SOURCES = \
camel-mime-part-utils.c \
camel-movemail.c \
camel-multipart.c \
+ camel-object.c \
camel-op-queue.c \
camel-provider.c \
camel-seekable-stream.c \
@@ -91,6 +92,7 @@ libcamelinclude_HEADERS = \
camel-mime-part-utils.h \
camel-movemail.h \
camel-multipart.h \
+ camel-object.h \
camel-op-queue.h \
camel-provider.h \
camel-seekable-stream.h \
diff --git a/camel/camel-address.c b/camel/camel-address.c
index a190eb3f3e..8056c121c8 100644
--- a/camel/camel-address.c
+++ b/camel/camel-address.c
@@ -25,7 +25,7 @@ static void camel_address_class_init (CamelAddressClass *klass);
static void camel_address_init (CamelAddress *obj);
static void camel_address_finalise (GtkObject *obj);
-static GtkObjectClass *camel_address_parent;
+static CamelObjectClass *camel_address_parent;
enum SIGNALS {
LAST_SIGNAL
@@ -49,7 +49,7 @@ camel_address_get_type (void)
(GtkArgGetFunc) NULL
};
- type = gtk_type_unique (gtk_object_get_type (), &type_info);
+ type = gtk_type_unique (camel_object_get_type (), &type_info);
}
return type;
@@ -60,7 +60,7 @@ camel_address_class_init (CamelAddressClass *klass)
{
GtkObjectClass *object_class = (GtkObjectClass *) klass;
- camel_address_parent = gtk_type_class (gtk_object_get_type ());
+ camel_address_parent = gtk_type_class (camel_object_get_type ());
object_class->finalize = camel_address_finalise;
diff --git a/camel/camel-address.h b/camel/camel-address.h
index 94466f351b..d035f20e00 100644
--- a/camel/camel-address.h
+++ b/camel/camel-address.h
@@ -21,17 +21,16 @@
#ifndef _CAMEL_ADDRESS_H
#define _CAMEL_ADDRESS_H
-#include <gtk/gtk.h>
+#include <camel/camel-object.h>
#define CAMEL_ADDRESS(obj) GTK_CHECK_CAST (obj, camel_address_get_type (), CamelAddress)
#define CAMEL_ADDRESS_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_address_get_type (), CamelAddressClass)
#define IS_CAMEL_ADDRESS(obj) GTK_CHECK_TYPE (obj, camel_address_get_type ())
-typedef struct _CamelAddress CamelAddress;
typedef struct _CamelAddressClass CamelAddressClass;
struct _CamelAddress {
- GtkObject parent;
+ CamelObject parent;
GPtrArray *addresses;
@@ -39,7 +38,7 @@ struct _CamelAddress {
};
struct _CamelAddressClass {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
int (*decode) (CamelAddress *, const char *raw);
char *(*encode) (CamelAddress *);
diff --git a/camel/camel-data-wrapper.c b/camel/camel-data-wrapper.c
index e3edba1034..fb0a161300 100644
--- a/camel/camel-data-wrapper.c
+++ b/camel/camel-data-wrapper.c
@@ -29,7 +29,7 @@
#define d(x)
-static GtkObjectClass *parent_class = NULL;
+static CamelObjectClass *parent_class = NULL;
/* Returns the class for a CamelDataWrapper */
#define CDW_CLASS(so) CAMEL_DATA_WRAPPER_CLASS (GTK_OBJECT (so)->klass)
@@ -56,7 +56,7 @@ camel_data_wrapper_class_init (CamelDataWrapperClass *camel_data_wrapper_class)
GtkObjectClass *gtk_object_class =
GTK_OBJECT_CLASS (camel_data_wrapper_class);
- parent_class = gtk_type_class (gtk_object_get_type ());
+ parent_class = gtk_type_class (camel_object_get_type ());
/* virtual method definition */
camel_data_wrapper_class->write_to_stream = write_to_stream;
@@ -102,7 +102,7 @@ camel_data_wrapper_get_type (void)
(GtkClassInitFunc) NULL,
};
- camel_data_wrapper_type = gtk_type_unique (gtk_object_get_type (), &camel_data_wrapper_info);
+ camel_data_wrapper_type = gtk_type_unique (camel_object_get_type (), &camel_data_wrapper_info);
}
return camel_data_wrapper_type;
@@ -123,7 +123,7 @@ finalize (GtkObject *object)
if (camel_data_wrapper->output_stream)
gtk_object_unref (GTK_OBJECT (camel_data_wrapper->output_stream));
- parent_class->finalize (object);
+ GTK_OBJECT_CLASS (parent_class)->finalize (object);
}
/**
@@ -147,10 +147,8 @@ set_output_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
gtk_object_unref (GTK_OBJECT (data_wrapper->output_stream));
data_wrapper->output_stream = stream;
- if (stream) {
+ if (stream)
gtk_object_ref (GTK_OBJECT (stream));
- gtk_object_sink (GTK_OBJECT (stream));
- }
d(printf("data_wrapper:: set_output_stream(%p)\n", stream));
}
diff --git a/camel/camel-data-wrapper.h b/camel/camel-data-wrapper.h
index 0a3e0363a2..8daf7a84db 100644
--- a/camel/camel-data-wrapper.h
+++ b/camel/camel-data-wrapper.h
@@ -34,9 +34,8 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include "camel-types.h"
-#include "gmime-content-field.h"
+#include <camel/camel-object.h>
+#include <camel/gmime-content-field.h>
#define CAMEL_DATA_WRAPPER_TYPE (camel_data_wrapper_get_type ())
#define CAMEL_DATA_WRAPPER(obj) (GTK_CHECK_CAST((obj), CAMEL_DATA_WRAPPER_TYPE, CamelDataWrapper))
@@ -46,7 +45,7 @@ extern "C" {
struct _CamelDataWrapper
{
- GtkObject parent_object;
+ CamelObject parent_object;
CamelStream *input_stream;
CamelStream *output_stream;
@@ -57,7 +56,7 @@ struct _CamelDataWrapper
typedef struct {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
/* Virtual methods */
void (*set_output_stream) (CamelDataWrapper *data_wrapper,
diff --git a/camel/camel-exception.h b/camel/camel-exception.h
index bf361a032b..0f4772e7ce 100644
--- a/camel/camel-exception.h
+++ b/camel/camel-exception.h
@@ -36,7 +36,7 @@ extern "C" {
#endif /* __cplusplus }*/
#include <glib.h>
-#include "camel-types.h"
+#include <camel/camel-types.h>
typedef enum {
#include "camel-exception-list.def"
diff --git a/camel/camel-folder-pt-proxy.c b/camel/camel-folder-pt-proxy.c
index 8d8fda4ccf..65f74ecc4d 100644
--- a/camel/camel-folder-pt-proxy.c
+++ b/camel/camel-folder-pt-proxy.c
@@ -36,7 +36,7 @@
#include <errno.h>
-static CamelFolderClass *parent_class=NULL;
+static CamelFolderClass *parent_class = NULL;
/* Returns the class for CamelFolderPtProxy and CamelFolder objects */
#define CFPP_CLASS(so) CAMEL_FOLDER_PT_PROXY_CLASS (GTK_OBJECT(so)->klass)
@@ -222,7 +222,7 @@ camel_folder_pt_proxy_get_type (void)
(GtkClassInitFunc) NULL,
};
- camel_folder_pt_proxy_type = gtk_type_unique (gtk_object_get_type (), &camel_folder_pt_proxy_info);
+ camel_folder_pt_proxy_type = gtk_type_unique (camel_folder_get_type (), &camel_folder_pt_proxy_info);
}
return camel_folder_pt_proxy_type;
diff --git a/camel/camel-folder-pt-proxy.h b/camel/camel-folder-pt-proxy.h
index e5ae322f33..7422786170 100644
--- a/camel/camel-folder-pt-proxy.h
+++ b/camel/camel-folder-pt-proxy.h
@@ -37,9 +37,9 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include "camel-folder.h"
-#include "camel-op-queue.h"
-#include "camel-thread-proxy.h"
+#include <camel/camel-folder.h>
+#include <camel/camel-op-queue.h>
+#include <camel/camel-thread-proxy.h>
#define CAMEL_FOLDER_PT_PROXY_TYPE (camel_folder_pt_proxy_get_type ())
diff --git a/camel/camel-folder-search.c b/camel/camel-folder-search.c
index 8a58d9a6ef..e5110d1d1a 100644
--- a/camel/camel-folder-search.c
+++ b/camel/camel-folder-search.c
@@ -47,7 +47,7 @@ static void camel_folder_search_class_init (CamelFolderSearchClass *klass);
static void camel_folder_search_init (CamelFolderSearch *obj);
static void camel_folder_search_finalise (GtkObject *obj);
-static GtkObjectClass *camel_folder_search_parent;
+static CamelObjectClass *camel_folder_search_parent;
enum SIGNALS {
LAST_SIGNAL
@@ -71,7 +71,7 @@ camel_folder_search_get_type (void)
(GtkArgGetFunc) NULL
};
- type = gtk_type_unique (gtk_object_get_type (), &type_info);
+ type = gtk_type_unique (camel_object_get_type (), &type_info);
}
return type;
@@ -82,7 +82,7 @@ camel_folder_search_class_init (CamelFolderSearchClass *klass)
{
GtkObjectClass *object_class = (GtkObjectClass *) klass;
- camel_folder_search_parent = gtk_type_class (gtk_object_get_type ());
+ camel_folder_search_parent = gtk_type_class (camel_object_get_type ());
object_class->finalize = camel_folder_search_finalise;
diff --git a/camel/camel-folder-search.h b/camel/camel-folder-search.h
index ea00c2ef25..26fdb2ecc3 100644
--- a/camel/camel-folder-search.h
+++ b/camel/camel-folder-search.h
@@ -22,7 +22,7 @@
#ifndef _CAMEL_FOLDER_SEARCH_H
#define _CAMEL_FOLDER_SEARCH_H
-#include <gtk/gtk.h>
+#include <camel/camel-object.h>
#include <e-util/e-sexp.h>
#include <libibex/ibex.h>
#include <camel/camel-folder.h>
@@ -31,11 +31,10 @@
#define CAMEL_FOLDER_SEARCH_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_folder_search_get_type (), CamelFolderSearchClass)
#define IS_CAMEL_FOLDER_SEARCH(obj) GTK_CHECK_TYPE (obj, camel_folder_search_get_type ())
-typedef struct _CamelFolderSearch CamelFolderSearch;
typedef struct _CamelFolderSearchClass CamelFolderSearchClass;
struct _CamelFolderSearch {
- GtkObject parent;
+ CamelObject parent;
struct _CamelFolderSearchPrivate *priv;
@@ -50,7 +49,7 @@ struct _CamelFolderSearch {
};
struct _CamelFolderSearchClass {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
/* general bool/comparison options, usually these wont need to be set, unless it is compiling into another language */
ESExpResult * (*and)(struct _ESExp *f, int argc, struct _ESExpTerm **argv, CamelFolderSearch *s);
diff --git a/camel/camel-folder-summary.c b/camel/camel-folder-summary.c
index ee879b3f7f..de66646483 100644
--- a/camel/camel-folder-summary.c
+++ b/camel/camel-folder-summary.c
@@ -84,7 +84,7 @@ static void camel_folder_summary_class_init (CamelFolderSummaryClass *klass);
static void camel_folder_summary_init (CamelFolderSummary *obj);
static void camel_folder_summary_finalise (GtkObject *obj);
-static GtkObjectClass *camel_folder_summary_parent;
+static CamelObjectClass *camel_folder_summary_parent;
enum SIGNALS {
LAST_SIGNAL
@@ -108,7 +108,7 @@ camel_folder_summary_get_type (void)
(GtkArgGetFunc) NULL
};
- type = gtk_type_unique (gtk_object_get_type (), &type_info);
+ type = gtk_type_unique (camel_object_get_type (), &type_info);
}
return type;
@@ -119,7 +119,7 @@ camel_folder_summary_class_init (CamelFolderSummaryClass *klass)
{
GtkObjectClass *object_class = (GtkObjectClass *) klass;
- camel_folder_summary_parent = gtk_type_class (gtk_object_get_type ());
+ camel_folder_summary_parent = gtk_type_class (camel_object_get_type ());
object_class->finalize = camel_folder_summary_finalise;
@@ -179,6 +179,15 @@ camel_folder_summary_finalise (GtkObject *obj)
g_hash_table_destroy(p->filter_charset);
g_free(p);
+ if (p->filter_index)
+ gtk_object_unref ((GtkObject *)p->filter_index);
+ if (p->filter_64)
+ gtk_object_unref ((GtkObject *)p->filter_64);
+ if (p->filter_qp)
+ gtk_object_unref ((GtkObject *)p->filter_qp);
+ if (p->filter_save)
+ gtk_object_unref ((GtkObject *)p->filter_save);
+
((GtkObjectClass *)(camel_folder_summary_parent))->finalize((GtkObject *)obj);
}
@@ -1104,8 +1113,8 @@ int main(int argc, char **argv)
camel_folder_summary_set_filename(s, "index.summary");
camel_folder_summary_save(s);
- gtk_object_unref(mp);
- gtk_object_unref(s);
+ gtk_object_unref(GTK_OBJECT(mp));
+ gtk_object_unref(GTK_OBJECT(s));
printf("summarised %d messages\n", camel_folder_summary_count(s));
#if 0
diff --git a/camel/camel-folder-summary.h b/camel/camel-folder-summary.h
index 69045d6931..c8948a405c 100644
--- a/camel/camel-folder-summary.h
+++ b/camel/camel-folder-summary.h
@@ -22,7 +22,7 @@
#ifndef _CAMEL_FOLDER_SUMMARY_H
#define _CAMEL_FOLDER_SUMMARY_H
-#include <gtk/gtk.h>
+#include <camel/camel-object.h>
#include <stdio.h>
#include <time.h>
#include <camel/camel-mime-parser.h>
@@ -88,7 +88,7 @@ enum _CamelFolderSummaryFlags {
};
struct _CamelFolderSummary {
- GtkObject parent;
+ CamelObject parent;
struct _CamelFolderSummaryPrivate *priv;
@@ -111,7 +111,7 @@ struct _CamelFolderSummary {
};
struct _CamelFolderSummaryClass {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
/* load/save the global info */
int (*summary_header_load)(CamelFolderSummary *, FILE *);
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index 6188c35866..ed78b42f51 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -30,7 +30,7 @@
#include "camel-store.h"
#include "string-utils.h"
-static GtkObjectClass *parent_class=NULL;
+static CamelObjectClass *parent_class = NULL;
/* Returns the class for a CamelFolder */
#define CF_CLASS(so) CAMEL_FOLDER_CLASS (GTK_OBJECT (so)->klass)
@@ -148,7 +148,7 @@ camel_folder_class_init (CamelFolderClass *camel_folder_class)
{
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (camel_folder_class);
- parent_class = gtk_type_class (gtk_object_get_type ());
+ parent_class = gtk_type_class (camel_object_get_type ());
/* virtual method definition */
camel_folder_class->init = _init;
@@ -230,7 +230,7 @@ camel_folder_get_type (void)
(GtkClassInitFunc) NULL,
};
- camel_folder_type = gtk_type_unique (gtk_object_get_type (), &camel_folder_info);
+ camel_folder_type = gtk_type_unique (camel_object_get_type (), &camel_folder_info);
}
return camel_folder_type;
diff --git a/camel/camel-folder.h b/camel/camel-folder.h
index 5cc379be3b..c8ffdd52ac 100644
--- a/camel/camel-folder.h
+++ b/camel/camel-folder.h
@@ -34,9 +34,8 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
+#include <camel/camel-object.h>
#include <time.h>
-#include "camel-types.h"
#define CAMEL_FOLDER_TYPE (camel_folder_get_type ())
#define CAMEL_FOLDER(obj) (GTK_CHECK_CAST((obj), CAMEL_FOLDER_TYPE, CamelFolder))
@@ -56,8 +55,6 @@ typedef enum {
} CamelFolderOpenMode;
-#warning old summary stuff to be removed!
-
typedef struct {
gchar *name;
gint nb_message; /* ick, these should be renamed to something better */
@@ -104,7 +101,7 @@ typedef void (*CamelFolderAsyncCallback) ();
struct _CamelFolder
{
- GtkObject parent_object;
+ CamelObject parent_object;
CamelFolderOpenMode open_mode;
CamelFolderState open_state;
@@ -125,7 +122,7 @@ struct _CamelFolder
typedef struct {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
/* signals */
void (*folder_changed) (CamelFolder *, int type);
diff --git a/camel/camel-internet-address.h b/camel/camel-internet-address.h
index a0e6107e1b..14fbd5436a 100644
--- a/camel/camel-internet-address.h
+++ b/camel/camel-internet-address.h
@@ -21,14 +21,12 @@
#ifndef _CAMEL_INTERNET_ADDRESS_H
#define _CAMEL_INTERNET_ADDRESS_H
-#include <gtk/gtk.h>
#include <camel/camel-address.h>
#define CAMEL_INTERNET_ADDRESS(obj) GTK_CHECK_CAST (obj, camel_internet_address_get_type (), CamelInternetAddress)
#define CAMEL_INTERNET_ADDRESS_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_internet_address_get_type (), CamelInternetAddressClass)
#define IS_CAMEL_INTERNET_ADDRESS(obj) GTK_CHECK_TYPE (obj, camel_internet_address_get_type ())
-typedef struct _CamelInternetAddress CamelInternetAddress;
typedef struct _CamelInternetAddressClass CamelInternetAddressClass;
struct _CamelInternetAddress {
diff --git a/camel/camel-medium.c b/camel/camel-medium.c
index 68463eca40..dcc5d31d67 100644
--- a/camel/camel-medium.c
+++ b/camel/camel-medium.c
@@ -254,7 +254,6 @@ set_content_object (CamelMedium *medium, CamelDataWrapper *content)
if (medium->content)
gtk_object_unref (GTK_OBJECT (medium->content));
gtk_object_ref (GTK_OBJECT (content));
- gtk_object_sink (GTK_OBJECT (content));
medium->content = content;
}
diff --git a/camel/camel-medium.h b/camel/camel-medium.h
index 6971117382..2b6f77f825 100644
--- a/camel/camel-medium.h
+++ b/camel/camel-medium.h
@@ -34,8 +34,6 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include <camel/camel-types.h>
#include <camel/camel-data-wrapper.h>
#define CAMEL_MEDIUM_TYPE (camel_medium_get_type ())
diff --git a/camel/camel-mime-filter-basic.h b/camel/camel-mime-filter-basic.h
index 57d9898fa6..f700997fd2 100644
--- a/camel/camel-mime-filter-basic.h
+++ b/camel/camel-mime-filter-basic.h
@@ -21,14 +21,12 @@
#ifndef _CAMEL_MIME_FILTER_BASIC_H
#define _CAMEL_MIME_FILTER_BASIC_H
-#include <gtk/gtk.h>
#include <camel/camel-mime-filter.h>
#define CAMEL_MIME_FILTER_BASIC(obj) GTK_CHECK_CAST (obj, camel_mime_filter_basic_get_type (), CamelMimeFilterBasic)
#define CAMEL_MIME_FILTER_BASIC_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_mime_filter_basic_get_type (), CamelMimeFilterBasicClass)
#define IS_CAMEL_MIME_FILTER_BASIC(obj) GTK_CHECK_TYPE (obj, camel_mime_filter_basic_get_type ())
-typedef struct _CamelMimeFilterBasic CamelMimeFilterBasic;
typedef struct _CamelMimeFilterBasicClass CamelMimeFilterBasicClass;
typedef enum {
diff --git a/camel/camel-mime-filter-charset.h b/camel/camel-mime-filter-charset.h
index 3e15e2e7c7..866a9fd6bf 100644
--- a/camel/camel-mime-filter-charset.h
+++ b/camel/camel-mime-filter-charset.h
@@ -21,7 +21,6 @@
#ifndef _CAMEL_MIME_FILTER_CHARSET_H
#define _CAMEL_MIME_FILTER_CHARSET_H
-#include <gtk/gtk.h>
#include <camel/camel-mime-filter.h>
#include <unicode.h>
@@ -29,7 +28,6 @@
#define CAMEL_MIME_FILTER_CHARSET_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_mime_filter_charset_get_type (), CamelMimeFilterCharsetClass)
#define IS_CAMEL_MIME_FILTER_CHARSET(obj) GTK_CHECK_TYPE (obj, camel_mime_filter_charset_get_type ())
-typedef struct _CamelMimeFilterCharset CamelMimeFilterCharset;
typedef struct _CamelMimeFilterCharsetClass CamelMimeFilterCharsetClass;
struct _CamelMimeFilterCharset {
diff --git a/camel/camel-mime-filter-index.h b/camel/camel-mime-filter-index.h
index f480fc55c7..7dcc76b8ea 100644
--- a/camel/camel-mime-filter-index.h
+++ b/camel/camel-mime-filter-index.h
@@ -21,16 +21,13 @@
#ifndef _CAMEL_MIME_FILTER_INDEX_H
#define _CAMEL_MIME_FILTER_INDEX_H
-#include <gtk/gtk.h>
-#include <libibex/ibex.h>
-
#include <camel/camel-mime-filter.h>
+#include <libibex/ibex.h>
#define CAMEL_MIME_FILTER_INDEX(obj) GTK_CHECK_CAST (obj, camel_mime_filter_index_get_type (), CamelMimeFilterIndex)
#define CAMEL_MIME_FILTER_INDEX_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_mime_filter_index_get_type (), CamelMimeFilterIndexClass)
#define IS_CAMEL_MIME_FILTER_INDEX(obj) GTK_CHECK_TYPE (obj, camel_mime_filter_index_get_type ())
-typedef struct _CamelMimeFilterIndex CamelMimeFilterIndex;
typedef struct _CamelMimeFilterIndexClass CamelMimeFilterIndexClass;
struct _CamelMimeFilterIndex {
diff --git a/camel/camel-mime-filter-save.h b/camel/camel-mime-filter-save.h
index 970e849db6..eb6e448560 100644
--- a/camel/camel-mime-filter-save.h
+++ b/camel/camel-mime-filter-save.h
@@ -21,15 +21,12 @@
#ifndef _CAMEL_MIME_FILTER_SAVE_H
#define _CAMEL_MIME_FILTER_SAVE_H
-#include <gtk/gtk.h>
-
#include <camel/camel-mime-filter.h>
#define CAMEL_MIME_FILTER_SAVE(obj) GTK_CHECK_CAST (obj, camel_mime_filter_save_get_type (), CamelMimeFilterSave)
#define CAMEL_MIME_FILTER_SAVE_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_mime_filter_save_get_type (), CamelMimeFilterSaveClass)
#define IS_CAMEL_MIME_FILTER_SAVE(obj) GTK_CHECK_TYPE (obj, camel_mime_filter_save_get_type ())
-typedef struct _CamelMimeFilterSave CamelMimeFilterSave;
typedef struct _CamelMimeFilterSaveClass CamelMimeFilterSaveClass;
struct _CamelMimeFilterSave {
diff --git a/camel/camel-mime-filter.c b/camel/camel-mime-filter.c
index de34a4c973..e402ba0ff2 100644
--- a/camel/camel-mime-filter.c
+++ b/camel/camel-mime-filter.c
@@ -33,7 +33,7 @@ struct _CamelMimeFilterPrivate {
static void camel_mime_filter_class_init (CamelMimeFilterClass *klass);
static void camel_mime_filter_init (CamelMimeFilter *obj);
-static GtkObjectClass *camel_mime_filter_parent;
+static CamelObjectClass *camel_mime_filter_parent;
enum SIGNALS {
LAST_SIGNAL
@@ -57,7 +57,7 @@ camel_mime_filter_get_type (void)
(GtkArgGetFunc) NULL
};
- type = gtk_type_unique (gtk_object_get_type (), &type_info);
+ type = gtk_type_unique (camel_object_get_type (), &type_info);
}
return type;
@@ -88,7 +88,7 @@ camel_mime_filter_class_init (CamelMimeFilterClass *klass)
{
GtkObjectClass *object_class = (GtkObjectClass *) klass;
- camel_mime_filter_parent = gtk_type_class (gtk_object_get_type ());
+ camel_mime_filter_parent = gtk_type_class (camel_object_get_type ());
object_class->finalize = finalise;
diff --git a/camel/camel-mime-filter.h b/camel/camel-mime-filter.h
index 51b63479de..4576596bab 100644
--- a/camel/camel-mime-filter.h
+++ b/camel/camel-mime-filter.h
@@ -23,18 +23,17 @@
#ifndef _CAMEL_MIME_FILTER_H
#define _CAMEL_MIME_FILTER_H
-#include <gtk/gtk.h>
+#include <camel/camel-object.h>
#include <sys/types.h>
#define CAMEL_MIME_FILTER(obj) GTK_CHECK_CAST (obj, camel_mime_filter_get_type (), CamelMimeFilter)
#define CAMEL_MIME_FILTER_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_mime_filter_get_type (), CamelMimeFilterClass)
#define IS_CAMEL_MIME_FILTER(obj) GTK_CHECK_TYPE (obj, camel_mime_filter_get_type ())
-typedef struct _CamelMimeFilter CamelMimeFilter;
typedef struct _CamelMimeFilterClass CamelMimeFilterClass;
struct _CamelMimeFilter {
- GtkObject parent;
+ CamelObject parent;
struct _CamelMimeFilterPrivate *priv;
@@ -50,7 +49,7 @@ struct _CamelMimeFilter {
};
struct _CamelMimeFilterClass {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
/* virtual functions */
void (*filter)(CamelMimeFilter *f,
diff --git a/camel/camel-mime-message.h b/camel/camel-mime-message.h
index c790138f70..f1e254da51 100644
--- a/camel/camel-mime-message.h
+++ b/camel/camel-mime-message.h
@@ -32,8 +32,6 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include <camel/camel-types.h>
#include <camel/camel-mime-part.h>
#include <camel/camel-mime-utils.h>
#include <camel/camel-internet-address.h>
diff --git a/camel/camel-mime-parser.c b/camel/camel-mime-parser.c
index 91b4f6cd6e..97a43e44d7 100644
--- a/camel/camel-mime-parser.c
+++ b/camel/camel-mime-parser.c
@@ -289,7 +289,7 @@ static char *states[] = {
"HSCAN_MESSAGE_END",
};
-static GtkObjectClass *camel_mime_parser_parent;
+static CamelObjectClass *camel_mime_parser_parent;
enum SIGNALS {
LAST_SIGNAL
@@ -313,7 +313,7 @@ camel_mime_parser_get_type (void)
(GtkArgGetFunc) NULL
};
- type = gtk_type_unique (gtk_object_get_type (), &type_info);
+ type = gtk_type_unique (camel_object_get_type (), &type_info);
}
return type;
@@ -334,7 +334,7 @@ camel_mime_parser_class_init (CamelMimeParserClass *klass)
{
GtkObjectClass *object_class = (GtkObjectClass *) klass;
- camel_mime_parser_parent = gtk_type_class (gtk_object_get_type ());
+ camel_mime_parser_parent = gtk_type_class (camel_object_get_type ());
object_class->finalize = finalise;
diff --git a/camel/camel-mime-parser.h b/camel/camel-mime-parser.h
index 1a84cefa28..baefbfe67f 100644
--- a/camel/camel-mime-parser.h
+++ b/camel/camel-mime-parser.h
@@ -21,7 +21,7 @@
#ifndef _CAMEL_MIME_PARSER_H
#define _CAMEL_MIME_PARSER_H
-#include <gtk/gtk.h>
+#include <camel/camel-object.h>
#include <camel/camel-mime-utils.h>
#include <camel/camel-mime-filter.h>
@@ -31,7 +31,6 @@
#define CAMEL_MIME_PARSER_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_mime_parser_get_type (), CamelMimeParserClass)
#define IS_CAMEL_MIME_PARSER(obj) GTK_CHECK_TYPE (obj, camel_mime_parser_get_type ())
-typedef struct _CamelMimeParser CamelMimeParser;
typedef struct _CamelMimeParserClass CamelMimeParserClass;
/* NOTE: if you add more states, you may need to bump the
@@ -59,13 +58,13 @@ enum _header_state {
};
struct _CamelMimeParser {
- GtkObject parent;
+ CamelObject parent;
struct _CamelMimeParserPrivate *priv;
};
struct _CamelMimeParserClass {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
void (*message)(CamelMimeParser *, void *headers);
void (*part)(CamelMimeParser *);
diff --git a/camel/camel-mime-part-utils.c b/camel/camel-mime-part-utils.c
index adbc62d305..fc11665623 100644
--- a/camel/camel-mime-part-utils.c
+++ b/camel/camel-mime-part-utils.c
@@ -126,6 +126,7 @@ simple_data_wrapper_construct_from_parser(CamelDataWrapper *dw, CamelMimeParser
d(printf("Small message part, kept in memory!\n"));
mem = camel_stream_mem_new_with_byte_array(buffer);
camel_data_wrapper_set_output_stream (dw, mem);
+ gtk_object_unref ((GtkObject *)mem);
} else {
CamelStream *sub;
CamelStreamFilter *filter;
@@ -145,9 +146,11 @@ simple_data_wrapper_construct_from_parser(CamelDataWrapper *dw, CamelMimeParser
camel_stream_filter_add(filter, fch);
}
camel_data_wrapper_set_output_stream (dw, (CamelStream *)filter);
+ gtk_object_unref ((GtkObject *)filter);
} else {
camel_data_wrapper_set_output_stream (dw, sub);
}
+ gtk_object_unref ((GtkObject *)sub);
}
camel_mime_parser_filter_remove(mp, decid);
@@ -195,6 +198,7 @@ camel_mime_part_construct_content_from_parser(CamelMimePart *dw, CamelMimeParser
bodypart = (CamelDataWrapper *)camel_mime_part_new();
camel_mime_part_construct_from_parser((CamelMimePart *)bodypart, mp);
camel_multipart_add_part((CamelMultipart *)content, (CamelMimePart *)bodypart);
+ gtk_object_unref ((GtkObject *)bodypart);
}
d(printf("Created multi-part\n"));
@@ -208,6 +212,7 @@ camel_mime_part_construct_content_from_parser(CamelMimePart *dw, CamelMimeParser
camel_data_wrapper_set_mime_type_field (content,
camel_mime_part_get_content_type ((CamelMimePart *)dw));
camel_medium_set_content_object((CamelMedium *)dw, content);
+ gtk_object_unref ((GtkObject *)content);
}
}
diff --git a/camel/camel-mime-part-utils.h b/camel/camel-mime-part-utils.h
index a4e58ec2a2..1e1c3655aa 100644
--- a/camel/camel-mime-part-utils.h
+++ b/camel/camel-mime-part-utils.h
@@ -33,7 +33,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include "camel-mime-part.h"
+#include <camel/camel-mime-part.h>
void camel_mime_part_construct_content_from_parser(CamelMimePart *, CamelMimeParser *mp);
diff --git a/camel/camel-mime-part.c b/camel/camel-mime-part.c
index fa22cf9dcb..7d08c6a5b1 100644
--- a/camel/camel-mime-part.c
+++ b/camel/camel-mime-part.c
@@ -656,14 +656,16 @@ camel_mime_part_set_content (CamelMimePart *camel_mime_part,
CamelDataWrapper *dw;
CamelStream *stream;
- dw = camel_data_wrapper_new();
+ dw = camel_data_wrapper_new ();
camel_data_wrapper_set_mime_type (dw, type);
stream = camel_stream_mem_new_with_buffer (data, length);
camel_data_wrapper_construct_from_stream (dw, stream);
+ gtk_object_unref (GTK_OBJECT (stream));
camel_medium_set_content_object (medium, dw);
+ gtk_object_unref (GTK_OBJECT (dw));
} else {
if (medium->content)
- gtk_object_unref ( (GtkObject *)medium->content);
+ gtk_object_unref (GTK_OBJECT (medium->content));
medium->content = NULL;
}
}
diff --git a/camel/camel-mime-part.h b/camel/camel-mime-part.h
index b2c87b8f9f..9360a96848 100644
--- a/camel/camel-mime-part.h
+++ b/camel/camel-mime-part.h
@@ -34,9 +34,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include "camel-types.h"
-#include "camel-medium.h"
+#include <camel/camel-medium.h>
#include <camel/camel-mime-utils.h>
#include <camel/camel-mime-parser.h>
diff --git a/camel/camel-movemail.h b/camel/camel-movemail.h
index a4b20141ac..ea75c82603 100644
--- a/camel/camel-movemail.h
+++ b/camel/camel-movemail.h
@@ -33,7 +33,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include "camel-exception.h"
+#include <camel/camel-exception.h>
int camel_movemail (const char *source, const char *dest, CamelException *ex);
diff --git a/camel/camel-multipart.h b/camel/camel-multipart.h
index 33b88d6500..709e73e51d 100644
--- a/camel/camel-multipart.h
+++ b/camel/camel-multipart.h
@@ -34,9 +34,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include "camel-types.h"
-#include "camel-data-wrapper.h"
+#include <camel/camel-data-wrapper.h>
#define CAMEL_MULTIPART_TYPE (camel_multipart_get_type ())
#define CAMEL_MULTIPART(obj) (GTK_CHECK_CAST((obj), CAMEL_MULTIPART_TYPE, CamelMultipart))
diff --git a/camel/camel-news-address.h b/camel/camel-news-address.h
index f472a7c7ef..e25f907351 100644
--- a/camel/camel-news-address.h
+++ b/camel/camel-news-address.h
@@ -21,13 +21,12 @@
#ifndef _CAMEL_NEWS_ADDRESS_H
#define _CAMEL_NEWS_ADDRESS_H
-#include <gtk/gtk.h>
+#include <camel/camel-address.h>
#define CAMEL_NEWS_ADDRESS(obj) GTK_CHECK_CAST (obj, camel_news_address_get_type (), CamelNewsAddress)
#define CAMEL_NEWS_ADDRESS_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_news_address_get_type (), CamelNewsAddressClass)
#define IS_CAMEL_NEWS_ADDRESS(obj) GTK_CHECK_TYPE (obj, camel_news_address_get_type ())
-typedef struct _CamelNewsAddress CamelNewsAddress;
typedef struct _CamelNewsAddressClass CamelNewsAddressClass;
struct _CamelNewsAddress {
diff --git a/camel/camel-object.c b/camel/camel-object.c
new file mode 100644
index 0000000000..3edce10d8a
--- /dev/null
+++ b/camel/camel-object.c
@@ -0,0 +1,57 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* camel-object.c: Base class for Camel */
+
+/*
+ * Author:
+ * Dan Winship <danw@helixcode.com>
+ *
+ * Copyright 2000 Helix Code, Inc. (http://www.helixcode.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#include <config.h>
+#include "camel-object.h"
+
+static void
+camel_object_init (gpointer object, gpointer klass)
+{
+ GTK_OBJECT_UNSET_FLAGS (object, GTK_FLOATING);
+}
+
+GtkType
+camel_object_get_type (void)
+{
+ static GtkType camel_object_type = 0;
+
+ if (!camel_object_type) {
+ GtkTypeInfo camel_object_info =
+ {
+ "CamelObject",
+ sizeof (CamelObject),
+ sizeof (CamelObjectClass),
+ (GtkClassInitFunc) NULL,
+ (GtkObjectInitFunc) camel_object_init,
+ /* reserved_1 */ NULL,
+ /* reserved_2 */ NULL,
+ (GtkClassInitFunc) NULL,
+ };
+
+ camel_object_type = gtk_type_unique (gtk_object_get_type (), &camel_object_info);
+ }
+
+ return camel_object_type;
+}
diff --git a/camel/camel-object.h b/camel/camel-object.h
new file mode 100644
index 0000000000..2c6b4d0d5c
--- /dev/null
+++ b/camel/camel-object.h
@@ -0,0 +1,65 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* camel-object.h: Base class for Camel */
+
+/*
+ * Author:
+ * Dan Winship <danw@helixcode.com>
+ *
+ * Copyright 2000 Helix Code, Inc. (http://www.helixcode.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#ifndef CAMEL_OBJECT_H
+#define CAMEL_OBJECT_H 1
+
+
+#ifdef __cplusplus
+extern "C" {
+#pragma }
+#endif /* __cplusplus }*/
+
+#include <gtk/gtk.h>
+#include <camel/camel-types.h>
+
+#define CAMEL_OBJECT_TYPE (camel_object_get_type ())
+#define CAMEL_OBJECT(obj) (GTK_CHECK_CAST((obj), CAMEL_OBJECT_TYPE, CamelObject))
+#define CAMEL_OBJECT_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), CAMEL_OBJECT_TYPE, CamelObjectClass))
+#define CAMEL_IS_OBJECT(o) (GTK_CHECK_TYPE((o), CAMEL_OBJECT_TYPE))
+
+
+struct _CamelObject
+{
+ GtkObject parent_object;
+
+};
+
+
+typedef struct {
+ GtkObjectClass parent_class;
+
+} CamelObjectClass;
+
+
+/* Standard Gtk function */
+GtkType camel_object_get_type (void);
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* CAMEL_OBJECT_H */
diff --git a/camel/camel-op-queue.h b/camel/camel-op-queue.h
index b96737eba5..49fdc152d3 100644
--- a/camel/camel-op-queue.h
+++ b/camel/camel-op-queue.h
@@ -33,7 +33,7 @@ extern "C" {
#endif /* __cplusplus }*/
#include <glib.h>
-#include "camel-marshal-utils.h"
+#include <camel/camel-marshal-utils.h>
diff --git a/camel/camel-provider.h b/camel/camel-provider.h
index cac6e9d6cc..463f415d1b 100644
--- a/camel/camel-provider.h
+++ b/camel/camel-provider.h
@@ -35,7 +35,7 @@ extern "C" {
#endif /* __cplusplus }*/
#include <gtk/gtk.h>
-#include "camel-types.h"
+#include <camel/camel-types.h>
#define CAMEL_PROVIDER(obj) ((CamelProvider *)(obj))
diff --git a/camel/camel-seekable-stream.h b/camel/camel-seekable-stream.h
index fa6f58dddc..f9eb86636d 100644
--- a/camel/camel-seekable-stream.h
+++ b/camel/camel-seekable-stream.h
@@ -34,11 +34,9 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
+#include <camel/camel-stream.h>
#include <sys/types.h>
#include <unistd.h>
-#include "camel-types.h"
-#include "camel-stream.h"
#define CAMEL_SEEKABLE_STREAM_TYPE (camel_seekable_stream_get_type ())
#define CAMEL_SEEKABLE_STREAM(obj) (GTK_CHECK_CAST((obj), CAMEL_SEEKABLE_STREAM_TYPE, CamelSeekableStream))
diff --git a/camel/camel-seekable-substream.c b/camel/camel-seekable-substream.c
index 5b01495be1..37d6acab9d 100644
--- a/camel/camel-seekable-substream.c
+++ b/camel/camel-seekable-substream.c
@@ -112,7 +112,6 @@ init_with_seekable_stream_and_bounds (CamelSeekableSubstream *seekable_substream
/* Store the parent stream. */
seekable_substream->parent_stream = parent_stream;
gtk_object_ref (GTK_OBJECT (parent_stream));
- gtk_object_sink (GTK_OBJECT (parent_stream));
/* Set the bound of the substream. */
camel_seekable_stream_set_bounds ((CamelSeekableStream *)seekable_substream, start, end);
diff --git a/camel/camel-seekable-substream.h b/camel/camel-seekable-substream.h
index 75a7a41cac..81e36b9fe2 100644
--- a/camel/camel-seekable-substream.h
+++ b/camel/camel-seekable-substream.h
@@ -32,9 +32,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include "camel-types.h"
-#include "camel-seekable-stream.h"
+#include <camel/camel-seekable-stream.h>
#define CAMEL_SEEKABLE_SUBSTREAM_TYPE (camel_seekable_substream_get_type ())
#define CAMEL_SEEKABLE_SUBSTREAM(obj) (GTK_CHECK_CAST((obj), CAMEL_SEEKABLE_SUBSTREAM_TYPE, CamelSeekableSubstream))
diff --git a/camel/camel-service.c b/camel/camel-service.c
index edb71d2a78..ae3867643f 100644
--- a/camel/camel-service.c
+++ b/camel/camel-service.c
@@ -30,7 +30,7 @@
#include <ctype.h>
#include <stdlib.h>
-static GtkObjectClass *parent_class=NULL;
+static CamelObjectClass *parent_class = NULL;
/* Returns the class for a CamelService */
#define CSERV_CLASS(so) CAMEL_SERVICE_CLASS (GTK_OBJECT(so)->klass)
@@ -52,7 +52,7 @@ camel_service_class_init (CamelServiceClass *camel_service_class)
GtkObjectClass *gtk_object_class =
GTK_OBJECT_CLASS (camel_service_class);
- parent_class = gtk_type_class (gtk_object_get_type ());
+ parent_class = gtk_type_class (camel_object_get_type ());
/* virtual method definition */
camel_service_class->connect = _connect;
@@ -84,7 +84,7 @@ camel_service_get_type (void)
(GtkClassInitFunc) NULL,
};
- camel_service_type = gtk_type_unique (gtk_object_get_type (),
+ camel_service_type = gtk_type_unique (camel_object_get_type (),
&camel_service_info);
}
diff --git a/camel/camel-service.h b/camel/camel-service.h
index ffaf177543..c2f4f12020 100644
--- a/camel/camel-service.h
+++ b/camel/camel-service.h
@@ -34,10 +34,9 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
+#include <camel/camel-object.h>
+#include <camel/camel-url.h>
#include <netdb.h>
-#include "camel-types.h"
-#include "camel-url.h"
#define CAMEL_SERVICE_TYPE (camel_service_get_type ())
#define CAMEL_SERVICE(obj) (GTK_CHECK_CAST((obj), CAMEL_SERVICE_TYPE, CamelService))
@@ -45,9 +44,8 @@ extern "C" {
#define CAMEL_IS_SERVICE(o) (GTK_CHECK_TYPE((o), CAMEL_SERVICE_TYPE))
-
struct _CamelService {
- GtkObject parent_object;
+ CamelObject parent_object;
CamelSession *session;
gboolean connected;
@@ -57,9 +55,8 @@ struct _CamelService {
};
-
typedef struct {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
gboolean (*connect) (CamelService *service,
CamelException *ex);
diff --git a/camel/camel-session.c b/camel/camel-session.c
index bddd22bfe2..55a466e404 100644
--- a/camel/camel-session.c
+++ b/camel/camel-session.c
@@ -60,7 +60,7 @@ camel_session_get_type (void)
(GtkClassInitFunc) NULL,
};
- camel_session_type = gtk_type_unique (gtk_object_get_type (),
+ camel_session_type = gtk_type_unique (camel_object_get_type (),
&camel_session_info);
}
diff --git a/camel/camel-session.h b/camel/camel-session.h
index 5adb72d65a..81f8a3da85 100644
--- a/camel/camel-session.h
+++ b/camel/camel-session.h
@@ -34,9 +34,8 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include "camel-types.h"
-#include "camel-provider.h"
+#include <camel/camel-object.h>
+#include <camel/camel-provider.h>
#define CAMEL_SESSION_TYPE (camel_session_get_type ())
#define CAMEL_SESSION(obj) (GTK_CHECK_CAST((obj), CAMEL_SESSION_TYPE, CamelSession))
@@ -50,7 +49,7 @@ typedef char *(*CamelAuthCallback) (char *prompt, gboolean secret,
struct _CamelSession
{
- GtkObject parent_object;
+ CamelObject parent_object;
CamelAuthCallback authenticator;
@@ -58,7 +57,7 @@ struct _CamelSession
};
typedef struct {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
} CamelSessionClass;
diff --git a/camel/camel-store.h b/camel/camel-store.h
index d66e6344b5..7f1aa89d59 100644
--- a/camel/camel-store.h
+++ b/camel/camel-store.h
@@ -34,9 +34,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include "camel-types.h"
-#include "camel-service.h"
+#include <camel/camel-service.h>
#define CAMEL_STORE_TYPE (camel_store_get_type ())
#define CAMEL_STORE(obj) (GTK_CHECK_CAST((obj), CAMEL_STORE_TYPE, CamelStore))
diff --git a/camel/camel-stream-buffer.c b/camel/camel-stream-buffer.c
index 64146d5b2e..7cc1754ad6 100644
--- a/camel/camel-stream-buffer.c
+++ b/camel/camel-stream-buffer.c
@@ -42,7 +42,6 @@ static gint stream_read (CamelStream *stream, gchar *buffer, gint n);
static gint stream_write (CamelStream *stream, const gchar *buffer, gint n);
static void stream_flush (CamelStream *stream);
static gboolean stream_eos (CamelStream *stream);
-static void stream_close (CamelStream *stream);
static void finalize (GtkObject *object);
static void destroy (GtkObject *object);
@@ -67,7 +66,6 @@ camel_stream_buffer_class_init (CamelStreamBufferClass *camel_stream_buffer_clas
camel_stream_class->write = stream_write;
camel_stream_class->flush = stream_flush;
camel_stream_class->eos = stream_eos;
- camel_stream_class->close = stream_close;
gtk_object_class->finalize = finalize;
gtk_object_class->destroy = destroy;
@@ -164,6 +162,7 @@ init_vbuf(CamelStreamBuffer *sbf, CamelStream *s, CamelStreamBufferMode mode, ch
if (sbf->stream)
gtk_object_unref(GTK_OBJECT(sbf->stream));
sbf->stream = s;
+ gtk_object_ref(GTK_OBJECT(sbf->stream));
}
static void
@@ -367,15 +366,6 @@ stream_eos (CamelStream *stream)
return camel_stream_eos(sbf->stream) && sbf->ptr == sbf->end;
}
-static void
-stream_close (CamelStream *stream)
-{
- CamelStreamBuffer *sbf = CAMEL_STREAM_BUFFER (stream);
-
- stream_flush(stream);
- camel_stream_close(sbf->stream);
-}
-
/**
* camel_stream_buffer_gets:
* @sbf: A CamelStreamBuffer.
diff --git a/camel/camel-stream-buffer.h b/camel/camel-stream-buffer.h
index a40b7957da..8f926cd231 100644
--- a/camel/camel-stream-buffer.h
+++ b/camel/camel-stream-buffer.h
@@ -34,9 +34,8 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
+#include <camel/camel-seekable-stream.h>
#include <stdio.h>
-#include "camel-seekable-stream.h"
#define CAMEL_STREAM_BUFFER_TYPE (camel_stream_buffer_get_type ())
#define CAMEL_STREAM_BUFFER(obj) (GTK_CHECK_CAST((obj), CAMEL_STREAM_BUFFER_TYPE, CamelStreamBuffer))
diff --git a/camel/camel-stream-filter.c b/camel/camel-stream-filter.c
index e8f1098a12..500bf22846 100644
--- a/camel/camel-stream-filter.c
+++ b/camel/camel-stream-filter.c
@@ -49,7 +49,6 @@ static gint do_read (CamelStream *stream, gchar *buffer, gint n);
static gint do_write (CamelStream *stream, const gchar *buffer, gint n);
static void do_flush (CamelStream *stream);
static gboolean do_eos (CamelStream *stream);
-static void do_close (CamelStream *stream);
static void do_reset (CamelStream *stream);
static CamelStreamClass *camel_stream_filter_parent;
@@ -118,7 +117,6 @@ camel_stream_filter_class_init (CamelStreamFilterClass *klass)
camel_stream_class->write = do_write;
camel_stream_class->flush = do_flush;
camel_stream_class->eos = do_eos;
- camel_stream_class->close = do_close;
camel_stream_class->reset = do_reset;
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
@@ -147,6 +145,8 @@ camel_stream_filter_new_with_stream(CamelStream *stream)
CamelStreamFilter *new = CAMEL_STREAM_FILTER ( gtk_type_new (camel_stream_filter_get_type ()));
new->source = stream;
+ gtk_object_ref ((GtkObject *)stream);
+
return new;
}
@@ -276,15 +276,6 @@ static gboolean do_eos (CamelStream *stream)
return camel_stream_eos(filter->source);
}
-static void do_close (CamelStream *stream)
-{
- CamelStreamFilter *filter = (CamelStreamFilter *)stream;
- struct _CamelStreamFilterPrivate *p = _PRIVATE(filter);
-
- p->filteredlen = 0;
- camel_stream_close(filter->source);
-}
-
static void do_reset (CamelStream *stream)
{
CamelStreamFilter *filter = (CamelStreamFilter *)stream;
diff --git a/camel/camel-stream-filter.h b/camel/camel-stream-filter.h
index b63dae275a..0bc73732ec 100644
--- a/camel/camel-stream-filter.h
+++ b/camel/camel-stream-filter.h
@@ -21,8 +21,6 @@
#ifndef _CAMEL_STREAM_FILTER_H
#define _CAMEL_STREAM_FILTER_H
-#include <gtk/gtk.h>
-
#include <camel/camel-stream.h>
#include <camel/camel-mime-filter.h>
@@ -30,7 +28,6 @@
#define CAMEL_STREAM_FILTER_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_stream_filter_get_type (), CamelStreamFilterClass)
#define IS_CAMEL_STREAM_FILTER(obj) GTK_CHECK_TYPE (obj, camel_stream_filter_get_type ())
-typedef struct _CamelStreamFilter CamelStreamFilter;
typedef struct _CamelStreamFilterClass CamelStreamFilterClass;
struct _CamelStreamFilter {
diff --git a/camel/camel-stream-fs.c b/camel/camel-stream-fs.c
index ae46141e19..4bd506b143 100644
--- a/camel/camel-stream-fs.c
+++ b/camel/camel-stream-fs.c
@@ -39,7 +39,6 @@ static CamelSeekableStreamClass *parent_class=NULL;
static gint stream_read (CamelStream *stream, gchar *buffer, gint n);
static gint stream_write (CamelStream *stream, const gchar *buffer, gint n);
static void stream_flush (CamelStream *stream);
-static void stream_close (CamelStream *stream);
static off_t stream_seek (CamelSeekableStream *stream, off_t offset, CamelStreamSeekPolicy policy);
static void finalize (GtkObject *object);
@@ -69,7 +68,6 @@ camel_stream_fs_class_init (CamelStreamFsClass *camel_stream_fs_class)
camel_stream_class->read = stream_read;
camel_stream_class->write = stream_write;
camel_stream_class->flush = stream_flush;
- camel_stream_class->close = stream_close;
camel_seekable_stream_class->seek = stream_seek;
@@ -319,18 +317,6 @@ stream_flush (CamelStream *stream)
fsync ((CAMEL_STREAM_FS (stream))->fd);
}
-static void
-stream_close (CamelStream *stream)
-{
- CamelStreamFs *fs = (CamelStreamFs *)stream;
- if (fs->fd != -1) {
- close (fs->fd);
- fs->fd = -1;
- } else {
- g_warning("StreamFs::close() on a closed or failed stream");
- }
-}
-
static off_t
stream_seek (CamelSeekableStream *stream, off_t offset, CamelStreamSeekPolicy policy)
{
diff --git a/camel/camel-stream-fs.h b/camel/camel-stream-fs.h
index d3e8f219c7..48428c58bd 100644
--- a/camel/camel-stream-fs.h
+++ b/camel/camel-stream-fs.h
@@ -34,8 +34,6 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include <camel/camel-types.h>
#include <camel/camel-seekable-stream.h>
/* for open flags */
diff --git a/camel/camel-stream-mem.c b/camel/camel-stream-mem.c
index 837fa17560..e34b274380 100644
--- a/camel/camel-stream-mem.c
+++ b/camel/camel-stream-mem.c
@@ -29,7 +29,7 @@
#include <fcntl.h>
#include <errno.h>
-static CamelStreamClass *parent_class=NULL;
+static CamelStreamClass *parent_class = NULL;
/* Returns the class for a CamelStreamMEM */
#define CSM_CLASS(so) CAMEL_STREAM_MEM_CLASS (GTK_OBJECT(so)->klass)
@@ -38,7 +38,6 @@ static gint stream_read (CamelStream *stream, gchar *buffer, gint n);
static gint stream_write (CamelStream *stream, const gchar *buffer, gint n);
static void stream_flush (CamelStream *stream);
static gboolean stream_eos (CamelStream *stream);
-static void stream_close (CamelStream *stream);
static off_t stream_seek (CamelSeekableStream *stream, off_t offset, CamelStreamSeekPolicy policy);
static void finalize (GtkObject *object);
@@ -50,7 +49,7 @@ camel_stream_mem_class_init (CamelStreamMemClass *camel_stream_mem_class)
CamelStreamClass *camel_stream_class = CAMEL_STREAM_CLASS (camel_stream_mem_class);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (camel_stream_mem_class);
- parent_class = gtk_type_class (gtk_object_get_type ());
+ parent_class = gtk_type_class (camel_stream_get_type ());
/* virtual method definition */
@@ -59,7 +58,6 @@ camel_stream_mem_class_init (CamelStreamMemClass *camel_stream_mem_class)
camel_stream_class->write = stream_write;
camel_stream_class->flush = stream_flush;
camel_stream_class->eos = stream_eos;
- camel_stream_class->close = stream_close;
camel_seekable_stream_class->seek = stream_seek;
@@ -216,16 +214,6 @@ stream_eos (CamelStream *stream)
return ((CamelStreamMem *)stream)->buffer->len <= ((CamelSeekableStream *)stream)->position;
}
-static void
-stream_close (CamelStream *stream)
-{
- CamelStreamMem *stream_mem = CAMEL_STREAM_MEM (stream);
-
- if (stream_mem->buffer && stream_mem->owner)
- g_byte_array_free (stream_mem->buffer, TRUE);
- stream_mem->buffer = NULL;
-}
-
static off_t
stream_seek (CamelSeekableStream *stream, off_t offset, CamelStreamSeekPolicy policy)
{
diff --git a/camel/camel-stream-mem.h b/camel/camel-stream-mem.h
index 785fddad60..6d108f111f 100644
--- a/camel/camel-stream-mem.h
+++ b/camel/camel-stream-mem.h
@@ -32,10 +32,8 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
+#include <camel/camel-seekable-stream.h>
#include <sys/types.h>
-#include "camel-types.h"
-#include "camel-seekable-stream.h"
#define CAMEL_STREAM_MEM_TYPE (camel_stream_mem_get_type ())
#define CAMEL_STREAM_MEM(obj) (GTK_CHECK_CAST((obj), CAMEL_STREAM_MEM_TYPE, CamelStreamMem))
diff --git a/camel/camel-stream.c b/camel/camel-stream.c
index bb8c6362ec..082789733d 100644
--- a/camel/camel-stream.c
+++ b/camel/camel-stream.c
@@ -35,7 +35,7 @@ enum {
static guint camel_stream_signals[LAST_SIGNAL] = { 0 };
-static GtkObjectClass *parent_class = NULL;
+static CamelObjectClass *parent_class = NULL;
/* Returns the class for a CamelStream */
@@ -47,12 +47,6 @@ default_camel_flush (CamelStream *stream)
/* nothing */
}
-static void
-default_camel_close (CamelStream *stream)
-{
- /* nothing */
-}
-
static gboolean
eos (CamelStream *stream)
{
@@ -65,15 +59,13 @@ camel_stream_class_init (CamelStreamClass *camel_stream_class)
{
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (camel_stream_class);
- parent_class = gtk_type_class (gtk_object_get_type ());
+ parent_class = gtk_type_class (camel_object_get_type ());
/* virtual method definition */
camel_stream_class->read = NULL;
camel_stream_class->write = NULL;
camel_stream_class->flush = default_camel_flush;
camel_stream_class->eos = eos;
- camel_stream_class->close = default_camel_close;
- camel_stream_class->close = NULL;
/* virtual method overload */
@@ -108,7 +100,7 @@ camel_stream_get_type (void)
(GtkClassInitFunc) NULL,
};
- camel_stream_type = gtk_type_unique (gtk_object_get_type (), &camel_stream_info);
+ camel_stream_type = gtk_type_unique (camel_object_get_type (), &camel_stream_info);
}
return camel_stream_type;
@@ -177,18 +169,6 @@ camel_stream_eos (CamelStream *stream)
/**
- * camel_stram_close:
- * @stream: a CamelStream object.
- *
- * Close the @stream object.
- **/
-void
-camel_stream_close (CamelStream *stream)
-{
- CS_CLASS (stream)->close (stream);
-}
-
-/**
* camel_stream_reset: reset a stream
* @stream: the stream object
*
diff --git a/camel/camel-stream.h b/camel/camel-stream.h
index 9a4e96122b..c2b91d0e6a 100644
--- a/camel/camel-stream.h
+++ b/camel/camel-stream.h
@@ -34,8 +34,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include "camel-types.h"
+#include <camel/camel-object.h>
#define CAMEL_STREAM_TYPE (camel_stream_get_type ())
#define CAMEL_STREAM(obj) (GTK_CHECK_CAST((obj), CAMEL_STREAM_TYPE, CamelStream))
@@ -44,13 +43,13 @@ extern "C" {
struct _CamelStream
{
- GtkObject parent_object;
+ CamelObject parent_object;
gboolean eos; /* end of stream indicator, for use by implementing classes */
};
typedef struct {
- GtkObjectClass parent_class;
+ CamelObjectClass parent_class;
/* Virtual methods */
@@ -60,7 +59,6 @@ typedef struct {
gint (*write) (CamelStream *stream, const gchar *buffer, gint n);
void (*flush) (CamelStream *stream);
gboolean (*eos) (CamelStream *stream);
- void (*close) (CamelStream *stream);
void (*reset) (CamelStream *stream);
} CamelStreamClass;
@@ -72,7 +70,6 @@ gint camel_stream_read (CamelStream *stream, gchar *buffer, gint n);
gint camel_stream_write (CamelStream *stream, const gchar *buffer, gint n);
void camel_stream_flush (CamelStream *stream);
gboolean camel_stream_eos (CamelStream *stream);
-void camel_stream_close (CamelStream *stream);
void camel_stream_reset (CamelStream *stream);
/* utility macros and funcs */
diff --git a/camel/camel-thread-proxy.h b/camel/camel-thread-proxy.h
index 2608e08878..050d8ed598 100644
--- a/camel/camel-thread-proxy.h
+++ b/camel/camel-thread-proxy.h
@@ -36,7 +36,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include "camel-op-queue.h"
+#include <camel/camel-op-queue.h>
#define CAMEL_THREAD_PROXY(o) (CamelThreadProxy *)(o)
diff --git a/camel/camel-transport.h b/camel/camel-transport.h
index 1e41f4ac71..fc8f0e3076 100644
--- a/camel/camel-transport.h
+++ b/camel/camel-transport.h
@@ -34,9 +34,7 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
-#include "camel-types.h"
-#include "camel-service.h"
+#include <camel/camel-service.h>
#define CAMEL_TRANSPORT_TYPE (camel_transport_get_type ())
#define CAMEL_TRANSPORT(obj) (GTK_CHECK_CAST((obj), CAMEL_TRANSPORT_TYPE, CamelTransport))
diff --git a/camel/camel-types.h b/camel/camel-types.h
index cb7c9dea57..c8bbc874b4 100644
--- a/camel/camel-types.h
+++ b/camel/camel-types.h
@@ -27,14 +27,25 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
+typedef struct _CamelAddress CamelAddress;
typedef struct _CamelDataWrapper CamelDataWrapper;
typedef struct _CamelException CamelException;
typedef struct _CamelFolder CamelFolder;
+typedef struct _CamelFolderSearch CamelFolderSearch;
typedef struct _CamelFolderSummary CamelFolderSummary;
+typedef struct _CamelInternetAddress CamelInternetAddress;
typedef struct _CamelMedium CamelMedium;
+typedef struct _CamelMimeFilter CamelMimeFilter;
+typedef struct _CamelMimeFilterBasic CamelMimeFilterBasic;
+typedef struct _CamelMimeFilterCharset CamelMimeFilterCharset;
+typedef struct _CamelMimeFilterIndex CamelMimeFilterIndex;
+typedef struct _CamelMimeFilterSave CamelMimeFilterSave;
typedef struct _CamelMimeMessage CamelMimeMessage;
+typedef struct _CamelMimeParser CamelMimeParser;
typedef struct _CamelMimePart CamelMimePart;
typedef struct _CamelMultipart CamelMultipart;
+typedef struct _CamelNewsAddress CamelNewsAddress;
+typedef struct _CamelObject CamelObject;
typedef struct _CamelSeekableStream CamelSeekableStream;
typedef struct _CamelSeekableSubstream CamelSeekableSubstream;
typedef struct _CamelService CamelService;
@@ -45,6 +56,7 @@ typedef struct _CamelStore CamelStore;
typedef struct _CamelStream CamelStream;
typedef struct _CamelStreamBuffer CamelStreamBuffer;
typedef struct _CamelStreamDataWrapper CamelStreamDataWrapper;
+typedef struct _CamelStreamFilter CamelStreamFilter;
typedef struct _CamelStreamFs CamelStreamFs;
typedef struct _CamelStreamMem CamelStreamMem;
typedef struct _CamelTransport CamelTransport;
diff --git a/camel/camel-url.h b/camel/camel-url.h
index 60012cb90c..f2a4c645f5 100644
--- a/camel/camel-url.h
+++ b/camel/camel-url.h
@@ -29,7 +29,7 @@
#define CAMEL_URL_H 1
#include <glib.h>
-#include "camel-types.h"
+#include <camel/camel-types.h>
#ifdef __cplusplus
extern "C" {
diff --git a/camel/camel.h b/camel/camel.h
index 09ef8adc7e..9f2fba8119 100644
--- a/camel/camel.h
+++ b/camel/camel.h
@@ -33,7 +33,6 @@ extern "C" {
#pragma }
#endif /* __cplusplus }*/
-#include <gtk/gtk.h>
#include <camel/camel-data-wrapper.h>
#include <camel/camel-exception.h>
#include <camel/camel-folder-pt-proxy.h>
diff --git a/camel/md5-utils.h b/camel/md5-utils.h
index e4569dd54a..c911250d56 100644
--- a/camel/md5-utils.h
+++ b/camel/md5-utils.h
@@ -27,7 +27,7 @@
#define MD5_UTILS_H
#include <glib.h>
-#include "camel-stream.h"
+#include <camel/camel-stream.h>
typedef struct {
guint32 buf[4];
diff --git a/camel/providers/mbox/camel-mbox-folder.c b/camel/providers/mbox/camel-mbox-folder.c
index bc1913cb0d..a0a593a00f 100644
--- a/camel/providers/mbox/camel-mbox-folder.c
+++ b/camel/providers/mbox/camel-mbox-folder.c
@@ -804,11 +804,11 @@ mbox_append_message (CamelFolder *folder, CamelMimeMessage *message, CamelExcept
camel_stream_write_string (output_stream, "From - \n");
/* FIXME: does this return an error? IT HAS TO FOR THIS TO BE RELIABLE */
camel_data_wrapper_write_to_stream (CAMEL_DATA_WRAPPER (message), output_stream);
- camel_stream_close (output_stream);
/* TODO: update the summary so it knows a new message is there to summarise/index */
/* This is only a performance improvement, the summary is *only* a cache */
+ camel_stream_flush (output_stream);
gtk_object_unref (GTK_OBJECT (output_stream));
}
@@ -901,8 +901,6 @@ mbox_get_message_by_uid (CamelFolder *folder, const gchar *uid, CamelException *
message_stream = camel_stream_fs_new_with_name_and_bounds (mbox_folder->folder_file_path, O_RDONLY, 0,
((CamelMboxMessageContentInfo *)info->info.content)->pos,
((CamelMboxMessageContentInfo *)info->info.content)->endpos);
- gtk_object_ref((GtkObject *)message_stream);
- gtk_object_sink((GtkObject *)message_stream);
message = camel_mime_message_new();
if (camel_data_wrapper_construct_from_stream((CamelDataWrapper *)message, message_stream) == -1) {
gtk_object_unref((GtkObject *)message);
diff --git a/camel/providers/nntp/camel-nntp-folder.c b/camel/providers/nntp/camel-nntp-folder.c
index 0c4ba1691d..6fee4d2aac 100644
--- a/camel/providers/nntp/camel-nntp-folder.c
+++ b/camel/providers/nntp/camel-nntp-folder.c
@@ -469,7 +469,7 @@ _append_message (CamelFolder *folder, CamelMimeMessage *message, CamelException
camel_stream_write_string (output_stream, "From - \n");
camel_data_wrapper_write_to_stream (CAMEL_DATA_WRAPPER (message), output_stream);
}
- camel_stream_close (output_stream);
+ camel_stream_flush (output_stream);
gtk_object_unref (GTK_OBJECT (output_stream));
/* at this point we have saved the message to a
diff --git a/camel/providers/nntp/camel-nntp-store.c b/camel/providers/nntp/camel-nntp-store.c
index c1a721d96c..639e8fa9e0 100644
--- a/camel/providers/nntp/camel-nntp-store.c
+++ b/camel/providers/nntp/camel-nntp-store.c
@@ -232,11 +232,8 @@ nntp_disconnect (CamelService *service, CamelException *ex)
if (!service_class->disconnect (service, ex))
return FALSE;
- /* Closing the buffered write stream will close the
- * unbuffered read stream wrapped inside it as well.
- */
- camel_stream_close (store->ostream);
gtk_object_unref (GTK_OBJECT (store->ostream));
+ gtk_object_unref (GTK_OBJECT (store->istream));
store->ostream = NULL;
store->istream = NULL;
return TRUE;
diff --git a/camel/providers/pop3/camel-pop3-folder.c b/camel/providers/pop3/camel-pop3-folder.c
index f47851a6a4..bb2c7de6e1 100644
--- a/camel/providers/pop3/camel-pop3-folder.c
+++ b/camel/providers/pop3/camel-pop3-folder.c
@@ -209,6 +209,7 @@ get_message_by_number (CamelFolder *folder, gint number, CamelException *ex)
msg = camel_mime_message_new ();
camel_data_wrapper_construct_from_stream (CAMEL_DATA_WRAPPER (msg),
msgstream);
+ gtk_object_unref (GTK_OBJECT (msgstream));
return msg;
}
diff --git a/camel/providers/pop3/camel-pop3-store.c b/camel/providers/pop3/camel-pop3-store.c
index ff4ca265a1..9ae87ad420 100644
--- a/camel/providers/pop3/camel-pop3-store.c
+++ b/camel/providers/pop3/camel-pop3-store.c
@@ -382,8 +382,8 @@ pop3_connect (CamelService *service, CamelException *ex)
"Could not read greeting from POP "
"server.");
return FALSE;
- camel_stream_close (store->ostream);
- camel_stream_close (store->istream);
+ gtk_object_unref (GTK_OBJECT (store->ostream));
+ gtk_object_unref (GTK_OBJECT (store->istream));
}
apoptime = strchr (buf, '<');
apopend = apoptime ? strchr (apoptime, '>') : NULL;
@@ -418,8 +418,8 @@ pop3_connect (CamelService *service, CamelException *ex)
"server. Error sending username:"
" %s", msg ? msg : "(Unknown)");
g_free (msg);
- camel_stream_close (store->ostream);
- camel_stream_close (store->istream);
+ gtk_object_unref (GTK_OBJECT (store->ostream));
+ gtk_object_unref (GTK_OBJECT (store->istream));
return FALSE;
}
@@ -433,8 +433,8 @@ pop3_connect (CamelService *service, CamelException *ex)
"server. Error sending password:"
" %s", msg ? msg : "(Unknown)");
g_free (msg);
- camel_stream_close (store->ostream);
- camel_stream_close (store->istream);
+ gtk_object_unref (GTK_OBJECT (store->ostream));
+ gtk_object_unref (GTK_OBJECT (store->istream));
return FALSE;
}
@@ -453,11 +453,8 @@ pop3_disconnect (CamelService *service, CamelException *ex)
if (!service_class->disconnect (service, ex))
return FALSE;
- /* Closing the buffered write stream will close the
- * unbuffered read stream wrapped inside it as well.
- */
- camel_stream_close (store->ostream);
gtk_object_unref (GTK_OBJECT (store->ostream));
+ gtk_object_unref (GTK_OBJECT (store->istream));
store->ostream = NULL;
store->istream = NULL;
return TRUE;
diff --git a/camel/providers/sendmail/camel-sendmail-transport.c b/camel/providers/sendmail/camel-sendmail-transport.c
index 15ba1f04e1..fad9d9681d 100644
--- a/camel/providers/sendmail/camel-sendmail-transport.c
+++ b/camel/providers/sendmail/camel-sendmail-transport.c
@@ -140,7 +140,8 @@ _send_internal (CamelMedium *message, char **argv, CamelException *ex)
close (fd[0]);
out = camel_stream_fs_new_with_fd (fd[1]);
camel_data_wrapper_write_to_stream (CAMEL_DATA_WRAPPER (message), out);
- camel_stream_close (out);
+ camel_stream_flush (out);
+ gtk_object_unref (GTK_OBJECT (out));
/* Wait for sendmail to exit. */
while (waitpid (pid, &wstat, 0) == -1 && errno == EINTR)
diff --git a/camel/providers/smtp/camel-smtp-transport.c b/camel/providers/smtp/camel-smtp-transport.c
index 992948560e..b32936012a 100644
--- a/camel/providers/smtp/camel-smtp-transport.c
+++ b/camel/providers/smtp/camel-smtp-transport.c
@@ -198,11 +198,8 @@ smtp_disconnect (CamelService *service, CamelException *ex)
if (!service_class->disconnect (service, ex))
return FALSE;
- /* Closing the buffered write stream will close the
- * unbuffered read stream wrapped inside it as well.
- */
- camel_stream_close (transport->ostream);
gtk_object_unref (GTK_OBJECT (transport->ostream));
+ gtk_object_unref (GTK_OBJECT (transport->istream));
transport->ostream = NULL;
transport->istream = NULL;