don't seek the begining of the substream. (_eos): fix eos condition

2000-02-16  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-seekable-substream.c (_set_bounds): don't
	seek the begining of the substream.
	(_eos): fix eos condition testing.
	(_finalize): unref parent stream
	(_init_with_seekable_stream_and_bounds): ref parent stream

	* camel/gstring-util.c (g_string_equal_for_hash):
	(g_string_equal_for_glist): return type is int.

	* camel/camel.h:
	* camel/camel.c (camel_init): use (void)
	instead of ().

A lot of other small changes to make the set_input_stream
scheme work. It actually works.

svn path=/trunk/; revision=1798
This commit is contained in:
bertrand
2000-02-16 18:04:40 +00:00
committed by Bertrand Guiheneuf
parent d2239da3e7
commit 7f04720b1e
19 changed files with 145 additions and 196 deletions

View File

@ -1,3 +1,19 @@
2000-02-16 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-seekable-substream.c (_set_bounds): don't
seek the begining of the substream.
(_eos): fix eos condition testing.
(_finalize): unref parent stream
(_init_with_seekable_stream_and_bounds): ref parent stream
* camel/gstring-util.c (g_string_equal_for_hash):
(g_string_equal_for_glist): return type is int.
* camel/camel.h:
* camel/camel.c (camel_init): use (void)
instead of ().
2000-02-15 bertrand <bertrand@helixcode.com>
* camel/camel-multipart.c (_localize_part):

View File

@ -234,7 +234,6 @@ _finalize (GtkObject *object)
{
CamelFolder *camel_folder = CAMEL_FOLDER (object);
CamelFolderPtProxy *camel_folder_pt_proxy = CAMEL_FOLDER_PT_PROXY (camel_folder);
GList *message_node;
CAMEL_LOG_FULL_DEBUG ("Entering CamelFolderPtProxy::finalize\n");

View File

@ -83,6 +83,8 @@ typedef struct {
} CamelFolderPtProxyClass;
GtkType camel_folder_pt_proxy_get_type (void);
#ifdef __cplusplus
}
#endif /* __cplusplus */

View File

