+ buffer length of the stream to create strings which are then + printed, rather than printing the stream (which might not have a + trailing \0) directly. + + * camel/camel-formatter.c (str_tolower): New function; makes a + string lowercase. svn path=/trunk/; revision=1698
92 lines
2.3 KiB
C
92 lines
2.3 KiB
C
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
/* Based on 'test2.c'; tests the camel-formatter class */
|
|
#include "gmime-utils.h"
|
|
#include "stdio.h"
|
|
#include "camel-log.h"
|
|
#include "camel-mime-message.h"
|
|
#include "camel-mime-part.h"
|
|
#include "camel-stream.h"
|
|
#include "camel-stream-fs.h"
|
|
#include "camel.h"
|
|
#include "camel-formatter.h"
|
|
|
|
static void
|
|
convert_to_html_and_print (CamelMimeMessage *msg)
|
|
{
|
|
CamelFormatter* cmf = camel_formatter_new();
|
|
gchar* header_str;
|
|
gchar* body_str;
|
|
|
|
CamelStream* header_stream =
|
|
camel_stream_mem_new (CAMEL_STREAM_FS_WRITE);
|
|
CamelStream* body_stream =
|
|
camel_stream_mem_new (CAMEL_STREAM_FS_WRITE);
|
|
camel_formatter_mime_message_to_html (
|
|
cmf, msg, header_stream, body_stream);
|
|
|
|
header_str = g_strndup (
|
|
CAMEL_STREAM_MEM (header_stream)->buffer->data,
|
|
CAMEL_STREAM_MEM (header_stream)->buffer->len);
|
|
body_str = g_strndup (
|
|
CAMEL_STREAM_MEM (body_stream)->buffer->data,
|
|
CAMEL_STREAM_MEM (body_stream)->buffer->len);
|
|
g_print ("Header follows\n----------------------\n%s\n",
|
|
header_str);
|
|
g_print ("Body follows\n----------------------\n%s\n",
|
|
body_str);
|
|
|
|
g_free (header_str);
|
|
g_free (body_str);
|
|
}
|
|
|
|
static void
|
|
print_usage_and_quit()
|
|
{
|
|
g_print ("\nUsage: test-formatter [MIME-MESSAGE-FILE]\n\n");
|
|
g_print ("Where MIME-MESSAGE-FILE is in the \"message/rfc822\"\n");
|
|
g_print ("mime format.\n\n");
|
|
|
|
exit(0);
|
|
}
|
|
|
|
|
|
int
|
|
main (int argc, char**argv)
|
|
{
|
|
GHashTable *header_table;
|
|
CamelMimeMessage *message;
|
|
CamelStream *input_stream;
|
|
|
|
// CamelStream *foo = CAMEL_STREAM(NULL);
|
|
|
|
gtk_init (&argc, &argv);
|
|
if (argc == 1 || argc > 2)
|
|
print_usage_and_quit();
|
|
|
|
camel_init ();
|
|
camel_debug_level = CAMEL_LOG_LEVEL_FULL_DEBUG;
|
|
|
|
message = camel_mime_message_new_with_session( (CamelSession *)NULL);
|
|
|
|
input_stream = camel_stream_fs_new_with_name (
|
|
argv[1], CAMEL_STREAM_FS_READ);
|
|
|
|
if (!input_stream) {
|
|
perror ("could not open input file");
|
|
printf ("You must create the file mail.test before running this test");
|
|
exit(2);
|
|
}
|
|
|
|
camel_data_wrapper_construct_from_stream (
|
|
CAMEL_DATA_WRAPPER (message), input_stream);
|
|
|
|
camel_debug_level = CAMEL_LOG_LEVEL_FULL_DEBUG;
|
|
convert_to_html_and_print (message);
|
|
|
|
|
|
camel_stream_close (input_stream);
|
|
gtk_object_unref (GTK_OBJECT (input_stream));
|
|
|
|
return 0;
|
|
}
|