/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * evolution-sendmail.c - * Copyright (C) 2002, Ximian, Inc. * * Authors: * Christopher James Lahey * * This file is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License * as published by the Free Software Foundation. * * This file 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 file; if not, write to * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. **/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define READ_CHUNK_SIZE 8192 #define E_SHELL_OAFIID "OAFIID:GNOME_Evolution_Shell" #define COMPOSER_OAFIID "OAFIID:GNOME_Evolution_Mail_Composer" #define NOTNULL(x) ((x) ? (x) : "") typedef struct { char *filename; char *basename; char *content; int size; char *description; char *content_type; gboolean show_inline; } attachment_t; GList *attachments; /* Of type attachment_t */ char *subject; static void free_attachment (attachment_t *attachment) { g_free (attachment->content); g_free (attachment->filename); g_free (attachment->basename); g_free (attachment->content_type); g_free (attachment->description); g_free (attachment); } static GnomeVFSResult elc_read_entire_file (const char *uri, int *file_size, char **file_contents, char **content_type) { GnomeVFSResult result; GnomeVFSHandle *handle; char *buffer; GnomeVFSFileSize total_bytes_read; GnomeVFSFileSize bytes_read; *file_size = 0; *file_contents = NULL; /* Open the file. */ result = gnome_vfs_open (&handle, uri, GNOME_VFS_OPEN_READ); if (result != GNOME_VFS_OK) { return result; } /* Read the whole thing. */ buffer = NULL; total_bytes_read = 0; do { buffer = g_realloc (buffer, total_bytes_read + READ_CHUNK_SIZE); result = gnome_vfs_read (handle, buffer + total_bytes_read, READ_CHUNK_SIZE, &bytes_read); if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { g_free (buffer); gnome_vfs_close (handle); return result; } /* Check for overflow. */ if (total_bytes_read + bytes_read < total_bytes_read) { g_free (buffer); gnome_vfs_close (handle); return GNOME_VFS_ERROR_TOO_BIG; } total_bytes_read += bytes_read; } while (result == GNOME_VFS_OK); if (content_type) { GnomeVFSFileInfo *info; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_from_handle (handle, info, GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS); if (result == GNOME_VFS_OK) *content_type = g_strdup (gnome_vfs_file_info_get_mime_type (info)); else *content_type = g_strdup ("application/octet-stream"); gnome_vfs_file_info_unref (info); } /* Close the file. */ result = gnome_vfs_close (handle); if (result != GNOME_VFS_OK) { g_free (buffer); return result; } /* Return the file. */ *file_size = total_bytes_read; *file_contents = g_realloc (buffer, total_bytes_read); return GNOME_VFS_OK; } static void do_send (GNOME_Evolution_Composer composer_server) { CORBA_Environment ev; GNOME_Evolution_Composer_AttachmentData *attach_data; GNOME_Evolution_Composer_RecipientList *to_list, *cc_list, *bcc_list; CORBA_exception_init (&ev); attachments = g_list_reverse (attachments); while (attachments) { attachment_t *attachment = attachments->data; attach_data = GNOME_Evolution_Composer_AttachmentData__alloc(); attach_data->_maximum = attach_data->_length = attachment->size; attach_data->_buffer = CORBA_sequence_CORBA_char_allocbuf (attach_data->_length); strcpy (attach_data->_buffer, attachment->content); GNOME_Evolution_Composer_attachData (composer_server, NOTNULL (attachment->content_type), NOTNULL (attachment->basename), NOTNULL (attachment->description), attachment->show_inline, attach_data, &ev); if (ev._major != CORBA_NO_EXCEPTION) { g_printerr ("evolution-sendmail.c: I couldn't attach data to the composer via CORBA! Aagh.\n"); CORBA_exception_free (&ev); return; } CORBA_free (attach_data); free_attachment (attachment); attachments = g_list_delete_link (attachments, attachments); } to_list = GNOME_Evolution_Composer_RecipientList__alloc (); to_list->_maximum = to_list->_length = 0; cc_list = GNOME_Evolution_Composer_RecipientList__alloc (); cc_list->_maximum = cc_list->_length = 0; bcc_list = GNOME_Evolution_Composer_RecipientList__alloc (); bcc_list->_maximum = bcc_list->_length = 0; GNOME_Evolution_Composer_setHeaders (composer_server, "", to_list, cc_list, bcc_list, NOTNULL (subject), &ev); CORBA_free (to_list); CORBA_free (cc_list); CORBA_free (bcc_list); GNOME_Evolution_Composer_show (composer_server, &ev); if (ev._major != CORBA_NO_EXCEPTION) { g_printerr ("evolution-sendmail.c: I couldn't show the composer via CORBA! Aagh.\n"); CORBA_exception_free (&ev); return; } CORBA_exception_free (&ev); } static GNOME_Evolution_Composer get_composer () { CORBA_Object shell; GNOME_Evolution_Composer composer; /* First, I obtain an object reference that represents the Shell, to make sure it's running. */ shell = bonobo_activation_activate_from_id (E_SHELL_OAFIID, 0, NULL, NULL); printf ("shell == %p\n", shell); g_return_val_if_fail (shell != CORBA_OBJECT_NIL, NULL); /* Next, I obtain an object reference that represents the Composer. */ composer = bonobo_activation_activate_from_id (COMPOSER_OAFIID, 0, NULL, NULL); printf ("composer == %p\n", composer); return composer; } static gboolean composer_timeout (gpointer data) { GNOME_Evolution_Composer composer; composer = get_composer (); if (composer != CORBA_OBJECT_NIL) { do_send (composer); gtk_main_quit (); return FALSE; } else { return TRUE; } } static void cb (poptContext con, enum poptCallbackReason reason, /*@null@*/ const struct poptOption * opt, /*@null@*/ const char * arg, /*@null@*/ const void * data) { const char *name = opt->longName; if (!strcmp (name, "add-attachment")) { attachment_t *new_attach = g_new (attachment_t, 1); new_attach->filename = g_strdup (arg); new_attach->basename = strrchr (new_attach->filename, '/'); if (new_attach->basename) new_attach->basename ++; else new_attach->basename = new_attach->filename; new_attach->basename = g_strdup (new_attach->basename); if (new_attach->filename) elc_read_entire_file (new_attach->filename, &new_attach->size, &new_attach->content, &new_attach->content_type); new_attach->description = NULL; new_attach->show_inline = FALSE; if (new_attach->content) { attachments = g_list_prepend (attachments, new_attach); } else { free_attachment (new_attach); } } else if (!strcmp (name, "file-name")) { if (attachments) { attachment_t *attachment = attachments->data; g_free (attachment->basename); attachment->basename = g_strdup (arg); } else { } } else if (!strcmp (name, "content-type")) { if (attachments) { attachment_t *attachment = attachments->data; if (attachment->content_type) { } attachment->content_type = g_strdup (arg); } else { } } else if (!strcmp (name, "description")) { if (attachments) { attachment_t *attachment = attachments->data; if (attachment->description) { } attachment->description = g_strdup (arg); } else { } } else if (!strcmp (name, "show-inline")) { if (attachments) { attachment_t *attachment = attachments->data; if (attachment->show_inline) { } attachment->show_inline = TRUE; } else { } } } static struct poptOption cap_options[] = { { NULL, '\0', POPT_ARG_CALLBACK, cb, 0, NULL, NULL }, { "add-attachment", 'a', POPT_ARG_STRING, NULL, 0, N_("An attachment to add."), NULL }, { "content-type", 't', POPT_ARG_STRING, NULL, 0, N_("Content type of the attachment."), NULL }, { "file-name", 'f', POPT_ARG_STRING, NULL, 0, N_("The filename to display in the mail."), NULL }, { "description", 'd', POPT_ARG_STRING, NULL, 0, N_("Description of the attachment."), NULL }, { "show-inline", 'i', POPT_ARG_NONE, NULL, 0, N_("Mark attachment to be shown inline by default."), NULL }, { "subject", 's', POPT_ARG_STRING, &subject, 0, N_("Default subject for the message."), NULL }, { NULL, '\0', 0, NULL, 0 } }; int main(int argc, char *argv[]) { GNOME_Evolution_Composer composer; bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR); textdomain (PACKAGE); gnome_program_init ("evolution-launch-composer", VERSION, LIBGNOMEUI_MODULE, argc, argv, GNOME_PROGRAM_STANDARD_PROPERTIES, GNOME_PARAM_POPT_TABLE, cap_options, NULL); composer = get_composer (); if (composer != CORBA_OBJECT_NIL) { do_send (composer); } else { g_timeout_add(1000, composer_timeout, NULL); bonobo_main (); } return 0; } usersJeffrey Stedfast2002-04-302-12/+29 * Strip leading/trailing whitespace from the username because usersJeffrey Stedfast2002-04-302-1/+8 * clean up propmanager initialization code.Larry Ewing2002-04-293-32/+26 * handle requests for the font manager control.Larry Ewing2002-04-2910-430/+688 * use the html reply logic even for plain parts so that we can test out theLarry Ewing2002-04-292-2/+8 * add const to silence warning.Larry Ewing2002-04-293-1/+17 * Don't link with libibex anymore, it's been deprecated.Jeffrey Stedfast2002-04-272-1/+3 * Do away with the goto-next-folder stuff, it's very annoying.Jeffrey Stedfast2002-04-272-0/+5 * After building the extra config options into a Gtk form, auto-detect anyJeffrey Stedfast2002-04-274-6/+123 * Add the font config dialog.Larry Ewing2002-04-262-0/+193 * Allow providers to override text entry boxes too. (source_type_changed):Jeffrey Stedfast2002-04-252-31/+57 * Update to use E_POPUP_MENU_PIXMAP_WIDGET_ITEM_CC so that our callback getsJeffrey Stedfast2002-04-252-6/+11 * Set the default Username label and handle the newJeffrey Stedfast2002-04-252-6/+28 * Added back the checkmark icon for enabled accounts.Jeffrey Stedfast2002-04-243-7/+34 * Plug-in Anna's html for the flag-for-followup stuff. Finishes up bug #90.Jeffrey Stedfast2002-04-232-15/+34 * Free the loading/pending/new/loaded_uid string buffers.Jeffrey Stedfast2002-04-202-2/+10 * Free some temporary path buffers.Jeffrey Stedfast2002-04-202-8/+13 * Ref the html object here, this is an async handler so it's possible forJeffrey Stedfast2002-04-202-1/+22 * Added yet more accelerators for the new config dialog--this time for theAnna Marie Dirks2002-04-202-13/+22 * would help if I didn't name 2 widgets the same for the colour tab in the pref...Jeffrey Stedfast2002-04-201-2/+2 * Added a bunch of accelerators for the new config dialogAnna Marie Dirks2002-04-202-109/+125 * Removed all Delivered-To headers before redirecting. Fixes bug #23635.Jeffrey Stedfast2002-04-192-0/+11 * use default paper name in case of wrong translationRadek Doulik2002-04-192-1/+10 * Turn off the code which downloads the part if we can't identify it. SeeNot Zed2002-04-182-0/+10 * Bumped required gal version number to 0.19.99.11.Christopher James Lahey2002-04-183-54/+52 * Handle broken multipart/signed parts such as where the signature part isJeffrey Stedfast2002-04-182-9/+0 * Handle broken multipart/signed parts such as where the signature part isJeffrey Stedfast2002-04-183-16/+57 * Just use g_basename. (mlf_finalize): Free the real_path.Jeffrey Stedfast2002-04-183-6/+14 * Free the format string.Jeffrey Stedfast2002-04-174-2/+15 * Ref the prefs widget here since we unref in the destroy callback. CaughtJeffrey Stedfast2002-04-173-5/+14 * s/ENABLE_NEWS/ENABLE_NNTPJeffrey Stedfast2002-04-141-1/+1 * compile fixesJeffrey Stedfast2002-04-143-19/+19 * Build fixes for --enable-nntp.Jeffrey Stedfast2002-04-142-4/+9 * Updated French translation.Christophe Merlet2002-04-132-1/+5 * added a #include to fix a compile warningJeffrey Stedfast2002-04-131-0/+2 * Make it so that unchecking the "Enable Advanced Options" in the signatureJeffrey Stedfast2002-04-133-1/+27 * Setup News preferences too if it is enabled.Jeffrey Stedfast2002-04-135-1794/+262 * Set the text of the reply-to. (mail_account_gui_save): Get the reply-toJeffrey Stedfast2002-04-128-127/+380 * s/Sent/Date. This fixes bug #11159.Jeffrey Stedfast2002-04-112-1/+5 * Set the 'No' button as the default.Jeffrey Stedfast2002-04-112-0/+8 * Oops, put x_mailer_display_style in /Mail/Display, not /Mail/FormatDan Winship2002-04-111-2/+2 * Handle the X-Mailer display style. (There is currently no GUI forDan Winship2002-04-114-13/+102 * removed an extra printfJeffrey Stedfast2002-04-101-1/+0 * Kludge around the brokeness that is GtkOptionMenu just like we kludgeJeffrey Stedfast2002-04-102-76/+87 * Add view_info arg, but don't do anything with it.Dan Winship2002-04-092-0/+6 * Argh! get_folder_info owns and frees its *OWN* folder info, it shouldn'tNot Zed2002-04-092-2/+7 * oops, I forgot to update the ChangeLog to be accurate for my last commitJeffrey Stedfast2002-04-091-4/+3 * Since bonobo doesn't seem to O_TRUNC the file stream before writing to it,Jeffrey Stedfast2002-04-092-26/+49 * Re-added the config wizard interfaces. Ettore accidently removed themJeffrey Stedfast2002-04-094-47/+38 * add config_item:typeJP Rosevear2002-04-072-1/+9 * Make the drafts and sent folder buttons be EvolutionFolderSelectorButtons.Dan Winship2002-04-059-170/+122 * Set the window title/icon here instead.Jeffrey Stedfast2002-04-0410-88/+210 * Changes to allow combined store/transport providers (like exchange andDan Winship2002-04-043-15/+94 * Pass the UID of the message being edited to the save-draft signal handler.Jeffrey Stedfast2002-04-032-9/+36 * Removed an unused pixmap from Tools/Settings to avoid a big nasty bonoboJeffrey Stedfast2002-04-022-1/+3 * Re-Implemented the signature editor stuff (mostly just copy/paste fromJeffrey Stedfast2002-04-027-46/+479 * Use -avoid-version -module. (From Max Horn <max@quendi.de>)Dan Winship2002-04-022-2/+8 * Don't shift the r, g and b values here either.Jeffrey Stedfast2002-03-303-6/+18 * Restore the labels & colours options from the grave.Jeffrey Stedfast2002-03-304-3/+350 * Added priorities for all the configuration pagesEttore Perazzoli2002-03-302-0/+11 * Same here.Jeffrey Stedfast2002-03-303-8/+46 * Cleaned up a bunch [removing duplicates ;-)], set up icons for all theEttore Perazzoli2002-03-302-89/+8 * (account_cursor_change): Make sure that event is non-NULL here.Jeffrey Stedfast2002-03-292-2/+3 * Use a GtkCList instead of an ETable, for some reason the etable wasJeffrey Stedfast2002-03-294-35/+183 * Use gtk_container_add() to put the toplevel in the parent widget, insteadEttore Perazzoli2002-03-283-5/+4 * Use gtk_container_add() to put the toplevel in the parent widget, insteadEttore Perazzoli2002-03-282-2/+12 * Updated to respect the new mail-config options for default reply styleJeffrey Stedfast2002-03-282-1/+21 * unset GTK_CAN_FOCUS on the button so that it can't grab focus when youDan Winship2002-03-282-0/+9 * Sync with yet-another-mail-config branch.Jeffrey Stedfast2002-03-2724-1599/+3629 * Changed to get the address from the messageinfo of the current selectedNot Zed2002-03-266-79/+219 * New version from anna, with fixed widget names.Not Zed2002-03-262-165/+214 * Move the ComponentActionsPlaceholder into the Actions menu, instead of theEttore Perazzoli2002-03-216-43/+51 * Add accelerators for "Find Now" and "Clear".Ettore Perazzoli2002-03-212-2/+10 * add missing NULL closure data to popup menu initialization.Larry Ewing2002-03-202-4/+9 * more fixes for libversit.la -> libversit.aDan Winship2002-03-202-1/+5 * Report a message before entering bonobo_main() to simplify debugging.Ettore Perazzoli2002-03-192-0/+7 * [Search bar re-design implementation, Take 2.]Ettore Perazzoli2002-03-192-1/+4 * Draw colour rectangles for each of the colour items and set a closure onJeffrey Stedfast2002-03-164-15/+108 * New callback to set a colour on a message.Jeffrey Stedfast2002-03-1612-78/+667 * expand the relative urls of the object at the point so that relativeLarry Ewing2002-03-163-3/+17 * Commit ChangeLog.Ettore Perazzoli2002-03-161-1/+0 * [Start implementing the new Search Bar design.]Ettore Perazzoli2002-03-162-0/+10 * Remove "mailstorage", since it's not needed any more. (storage_activate):Dan Winship2002-03-153-44/+47 * create new signature file (delete_unused_signature_file): be more carefulRadek Doulik2002-03-152-3/+21 * Implemented.Jeffrey Stedfast2002-03-156-2/+57 * Set a default size of the window, so we don't get this itty-bitty windowJeffrey Stedfast2002-03-142-0/+34 * Handle digest: urls.Jeffrey Stedfast2002-03-133-5/+64 * Set the folder on a folder-browser object.Jeffrey Stedfast2002-03-138-5/+270 * removed forgotten FIXMERadek Doulik2002-03-131-2/+0 * truncate stream before savingRadek Doulik2002-03-092-2/+6 * new functionRadek Doulik2002-03-095-3/+54 * Rewrite this to not use stpcpy, which isn't portable.Dan Winship2002-03-092-5/+11 * handle name changed event (sig_load_preview): don't run script before eachRadek Doulik2002-03-093-6/+57 * Re-focus the account name entry widget. (identity_prepare): If a name isJeffrey Stedfast2002-03-083-15/+73 * make edit button sensitive after new signature is created (sig_new_text):Radek Doulik2002-03-082-0/+8 * notify accounts dialog about signature content changeRadek Doulik2002-03-087-23/+60 * Made all the acclerators in the context menu on a message work. (There areAnna Marie Dirks2002-03-082-14/+19 * Don't use an uninitialized 'id'.Jeffrey Stedfast2002-03-082-4/+7 * set initial focus to editor (do_exit): use hasUndo to avoid questionRadek Doulik2002-03-082-4/+22 * Update for storage changes: explicitly create a root folder.Dan Winship2002-03-085-14/+31 * merge new signature handlingRadek Doulik2002-03-0716-425/+2288 * Don't try to set pixmap for /Toolbar/MailCompose, since it doesn't existDan Winship2002-03-062-1/+5 * "use_ssl" can now be 3 options, modify the code to handle this.Jeffrey Stedfast2002-03-064-46/+184 * Pull up assertion change from evolution-1-0-branch to allow externalDan Winship2002-03-062-1/+6 * If the clicked column was column 0, enable/disable it. (mail_select):Jeffrey Stedfast2002-03-052-7/+21 * Added more debugging code to help figure out why a certain image isn'tJeffrey Stedfast2002-03-053-6/+17 * Connect to the focus-in/out events on the message-list so that we canJeffrey Stedfast2002-03-056-7/+78 * Set X-Mailer to say "Ximian Evolution", not just "Evolution".Ettore Perazzoli2002-03-052-1/+8 * Forward all selected messages. Fixes bug #21190.Jeffrey Stedfast2002-03-022-7/+18 * Get the Content-Base if the header exists and use gtk_html_set_base to setJeffrey Stedfast2002-02-274-44/+33 * If a related part is requested, remove it from the related undisplayedNot Zed2002-02-265-6/+49 * rename folder_browser_search_query_changed to this.Chris Toshok2002-02-252-2/+12 * Removed, this wasn't working as intended and seemed to break otherJeffrey Stedfast2002-02-233-32/+6 * Add an icon for the "New message" user creatable item.Ettore Perazzoli2002-02-222-2/+11 * Connect to our own message_list_built signal. Focus the list and selectJeffrey Stedfast2002-02-222-3/+35 * Gave the editor window a title and an icon.Anna Marie Dirks2002-02-212-0/+13 * Changed the policy for table2 so that it does not expand/fill. This wasAnna Marie Dirks2002-02-212-2/+10 * Prompt the user to find out if he/she wants to go to the next folder withJeffrey Stedfast2002-02-207-15/+241 * Ack, strip off the leading '/' char and also only translate if it is aJeffrey Stedfast2002-02-162-2/+2 * Ack, strip off the leading '/' char and also only translate if it is aJeffrey Stedfast2002-02-162-2/+7 * Ack, strip off the leading '/' char.Jeffrey Stedfast2002-02-162-1/+4 * Don't display a down-arrow if the attachment is undisplayable. Fixes bugJeffrey Stedfast2002-02-162-4/+10 * Don't display a down-arrow if the attachment is undisplayable. Fixes bugJeffrey Stedfast2002-02-162-7/+12 * Replacement for using g_basename and also translates the basename stringJeffrey Stedfast2002-02-152-3/+21 * Default the from-account to the source account. If that fails, then guessJeffrey Stedfast2002-02-153-14/+20 * oops, Ximian is spelled Ximian, not Ximain. :-)Jeffrey Stedfast2002-02-157-7/+7 * added a kludge around a Nautilus bug that calls drag_data_get multiple times ...Jeffrey Stedfast2002-02-141-1/+8 * Implement. (drag_data_delete_cb): Implement. (do_attachment_header): SetupJeffrey Stedfast2002-02-143-22/+111 * Set the followup icon to use the new flag icon rather than the exclamationJeffrey Stedfast2002-02-148-24/+124 * Fixed a bug.Jeffrey Stedfast2002-02-136-14/+39 * No longer need to call e_msg_composer_show_sig_file(). This gets handledJeffrey Stedfast2002-02-132-2/+10 * Show the signature.Jeffrey Stedfast2002-02-132-0/+5 * Get followup-up message-list values. Also highlight the message in red ifJeffrey Stedfast2002-02-126-107/+219 * added entries for latest changesRadek Doulik2002-02-121-0/+9 * use reset undo in editorRadek Doulik2002-02-121-0/+7 * Implemented. (on_right_click): Do better enabling/hiding of unwantedJeffrey Stedfast2002-02-123-15/+39 * Set the correct drop-down menu item. (message_tag_followup_encode): ReturnJeffrey Stedfast2002-02-103-4/+34 * New flag-for-followup tag editor dialog.Jeffrey Stedfast2002-02-098-11/+892 * Base class for a message tag editor.Jeffrey Stedfast2002-02-097-19/+304 * removed more needs-reply cruftJeffrey Stedfast2002-02-081-6/+0 * call set_body later to allow ignored words to be sent to gtkhtml controlRadek Doulik2002-02-082-22/+27 * remove "New" from user creatable menu itemJP Rosevear2002-02-082-1/+6 * Bumped the required version of gal.Christopher James Lahey2002-02-0711-188/+195 * Rearranged the #if checks so that we don't ever try to access any smimeJeffrey Stedfast2002-02-072-3/+12 * Removed references to NEEDS_REPLY.Jeffrey Stedfast2002-02-076-68/+12 * Look for DOCTYPE XML comments too to decide if the message content isJeffrey Stedfast2002-02-073-2/+7 * Dont double-free the text body data.Not Zed2002-02-062-4/+5 * Add attachments after we've seen if the composer object is valid.Not Zed2002-02-043-18/+32 * Destroy the S/MIME frame if not available, instead of just graying it out.Ettore Perazzoli2002-02-032-1/+8 * Some touchups from me and Anna.Ettore Perazzoli2002-02-032-189/+177 * Don't bother setting the auto-cc/bcc recipients here. I'm moving the codeJeffrey Stedfast2002-02-022-25/+7 * ignore spell checking of words in addresses, move set_body_text after allRadek Doulik2002-02-013-6/+37 * Pass the parent window to mail_account_editor_new().Jeffrey Stedfast2002-01-316-14/+28 * print quoted text in italicRadek Doulik2002-01-312-6/+10 * re-enable popup menu. (populate_folder_context_menu): If we're on aNot Zed2002-01-302-8/+31 * Changed the function signature so that we can pass in whom we want toDave West2002-01-302-6/+27 * Make X-Evolution-Account take priority over X-Evolution-Transport. ShouldJeffrey Stedfast2002-01-302-3/+8 * Don't pass NULL text to gtk_entry_set_text. Maybe this will fix bugJeffrey Stedfast2002-01-302-3/+12 * New function that implements the Redirect feature.Jeffrey Stedfast2002-01-306-4/+143 * (footer_info_free): unref footer fontRadek Doulik2002-01-302-1/+10 * (do_mail_print): get rid of static global variables, as they areRadek Doulik2002-01-302-21/+38 * initialize line to 0 to make everybody happy ;-) ops, set local_font toRadek Doulik2002-01-302-2/+8 * Don't bother checking for invalid recipients anymore. If a recipient isJeffrey Stedfast2002-01-292-41/+12 * print footer (footer_print_cb): print page number and number of pagesRadek Doulik2002-01-292-16/+35 * Final cleanup for the CFLAGS and LIBS in the Makefiles.Ettore Perazzoli2002-01-282-9/+12 * We need to return a value here. I think FALSE is fine (I hope).Jeffrey Stedfast2002-01-262-0/+5 * Save the pathname. (save_part): Use the new mail_config cruft to get theJeffrey Stedfast2002-01-264-14/+58 * Do some NULL checking on the url before using it.Jeffrey Stedfast2002-01-262-3/+13 * Clean up some of the Makefiles so we dont' link every library multipleEttore Perazzoli2002-01-252-2/+7 * This wrapper for gdk_beep().Jeffrey Stedfast2002-01-252-2/+9 * Don't bother trying to see if the domain looks like a FQDN.Jeffrey Stedfast2002-01-252-7/+7 * If the mail-display is in focus, then select-all in the mail displayJeffrey Stedfast2002-01-252-3/+13 * Pass a NULL icon to `evolution_shell_component_add_user_creatable_item()'.Ettore Perazzoli2002-01-242-1/+8 * Implements bug #15692Jeffrey Stedfast2002-01-242-11/+67 * Define CAMEL_PROVIDERDIR to be the configure.in-defined camel_providerdir.Dan Winship2002-01-242-2/+7 * Now takes a boolean notify argument. If this is *not* set, then remove theJeffrey Stedfast2002-01-233-3/+16 * Simplified.Jeffrey Stedfast2002-01-232-30/+34 * If the first "token" in the body is "<html>", then treat this as aJeffrey Stedfast2002-01-223-1/+19 * Update to match new uudecode interface (ie, no longer need a uulen stateJeffrey Stedfast2002-01-182-3/+8 * New callback to handle the set_base signal. (on_url_requested): If theJeffrey Stedfast2002-01-16