@ -43,7 +43,6 @@ static CamelMimePartClass *parent_class=NULL;
static void
camel_mime_body_part_class_init (CamelMimeBodyPartClass *camel_mime_body_part_class)
{
CamelMimePartClass *camel_mime_part_class = CAMEL_MIME_PART_CLASS (camel_mime_body_part_class);
parent_class = gtk_type_class (camel_mime_part_get_type ());
/* virtual method definition */
@ -54,7 +53,6 @@ camel_mime_body_part_class_init (CamelMimeBodyPartClass *camel_mime_body_part_cl
static void
camel_mime_body_part_init (gpointer object, gpointer klass)
{
CamelMimeBodyPart *camel_mime_body_part = CAMEL_MIME_BODY_PART (object);
camel_data_wrapper_set_mime_type (CAMEL_DATA_WRAPPER (object), "mime/body-part");
}
@ -86,7 +84,7 @@ camel_mime_body_part_get_type (void)
}
CamelMimeBodyPart *
camel_mime_body_part_new ()
camel_mime_body_part_new (void)
{
CamelMimeBodyPart *mime_body_part;
CAMEL_LOG_FULL_DEBUG ("CamelMimeBodyPart:: Entering new()\n");

View File

@ -61,7 +61,8 @@ typedef struct {
CamelMimePartClass parent_class;
/* Virtual methods */
void (*set_parent) (CamelMimeBodyPart *mime_body_part, CamelMultipart *multipart);
void (*set_parent) (CamelMimeBodyPart *mime_body_part,
CamelMultipart *multipart);
const CamelMultipart * (*get_parent) (CamelMimeBodyPart *mime_body_part);
} CamelMimeBodyPartClass;
@ -72,8 +73,9 @@ GtkType camel_mime_body_part_get_type (void);
/* public methods */
CamelMimeBodyPart *camel_mime_body_part_new ();
void camel_mime_body_part_set_parent (CamelMimeBodyPart *mime_body_part, CamelMultipart *multipart);
CamelMimeBodyPart * camel_mime_body_part_new (void);
void camel_mime_body_part_set_parent (CamelMimeBodyPart *mime_body_part,
CamelMultipart *multipart);
const CamelMultipart *camel_mime_body_part_get_parent (CamelMimeBodyPart *mime_body_part);

View File

@ -87,6 +87,7 @@ camel_mime_part_construct_content_from_stream (CamelMimePart *mime_part,
GtkType content_object_type;
CamelDataWrapper *content_object = NULL;
/*
* find content mime type
*/

View File

@ -818,7 +818,7 @@ _set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
guint32 content_stream_inf_bound;
CAMEL_LOG_FULL_DEBUG ("CamelMimePart::construct_from_stream entering\n");
CAMEL_LOG_FULL_DEBUG ("CamelMimePart::set_input_stream entering\n");
g_assert (CAMEL_IS_SEEKABLE_STREAM (stream));
seekable_stream = CAMEL_SEEKABLE_STREAM (stream);
@ -831,6 +831,7 @@ _set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
camel_seekable_substream_new_with_seekable_stream_and_bounds (seekable_stream,
content_stream_inf_bound,
-1);
CAMEL_LOG_FULL_DEBUG ("CamelMimePart::set_input_stream leaving\n");
}

View File

@ -26,30 +26,44 @@
*/
#include <config.h>
#include "camel-multipart.h"
#include "camel-log.h"
#include "gmime-content-field.h"
#include "gmime-utils.h"
#include "camel-stream-mem.h"
#include "camel-seekable-substream.h"
#include "camel-multipart.h"
static void _add_part (CamelMultipart *multipart, CamelMimeBodyPart *part);
static void _add_part_at (CamelMultipart *multipart, CamelMimeBodyPart *part, guint index);
static void _remove_part (CamelMultipart *multipart, CamelMimeBodyPart *part);
static CamelMimeBodyPart *_remove_part_at (CamelMultipart *multipart, guint index);
static CamelMimeBodyPart *_get_part (CamelMultipart *multipart, guint index);
static guint _get_number (CamelMultipart *multipart);
static void _set_parent (CamelMultipart *multipart, CamelMimePart *parent);
static CamelMimePart *_get_parent (CamelMultipart *multipart);
static void _set_boundary (CamelMultipart *multipart, gchar *boundary);
static const gchar *_get_boundary (CamelMultipart *multipart);
static void _write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream);
static void _construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream);
static void _add_part (CamelMultipart *multipart,
CamelMimeBodyPart *part);
static void _add_part_at (CamelMultipart *multipart,
CamelMimeBodyPart *part,
guint index);
static void _remove_part (CamelMultipart *multipart,
CamelMimeBodyPart *part);
static CamelMimeBodyPart * _remove_part_at (CamelMultipart *multipart,
guint index);
static CamelMimeBodyPart * _get_part (CamelMultipart *multipart,
guint index);
static guint _get_number (CamelMultipart *multipart);
static void _set_parent (CamelMultipart *multipart,
CamelMimePart *parent);
static CamelMimePart * _get_parent (CamelMultipart *multipart);
static void _set_boundary (CamelMultipart *multipart,
gchar *boundary);
static const gchar * _get_boundary (CamelMultipart *multipart);
static void _write_to_stream (CamelDataWrapper *data_wrapper,
CamelStream *stream);
static void _set_input_stream (CamelDataWrapper *data_wrapper,
CamelStream *stream);
static void _finalize (GtkObject *object);
static void _finalize (GtkObject *object);
static CamelDataWrapperClass *parent_class=NULL;
/* Returns the class for a CamelMultipart */
#define CMP_CLASS(so) CAMEL_MULTIPART_CLASS (GTK_OBJECT(so)->klass)
@ -79,7 +93,7 @@ camel_multipart_class_init (CamelMultipartClass *camel_multipart_class)
/* virtual method overload */
camel_data_wrapper_class->write_to_stream = _write_to_stream;
camel_data_wrapper_class->construct_from_stream = _construct_from_stream;
camel_data_wrapper_class->set_input_stream = _set_input_stream;
gtk_object_class->finalize = _finalize;
}
@ -150,8 +164,9 @@ _finalize (GtkObject *object)
}
CamelMultipart *
camel_multipart_new ()
CamelMultipart *
camel_multipart_new (void)
{
CamelMultipart *multipart;
CAMEL_LOG_FULL_DEBUG ("CamelMultipart:: Entering new()\n");
@ -177,7 +192,7 @@ void
camel_multipart_add_part (CamelMultipart *multipart, CamelMimeBodyPart *part)
{
CMP_CLASS (multipart)->add_part (multipart, part);
}
}
static void
@ -401,117 +416,6 @@ _write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
/**
* _read_part: read one part in a multipart environement.
* @new_part_stream: stream to add the part to
* @stream: the stream to read the lines from.
* @normal_boundary: end of part bundary.
* @end_boundary: end of multipart boundary.
*
* This routine is a bit special: RFC 2046 says that, in a multipart
* environment, the last crlf before a boundary belongs to the boundary.
* Thus, if there is no blank line before the boundary, the last crlf
* of the last line of the part is removed.
*
* Return value: true if the last boundary element has been found or if no more data was available from the stream, flase otherwise
**/
static gboolean
_read_part (CamelStream *new_part_stream, CamelStream *stream, gchar *normal_boundary, gchar *end_boundary)
{
gchar *new_line = NULL;
gboolean end_of_part = FALSE;
gboolean last_part = FALSE;
gboolean first_line = TRUE;
/* Note for future enhancements */
/* RFC 2046 precises that when parsing the content of a multipart
* element, the program should not think it will find the last boundary,
* and in particular, the message could have been damaged during
* transport, the parsing should still be OK */
CAMEL_LOG_FULL_DEBUG ("CamelMultipart:: Entering _read_part\n");
new_line = gmime_read_line_from_stream (stream);
while (new_line && !end_of_part && !last_part) {
end_of_part = (strcmp (new_line, normal_boundary) == 0);
last_part = (strcmp (new_line, end_boundary) == 0);
if (!end_of_part && !last_part) {
if (first_line) {
first_line = FALSE;
camel_stream_write_string (new_part_stream, new_line);
} else camel_stream_write_strings (new_part_stream, "\n", new_line, NULL);
g_free (new_line);
new_line = gmime_read_line_from_stream (stream);
}
}
if (new_line) g_free (new_line);
else last_part = TRUE;
CAMEL_LOG_FULL_DEBUG ("CamelMultipart:: Leaving _read_part\n");
return (last_part);
}
static void
_construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
{
CamelMultipart *multipart = CAMEL_MULTIPART (data_wrapper);
const gchar *boundary;
gchar *real_boundary_line;
gchar *end_boundary_line;
CamelStream *new_part_stream;
gboolean end_of_multipart;
CamelMimeBodyPart *body_part;
CAMEL_LOG_FULL_DEBUG ("Entering CamelMultipart::_construct_from_stream\n");
boundary = camel_multipart_get_boundary (multipart);
g_return_if_fail (boundary);
real_boundary_line = g_strdup_printf ("--%s", boundary);
end_boundary_line = g_strdup_printf ("--%s--", boundary);
/* read the prefix if any */
new_part_stream = camel_stream_mem_new (CAMEL_STREAM_MEM_RW);
end_of_multipart = _read_part (new_part_stream, stream, real_boundary_line, end_boundary_line);
CAMEL_LOG_FULL_DEBUG ("CamelMultipart::construct_from_stream freeing new_part_stream:%p\n", new_part_stream);
gtk_object_unref (GTK_OBJECT (new_part_stream));
if (multipart->preface) g_free (multipart->preface);
/* if ( (new_part->str)[0] != '\0') multipart->preface = g_strdup (new_part->str); */
/* read all the real parts */
while (!end_of_multipart) {
CAMEL_LOG_FULL_DEBUG ("CamelMultipart::construct_from_stream, detected a new part\n");
new_part_stream = camel_stream_mem_new (CAMEL_STREAM_MEM_RW);
body_part = camel_mime_body_part_new ();
end_of_multipart = _read_part ( new_part_stream, stream, real_boundary_line, end_boundary_line);
camel_seekable_stream_seek (new_part_stream, 0, CAMEL_STREAM_SET);
camel_data_wrapper_construct_from_stream (CAMEL_DATA_WRAPPER (body_part), new_part_stream);
camel_multipart_add_part (multipart, body_part);
gtk_object_destroy (GTK_OBJECT (new_part_stream));
}
/* g_string_assign (new_part, ""); */
/* _read_part (new_part, stream, real_boundary_line, end_boundary_line); */
if (multipart->postface) g_free (multipart->postface);
/* if ( (new_part->str)[0] != '\0') multipart->postface = g_strdup (new_part->str); */
/* g_string_free (new_part, TRUE); */
g_free (real_boundary_line);
g_free (end_boundary_line);
CAMEL_LOG_FULL_DEBUG ("Leaving CamelMultipart::_construct_from_stream\n");
}
@ -543,7 +447,6 @@ _localize_part (CamelStream *stream,
gchar *new_line = NULL;
gboolean end_of_part = FALSE;
gboolean last_part = FALSE;
gboolean first_line = TRUE;
guint32 last_position;
/* Note for future enhancements */
@ -553,8 +456,11 @@ _localize_part (CamelStream *stream,
* transport, the parsing should still be OK */
CAMEL_LOG_FULL_DEBUG ("CamelMultipart:: Entering _localize_part\n");
last_position = camel_seekable_stream_get_current_position (stream);
g_assert (CAMEL_IS_SEEKABLE_STREAM (stream));
last_position = camel_seekable_stream_get_current_position (CAMEL_SEEKABLE_STREAM (stream));
new_line = gmime_read_line_from_stream (stream);
while (new_line && !end_of_part && !last_part) {
end_of_part = (strcmp (new_line, normal_boundary) == 0);
last_part = (strcmp (new_line, end_boundary) == 0);
@ -562,7 +468,9 @@ _localize_part (CamelStream *stream,
g_free (new_line);
last_position = camel_seekable_stream_get_current_position (stream);
last_position =
camel_seekable_stream_get_current_position (CAMEL_SEEKABLE_STREAM (stream));
new_line = gmime_read_line_from_stream (stream);
}
}
@ -570,7 +478,7 @@ _localize_part (CamelStream *stream,
if (new_line) g_free (new_line);
else last_part = TRUE;
*end_position = last_position
*end_position = last_position;
CAMEL_LOG_FULL_DEBUG ("CamelMultipart:: Leaving _localize_part\n");
return (last_part);
@ -583,16 +491,18 @@ static void
_set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
{
CamelMultipart *multipart = CAMEL_MULTIPART (data_wrapper);
CamelSeekableStream *seekable_stream = CAMEL_SEEKABLE_STREAM (stream);
const gchar *boundary;
gchar *real_boundary_line;
gchar *end_boundary_line;
CamelStream *new_part_stream;
gboolean end_of_multipart;
CamelMimeBodyPart *body_part;
guint32 part_begining, part_end;
CamelSeekableSubstream *body_part_input_stream;
guint32 saved_stream_pos;
CAMEL_LOG_FULL_DEBUG ("Entering CamelMultipart::_construct_from_stream\n");
CAMEL_LOG_FULL_DEBUG ("Entering CamelMultipart::_set_input_stream\n");
boundary = camel_multipart_get_boundary (multipart);
g_return_if_fail (boundary);
@ -612,9 +522,9 @@ _set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
/* read all the real parts */
while (!end_of_multipart) {
/* determine the position of the begining of the part */
part_begining = camel_seekable_stream_get_current_position (stream);
part_begining = camel_seekable_stream_get_current_position (seekable_stream);
CAMEL_LOG_FULL_DEBUG ("CamelMultipart::construct_from_stream, detected a new part\n");
CAMEL_LOG_FULL_DEBUG ("CamelMultipart::set_input_stream, detected a new part\n");
body_part = camel_mime_body_part_new ();
end_of_multipart = _localize_part (stream,
@ -625,8 +535,18 @@ _set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
camel_seekable_substream_new_with_seekable_stream_and_bounds (seekable_stream,
part_begining,
part_end);
camel_data_wrapper_set_input_stream (CAMEL_DATA_WRAPPER (body_part), body_part_input_stream);
/* the seekable substream may change the position of the stream
so we must save it before calling set_input_stream */
saved_stream_pos = camel_seekable_stream_get_current_position (seekable_stream);
camel_data_wrapper_set_input_stream (CAMEL_DATA_WRAPPER (body_part),
CAMEL_STREAM (body_part_input_stream));
/* restore the stream position */
camel_seekable_stream_seek (seekable_stream, saved_stream_pos, CAMEL_STREAM_SET);
/* add the body part to the multipart object */
camel_multipart_add_part (multipart, body_part);
}
@ -641,5 +561,5 @@ _set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
g_free (real_boundary_line);
g_free (end_boundary_line);
CAMEL_LOG_FULL_DEBUG ("Leaving CamelMultipart::_construct_from_stream\n");
CAMEL_LOG_FULL_DEBUG ("Leaving CamelMultipart::_set_input_stream\n");
}

View File

@ -84,17 +84,25 @@ GtkType camel_multipart_get_type (void);
/* public methods */
CamelMultipart *camel_multipart_new ();
void camel_multipart_add_part (CamelMultipart *multipart, CamelMimeBodyPart *part);
void camel_multipart_add_part_at (CamelMultipart *multipart, CamelMimeBodyPart *part, guint index);
void camel_multipart_remove_part (CamelMultipart *multipart, CamelMimeBodyPart *part);
CamelMimeBodyPart *camel_multipart_remove_part_at (CamelMultipart *multipart, guint index);
CamelMimeBodyPart *camel_multipart_get_part (CamelMultipart *multipart, guint index);
guint camel_multipart_get_number (CamelMultipart *multipart);
void camel_multipart_set_parent (CamelMultipart *multipart, CamelMimePart *parent);
CamelMimePart *camel_multipart_get_parent (CamelMultipart *multipart);
void camel_multipart_set_boundary (CamelMultipart *multipart, gchar *boundary);
const gchar *camel_multipart_get_boundary (CamelMultipart *multipart);
CamelMultipart * camel_multipart_new (void);
void camel_multipart_add_part (CamelMultipart *multipart,
CamelMimeBodyPart *part);
void camel_multipart_add_part_at (CamelMultipart *multipart,
CamelMimeBodyPart *part,
guint index);
void camel_multipart_remove_part (CamelMultipart *multipart,
CamelMimeBodyPart *part);
CamelMimeBodyPart * camel_multipart_remove_part_at (CamelMultipart *multipart,
guint index);
CamelMimeBodyPart * camel_multipart_get_part (CamelMultipart *multipart,
guint index);
guint camel_multipart_get_number (CamelMultipart *multipart);
void camel_multipart_set_parent (CamelMultipart *multipart,
CamelMimePart *parent);
CamelMimePart * camel_multipart_get_parent (CamelMultipart *multipart);
void camel_multipart_set_boundary (CamelMultipart *multipart,
gchar *boundary);
const gchar * camel_multipart_get_boundary (CamelMultipart *multipart);

View File

@ -142,11 +142,14 @@ _destroy (GtkObject *object)
static void
_finalize (GtkObject *object)
{
CamelSeekableStream *seekable_stream;
CAMEL_LOG_FULL_DEBUG ("Entering CamelSeekableSubstream::finalize\n");
/* does nothing for the moment */
seekable_stream = CAMEL_SEEKABLE_STREAM (object);
if (seekable_stream->parent_stream)
gtk_object_unref (seekable_stream->parent_stream);
GTK_OBJECT_CLASS (parent_class)->finalize (object);
CAMEL_LOG_FULL_DEBUG ("Leaving CamelSeekableSubstream::finalize\n");
}
@ -165,8 +168,6 @@ _set_bounds (CamelSeekableSubstream *seekable_substream, guint32 inf_bound, gint
seekable_substream->inf_bound = inf_bound;
seekable_substream->sup_bound = sup_bound;
/* go to the first position */
camel_seekable_stream_seek (seekable_substream->parent_stream, inf_bound, SEEK_SET);
seekable_substream->cur_pos = 0;
@ -194,7 +195,8 @@ _init_with_seekable_stream_and_bounds (CamelSeekableSubstream *seekable_substre
/* store the parent stream */
seekable_substream->parent_stream = parent_stream;
gtk_object_ref (parent_stream);
/* set the bound of the substream */
_set_bounds (seekable_substream, inf_bound, sup_bound);
}
@ -245,7 +247,6 @@ _read (CamelStream *stream, gchar *buffer, gint n)
g_assert (stream);
g_assert (seekable_substream->parent_stream);
g_assert (seekable_substream->open);
@ -300,14 +301,7 @@ _read (CamelStream *stream, gchar *buffer, gint n)
seekable_stream->cur_pos += v;
#if 0
/* restore the parent position */
camel_seekable_stream_seek (seekable_substream->parent_stream,
parent_stream_current_position,
CAMEL_STREAM_SET);
#endif
/* return the number of bytes read */
return v;
}
@ -384,11 +378,10 @@ _eos (CamelStream *stream)
gboolean eos;
g_assert (stream);
g_assert (seekable_substream->open);
if (seekable_substream->sup_bound != -1) {
substream_len = seekable_substream->sup_bound - seekable_substream->inf_bound;
eos = ( seekable_stream->cur_pos > substream_len);
eos = ( seekable_stream->cur_pos >= substream_len);
} else {
eos = camel_stream_eos (CAMEL_STREAM (seekable_substream->parent_stream));
}

View File

@ -63,12 +63,21 @@ struct _CamelStore
typedef struct {
CamelServiceClass parent_class;
void (*init) (CamelStore *store, CamelSession *session, const gchar *url_name, CamelException *ex);
void (*set_separator) (CamelStore *store, gchar sep, CamelException *ex);
gchar (*get_separator) (CamelStore *store, CamelException *ex);
CamelFolder * (*get_folder) (CamelStore *store, const gchar *folder_name, CamelException *ex);
CamelFolder * (*get_root_folder) (CamelStore *store, CamelException *ex);
CamelFolder * (*get_default_folder) (CamelStore *store, CamelException *ex);
void (*init) (CamelStore *store,
CamelSession *session,
const gchar *url_name,
CamelException *ex);
void (*set_separator) (CamelStore *store, gchar sep,
CamelException *ex);
gchar (*get_separator) (CamelStore *store,
CamelException *ex);
CamelFolder * (*get_folder) (CamelStore *store,
const gchar *folder_name,
CamelException *ex);
CamelFolder * (*get_root_folder) (CamelStore *store,
CamelException *ex);
CamelFolder * (*get_default_folder) (CamelStore *store,
CamelException *ex);
} CamelStoreClass;
@ -78,10 +87,10 @@ typedef struct {
/* Standard Gtk function */
GtkType camel_store_get_type (void);
void camel_store_init (CamelStore *store, CamelSession *session, const gchar *url_name, CamelException *ex);
CamelFolder *camel_store_get_folder (CamelStore *store, const gchar *folder_name, CamelException *ex);
gchar camel_store_get_separator (CamelStore *store, CamelException *ex);
CamelSession *camel_store_get_session (CamelStore *store, CamelException *ex);
void camel_store_init (CamelStore *store, CamelSession *session, const gchar *url_name, CamelException *ex);
CamelFolder * camel_store_get_folder (CamelStore *store, const gchar *folder_name, CamelException *ex);
gchar camel_store_get_separator (CamelStore *store, CamelException *ex);
CamelSession * camel_store_get_session (CamelStore *store, CamelException *ex);
#ifdef __cplusplus
}

View File

@ -481,11 +481,12 @@ _seek (CamelSeekableStream *stream, gint offset, CamelStreamSeekPolicy policy)
gint real_offset;
CamelStreamFs *stream_fs = CAMEL_STREAM_FS (stream);
#if 0
/* because we don't know what is going to happen, we
set the eof stream to false so that a reread can
occur */
stream_fs->eof = FALSE;
#endif
switch (policy) {
case CAMEL_STREAM_SET:
real_offset = MAX (stream_fs->inf_bound + offset, stream_fs->inf_bound);
@ -525,7 +526,10 @@ _seek (CamelSeekableStream *stream, gint offset, CamelStreamSeekPolicy policy)
printf ("***** Seeking : real_offset=%d, whence=%d\n", real_offset, whence);
return_position = lseek (stream_fs->fd, real_offset, whence) - stream_fs->inf_bound;
printf ("*** *** *** *** ***\n");
CAMEL_SEEKABLE_STREAM (stream)->cur_pos = return_position;

View File

@ -72,7 +72,7 @@ _init_notify_system (CamelThreadProxy *proxy);
* Return value: The newly created proxy object
**/
CamelThreadProxy *
camel_thread_proxy_new ()
camel_thread_proxy_new (void)
{
CamelThreadProxy *proxy;
@ -137,7 +137,6 @@ camel_thread_proxy_free (CamelThreadProxy *proxy)
void
_op_run_free_and_notify (CamelOp *op)
{
gboolean error;
CamelThreadProxy *th_proxy;
CAMEL_LOG_FULL_DEBUG ("Entering CamelThreadProxy::_op_run_free_and_notify\n");
@ -163,7 +162,6 @@ _run_next_op_in_thread (CamelThreadProxy *proxy)
{
CamelOp *op;
CamelOpQueue *server_op_queue;
CamelThreadProxy *th_proxy;
pthread_t thread;
CAMEL_LOG_FULL_DEBUG ("Entering CamelThreadProxy::_run_next_op_in_thread\n");
@ -260,7 +258,6 @@ _run_next_cb (CamelThreadProxy *proxy)
{
CamelOp *op;
CamelOpQueue *client_op_queue;
CamelThreadProxy *th_proxy;
CAMEL_LOG_FULL_DEBUG ("Entering CamelThreadProxy::_run_next_cb\n");
client_op_queue = proxy->client_op_queue;
@ -476,7 +473,6 @@ camel_thread_proxy_add_signals (CamelThreadProxy *proxy,
GtkObject *real_object,
char *signal_to_proxy[])
{
GtkType camel_folder_type;
guint i;
CAMEL_LOG_FULL_DEBUG ("Entering CamelThreadProxy::camel_thread_proxy_init_signals\n");

View File

@ -69,7 +69,7 @@ typedef struct {
} CamelThreadProxy;
CamelThreadProxy *camel_thread_proxy_new ();
CamelThreadProxy *camel_thread_proxy_new (void);
void camel_thread_proxy_free (CamelThreadProxy *proxy);
void camel_thread_proxy_push_op (CamelThreadProxy *proxy, CamelOp *op);

View File

@ -27,7 +27,7 @@
#include "camel.h"
gint
camel_init()
camel_init(void)
{

View File

@ -62,7 +62,7 @@ extern "C" {
#include <camel/string-utils.h>
#include <camel/url-util.h>
gint camel_init ();
gint camel_init (void);
#ifdef __cplusplus
}

View File

@ -210,11 +210,13 @@ g_string_append_g_string(GString *dest_string, GString *other_string)
*
* Return value:
**/
gint
g_string_equal_for_hash (gconstpointer v, gconstpointer v2)
{
return strcmp ( ((const GString*)v)->str, ((const GString*)v2)->str) == 0;
}
gint
g_string_equal_for_glist (gconstpointer v, gconstpointer v2)
{
return !strcmp ( ((const GString*)v)->str, ((const GString*)v2)->str) == 0;

View File

@ -4,7 +4,6 @@ SUBDIRS =
libcamelmboxincludedir = $(includedir)/camel
providerdir = $(libdir)/evolution/camel-providers/$(VERSION)
provider_LTLIBRARIES = libcamelmbox.la

View File

@ -65,7 +65,6 @@ gchar
string_dichotomy (const gchar *string, gchar sep, gchar **prefix, gchar **suffix,
StringDichotomyOption options)
{
gchar *tmp_str;
gint sep_pos, first, last, len;
g_assert (string);