aboutsummaryrefslogtreecommitdiffstats
path: root/composer/evolution-composer.c
diff options
context:
space:
mode:
authorJon Trowbridge <trow@ximian.com>2001-09-09 12:10:54 +0800
committerJon Trowbridge <trow@src.gnome.org>2001-09-09 12:10:54 +0800
commit936f363f4fb199da202d9c3e07a68ee369536fb4 (patch)
tree732de024a37bf8c053f1e005bd5693bf38cd7e80 /composer/evolution-composer.c
parent91a2ff89c4ffe82aa07be175fb623b329d3d6a61 (diff)
downloadgsoc2013-evolution-936f363f4fb199da202d9c3e07a68ee369536fb4.tar.gz
gsoc2013-evolution-936f363f4fb199da202d9c3e07a68ee369536fb4.tar.zst
gsoc2013-evolution-936f363f4fb199da202d9c3e07a68ee369536fb4.zip
Originally was corba_recipientlist_to_glist. (impl_Composer_set_headers):
2001-09-08 Jon Trowbridge <trow@ximian.com> * evolution-composer.c (corba_recipientlist_to_destv): Originally was corba_recipientlist_to_glist. (impl_Composer_set_headers): Use corba_recipientlist_to_destv, new destination-based api. * e-msg-composer.c (build_message): Get rid of that 'sending' stuff. That was a bad idea. (e_msg_composer_new_with_message): Apply the revised api and work with vectors of destinations rather than just lists. (e_msg_composer_get_recipients): Added. Returns the full set of recipient destinations in a vector. * e-msg-composer-hdrs.c: Removed free_destv function. We use e_destination_freev instead. (e_msg_composer_hdrs_get_to): Changed to return a vector of EDestinations. This function now works. (e_msg_composer_hdrs_get_cc): Ditto. (e_msg_composer_hdrs_get_bcc): Ditto. (e_msg_composer_hdrs_get_recipients): Added. Returns a vector of EDestinations that is the union of the to, cc and bcc lines. (e_msg_composer_hdrs_set_to): Changed to take a vector of EDestinations, rather than a GList. (e_msg_composer_hdrs_set_cc): Ditto. (e_msg_composer_hdrs_set_bcc): Ditto. (e_msg_composer_hdrs_to_message): Use our new, improved API, rather than a bunch of poking around in BonoboPropertyBags, etc. svn path=/trunk/; revision=12711
Diffstat (limited to 'composer/evolution-composer.c')
-rw-r--r--composer/evolution-composer.c57
1 files changed, 23 insertions, 34 deletions
diff --git a/composer/evolution-composer.c b/composer/evolution-composer.c
index 6dfddf1202..6a24186fa2 100644
--- a/composer/evolution-composer.c
+++ b/composer/evolution-composer.c
@@ -44,40 +44,30 @@ static void (*postpone_cb) (EMsgComposer *, gpointer);
static POA_GNOME_Evolution_Composer__vepv Composer_vepv;
-static GList *
-corba_recipientlist_to_glist (const GNOME_Evolution_Composer_RecipientList *cl)
+static EDestination **
+corba_recipientlist_to_destv (const GNOME_Evolution_Composer_RecipientList *cl)
{
GNOME_Evolution_Composer_Recipient *recip;
- GList *gl = NULL;
- char *str;
+ EDestination **destv;
int i;
- for (i = cl->_length - 1; i >= 0; i--) {
- recip = &(cl->_buffer[i]);
+ if (cl->_length == 0)
+ return NULL;
- /* Let's copy this code into yet another place! */
- if (*recip->name) {
- str = camel_internet_address_format_address (recip->name, recip->address);
- } else
- str = g_strdup (recip->address);
-
- gl = g_list_prepend (gl, str);
- }
+ destv = g_new (EDestination *, cl->_length+1);
- return gl;
-}
+ for (i = 0; i < cl->_length; ++i) {
+ recip = &(cl->_buffer[i]);
-static void
-free_recipient_glist (GList *gl)
-{
- GList *tmp;
+ destv[i] = e_destination_new ();
- while (gl) {
- tmp = gl->next;
- g_free (gl->data);
- g_list_free_1 (gl);
- gl = tmp;
+ if (*recip->name)
+ e_destination_set_name (destv[i], recip->name);
+ e_destination_set_email (destv[i], recip->address);
+
}
+
+ return destv;
}
static void
@@ -90,21 +80,20 @@ impl_Composer_set_headers (PortableServer_Servant servant,
{
BonoboObject *bonobo_object;
EvolutionComposer *composer;
- GList *gto, *gcc, *gbcc;
+ EDestination **tov, **ccv, **bccv;
bonobo_object = bonobo_object_from_servant (servant);
composer = EVOLUTION_COMPOSER (bonobo_object);
- gto = corba_recipientlist_to_glist (to);
- gcc = corba_recipientlist_to_glist (cc);
- gbcc = corba_recipientlist_to_glist (bcc);
+ tov = corba_recipientlist_to_destv (to);
+ ccv = corba_recipientlist_to_destv (cc);
+ bccv = corba_recipientlist_to_destv (bcc);
- e_msg_composer_set_headers (composer->composer, NULL, gto, gcc, gbcc,
- subject);
+ e_msg_composer_set_headers (composer->composer, NULL, tov, ccv, bccv, subject);
- free_recipient_glist (gto);
- free_recipient_glist (gcc);
- free_recipient_glist (gbcc);
+ e_destination_freev (tov);
+ e_destination_freev (ccv);
+ e_destination_freev (bccv);
}
static void