gmime r1429 - in trunk: . docs/reference examples gmime
- From: fejj svn gnome org
- To: svn-commits-list gnome org
- Subject: gmime r1429 - in trunk: . docs/reference examples gmime
- Date: Sun, 7 Sep 2008 13:50:09 +0000 (UTC)
Author: fejj
Date: Sun Sep 7 13:50:08 2008
New Revision: 1429
URL: http://svn.gnome.org/viewvc/gmime?rev=1429&view=rev
Log:
2008-09-07 Jeffrey Stedfast <fejj novell com>
* examples/basic-example.c: Updated for the foreach() changes.
* gmime/gmime-multipart.c (g_mime_multipart_foreach): Changed to
be recursive. The callback function signature has changed a bit to
be more useful as well by providing the parent MIME object.
* gmime/gmime-message.c (g_mime_message_foreach): Same.
Modified:
trunk/ChangeLog
trunk/docs/reference/gmime-sections.txt
trunk/examples/basic-example.c
trunk/gmime.spec.in
trunk/gmime/gmime-message.c
trunk/gmime/gmime-message.h
trunk/gmime/gmime-multipart.c
trunk/gmime/gmime-multipart.h
trunk/gmime/gmime-object.h
Modified: trunk/docs/reference/gmime-sections.txt
==============================================================================
--- trunk/docs/reference/gmime-sections.txt (original)
+++ trunk/docs/reference/gmime-sections.txt Sun Sep 7 13:50:08 2008
@@ -666,7 +666,7 @@
<SECTION>
<FILE>gmime-object</FILE>
GMimeObject
-GMimePartFunc
+GMimeObjectForeachFunc
g_mime_object_register_type
g_mime_object_new
g_mime_object_new_type
@@ -838,7 +838,7 @@
g_mime_message_get_message_id
g_mime_message_set_mime_part
g_mime_message_get_mime_part
-g_mime_message_foreach_part
+g_mime_message_foreach
<SUBSECTION Private>
g_mime_message_get_type
Modified: trunk/examples/basic-example.c
==============================================================================
--- trunk/examples/basic-example.c (original)
+++ trunk/examples/basic-example.c Sun Sep 7 13:50:08 2008
@@ -131,27 +131,27 @@
static void
-count_foreach_callback (GMimeObject *part, gpointer user_data)
+count_foreach_callback (GMimeObject *parent, GMimeObject *part, gpointer user_data)
{
int *count = user_data;
(*count)++;
- /* 'part' points to the current part node that g_mime_message_foreach_part() is iterating over */
+ /* 'part' points to the current part node that
+ * g_mime_message_foreach() is iterating over */
/* find out what class 'part' is... */
if (GMIME_IS_MESSAGE_PART (part)) {
/* message/rfc822 or message/news */
GMimeMessage *message;
- /* g_mime_message_foreach_part() won't descend into
+ /* g_mime_message_foreach() won't descend into
child message parts, so if we want to count any
subparts of this child message, we'll have to call
- g_mime_message_foreach_part() again here. */
+ g_mime_message_foreach() again here. */
message = g_mime_message_part_get_message ((GMimeMessagePart *) part);
- g_mime_message_foreach_part (message, count_foreach_callback, count);
- g_object_unref (message);
+ g_mime_message_foreach (message, count_foreach_callback, count);
} else if (GMIME_IS_MESSAGE_PARTIAL (part)) {
/* message/partial */
@@ -162,11 +162,15 @@
piece this back together again once we get all the
parts? */
} else if (GMIME_IS_MULTIPART (part)) {
- /* multipart/mixed, multipart/alternative, multipart/related, multipart/signed, multipart/encrypted, etc... */
+ /* multipart/mixed, multipart/alternative,
+ * multipart/related, multipart/signed,
+ * multipart/encrypted, etc... */
- /* we'll get to finding out if this is a signed/encrypted multipart later... */
+ /* we'll get to finding out if this is a
+ * signed/encrypted multipart later... */
} else if (GMIME_IS_PART (part)) {
- /* a normal leaf part, could be text/plain or image/jpeg etc */
+ /* a normal leaf part, could be text/plain or
+ * image/jpeg etc */
} else {
g_assert_not_reached ();
}
@@ -177,14 +181,15 @@
{
int count = 0;
- /* count the number of parts (recursively) in the message including the container multiparts */
- g_mime_message_foreach_part (message, count_foreach_callback, &count);
+ /* count the number of parts (recursively) in the message
+ * including the container multiparts */
+ g_mime_message_foreach (message, count_foreach_callback, &count);
printf ("There are %d parts in the message\n", count);
}
static void
-verify_foreach_callback (GMimeObject *part, gpointer user_data)
+verify_foreach_callback (GMimeObject *parent, GMimeObject *part, gpointer user_data)
{
GMimeCipherContext *ctx = user_data;
@@ -235,7 +240,7 @@
verify_signed_parts (GMimeMessage *message, GMimeCipherContext *ctx)
{
/* descend the mime tree and verify any signed parts */
- g_mime_message_foreach_part (message, verify_foreach_callback, ctx);
+ g_mime_message_foreach (message, verify_foreach_callback, ctx);
}
static void
Modified: trunk/gmime.spec.in
==============================================================================
--- trunk/gmime.spec.in (original)
+++ trunk/gmime.spec.in Sun Sep 7 13:50:08 2008
@@ -24,7 +24,7 @@
Group: Development/Libraries
URL: http://spruce.sourceforge.net/gmime/
-Source: http://spruce.sourceforge.net/gmime/sources/v2.4/gmime-%{version}.tar.gz
+Source: ftp://ftp.gnome.org/pub/GNOME/sources/gmime/2.4/gmime-%{version}.tar.bz2
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
Requires: glib2 >= 2.0.0
Modified: trunk/gmime/gmime-message.c
==============================================================================
--- trunk/gmime/gmime-message.c (original)
+++ trunk/gmime/gmime-message.c Sun Sep 7 13:50:08 2008
@@ -1458,21 +1458,21 @@
/**
- * g_mime_message_foreach_part:
- * @message: MIME message
+ * g_mime_message_foreach:
+ * @message: a #GMimeMessage
* @callback: function to call on each of the mime parts contained by the mime message
- * @data: extra data to pass to the callback
+ * @user_data: user-supplied callback data
*
- * Calls @callback on each of the mime parts in the mime message.
+ * Recursively calls @callback on each of the mime parts in the mime message.
**/
void
-g_mime_message_foreach_part (GMimeMessage *message, GMimePartFunc callback, gpointer data)
+g_mime_message_foreach (GMimeMessage *message, GMimeObjectForeachFunc callback, gpointer user_data)
{
g_return_if_fail (GMIME_IS_MESSAGE (message));
g_return_if_fail (callback != NULL);
+ callback ((GMimeObject *) message, message->mime_part, user_data);
+
if (GMIME_IS_MULTIPART (message->mime_part))
- g_mime_multipart_foreach (GMIME_MULTIPART (message->mime_part), callback, data);
- else
- callback (message->mime_part, data);
+ g_mime_multipart_foreach ((GMimeMultipart *) message->mime_part, callback, user_data);
}
Modified: trunk/gmime/gmime-message.h
==============================================================================
--- trunk/gmime/gmime-message.h (original)
+++ trunk/gmime/gmime-message.h Sun Sep 7 13:50:08 2008
@@ -120,7 +120,8 @@
GMimeObject *g_mime_message_get_mime_part (GMimeMessage *message);
void g_mime_message_set_mime_part (GMimeMessage *message, GMimeObject *mime_part);
-void g_mime_message_foreach_part (GMimeMessage *message, GMimePartFunc callback, gpointer data);
+void g_mime_message_foreach (GMimeMessage *message, GMimeObjectForeachFunc callback,
+ gpointer user_data);
G_END_DECLS
Modified: trunk/gmime/gmime-multipart.c
==============================================================================
--- trunk/gmime/gmime-multipart.c (original)
+++ trunk/gmime/gmime-multipart.c Sun Sep 7 13:50:08 2008
@@ -813,27 +813,37 @@
}
+static void
+multipart_foreach (GMimeMultipart *multipart, GMimeObjectForeachFunc callback, gpointer user_data)
+{
+ GMimeObject *part;
+ guint i;
+
+ for (i = 0; i < multipart->children->len; i++) {
+ part = (GMimeObject *) multipart->children->pdata[i];
+ callback ((GMimeObject *) multipart, part, user_data);
+
+ if (GMIME_IS_MULTIPART (part))
+ multipart_foreach ((GMimeMultipart *) part, callback, user_data);
+ }
+}
+
+
/**
* g_mime_multipart_foreach:
- * @multipart: a multipart
- * @callback: function to call for @multipart and all of its subparts
- * @user_data: extra data to pass to the callback
+ * @multipart: a #GMimeMultipart
+ * @callback: function to call for each of @multipart's subparts.
+ * @user_data: user-supplied callback data
*
- * Calls @callback on each of @multipart's subparts.
+ * Recursively calls @callback on each of @multipart's subparts.
**/
void
-g_mime_multipart_foreach (GMimeMultipart *multipart, GMimePartFunc callback, gpointer user_data)
+g_mime_multipart_foreach (GMimeMultipart *multipart, GMimeObjectForeachFunc callback, gpointer user_data)
{
- GMimeObject *part;
- guint i;
-
g_return_if_fail (GMIME_IS_MULTIPART (multipart));
g_return_if_fail (callback != NULL);
- for (i = 0; i < multipart->children->len; i++) {
- part = multipart->children->pdata[i];
- callback (part, user_data);
- }
+ multipart_foreach (multipart, callback, user_data);
}
Modified: trunk/gmime/gmime-multipart.h
==============================================================================
--- trunk/gmime/gmime-multipart.h (original)
+++ trunk/gmime/gmime-multipart.h Sun Sep 7 13:50:08 2008
@@ -105,7 +105,8 @@
void g_mime_multipart_set_boundary (GMimeMultipart *multipart, const char *boundary);
const char *g_mime_multipart_get_boundary (GMimeMultipart *multipart);
-void g_mime_multipart_foreach (GMimeMultipart *multipart, GMimePartFunc callback, gpointer user_data);
+void g_mime_multipart_foreach (GMimeMultipart *multipart, GMimeObjectForeachFunc callback,
+ gpointer user_data);
GMimeObject *g_mime_multipart_get_subpart_from_content_id (GMimeMultipart *multipart,
const char *content_id);
Modified: trunk/gmime/gmime-object.h
==============================================================================
--- trunk/gmime/gmime-object.h (original)
+++ trunk/gmime/gmime-object.h Sun Sep 7 13:50:08 2008
@@ -80,14 +80,15 @@
/**
- * GMimePartFunc:
- * @part: A MIME part.
+ * GMimeObjectForeachFunc:
+ * @parent: parent #GMimeObject
+ * @part: a #GMimeObject
* @user_data: User-supplied callback data.
*
- * The function signature for a callback to
- * g_mime_message_foreach_part() and g_mime_multipart_foreach().
+ * The function signature for a callback to g_mime_message_foreach()
+ * and g_mime_multipart_foreach().
**/
-typedef void (* GMimePartFunc) (GMimeObject *part, gpointer user_data);
+typedef void (* GMimeObjectForeachFunc) (GMimeObject *parent, GMimeObject *part, gpointer user_data);
GType g_mime_object_get_type (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]